slow extraction of matrix elements

slow extraction of matrix elements - Messages

#1 Posted: 9/14/2021 6:13:45 AM
Johannes Piel

Johannes Piel

1 likes in 19 posts.

Group: User

Hallo,
Thanks to PTC's weird policy, I'm now trying to switch completely to Smath and have started rebuilding my main sheets.
Now I'm running into a problem here that I can't solve:
I build a matrix in half a second, but I can't display it. Even displaying a single element doesn't finish unless I shrink the matrix w.
The optimization of all equations is set to "numerical", the matrix elements should then be ready calculated, right? Does anyone know such a behavior?
The complete sm file and the data for it will come tomorrow.
Best regards,
Johannes

Extract Matrix element.png
#2 Posted: 9/14/2021 8:43:02 AM
Johannes Piel

Johannes Piel

1 likes in 19 posts.

Group: User

Putting eval() around the matrix definition solved this.

But what is then the setting "numerical" good for?
#3 Posted: 9/14/2021 9:46:12 AM
Jean Giraud

Jean Giraud

983 likes in 6866 posts.

Group: User

Wrote

But what is then the setting "numerical" good for?


You are in the learning curve of Smath.
It toke me ~ 6 years to convert most of my MCD 11.
Wait to glance your promised document ... Jean

#4 Posted: 9/14/2021 10:49:38 AM
Oscar Campo

Oscar Campo

124 likes in 298 posts.

Group: Moderator

Wrote

Hallo,
Thanks to PTC's weird policy, I'm now trying to switch completely to Smath and have started rebuilding my main sheets.
Now I'm running into a problem here that I can't solve:
I build a matrix in half a second, but I can't display it. Even displaying a single element doesn't finish unless I shrink the matrix w.
The optimization of all equations is set to "numerical", the matrix elements should then be ready calculated, right? Does anyone know such a behavior?
The complete sm file and the data for it will come tomorrow.
Best regards,
Johannes

Extract Matrix element.png



Please, can you share your .sm file?

Oscar
#5 Posted: 9/15/2021 4:57:37 AM
Johannes Piel

Johannes Piel

1 likes in 19 posts.

Group: User

Here is the file.
I have inserted a random source matrix, that needs a longer calculation time than my original.
But the effect is the same.


Extract matrix element.sm (10 KiB) downloaded 51 time(s).
#6 Posted: 9/15/2021 9:14:57 AM
Jean Giraud

Jean Giraud

983 likes in 6866 posts.

Group: User

Wrote

Here is the file.
I have inserted a random source matrix, that needs a longer calculation time than my original.
But the effect is the same.


Sorry Collab, I don't quite understand your matrix wrt Smath code.

Random [rnd(n)] LAMDA.sm (5 KiB) downloaded 30 time(s).
Random Scatter 3D.sm (19 KiB) downloaded 37 time(s).
Random_5 Matrix [RGB].sm (102 KiB) downloaded 37 time(s).
#7 Posted: 9/15/2021 9:42:20 AM
overlord

overlord

552 likes in 1332 posts.

Group: Moderator

Wrote

Here is the file.
I have inserted a random source matrix, that needs a longer calculation time than my original.
But the effect is the same.


2021-09-15_15-32.png

This product evaluation may seem small on paper.
But actually it is a huge calculation.
And it gets bigger if t.max/i.max gets higher.
It takes 26s on my pc and my CPU is i7 6700k.
Not one of the fastest but not a slow one either.

Obviously you have to wait until that product is finished.
After that you can display elements of matrix w individually, and in an instant.
SMath is smart, it won't recalculate if you try to display an element of matrix after it is finished.
It will take microseconds to show the elements of matrix.
Unless you don't change something before "the long process calculation" of course.

Regards

2021-09-15_15-39.png
#8 Posted: 9/15/2021 10:10:12 AM
Jean Giraud

Jean Giraud

983 likes in 6866 posts.

Group: User

The classical Iterated Product.

Lagrange.PNG
#9 Posted: 9/15/2021 11:18:16 AM
Johannes Piel

Johannes Piel

1 likes in 19 posts.

Group: User

Thank you for your answers.

My concern was NOT that the evaluation of
Matrix := complicated definition
took a long time, it was about the extraction of a single element,
Matrix[x,y]=
As i noted above, with a different definition:
Matrix := eval(complicated definition)
the following
Matrix[x,y]=
performed as expected in milliseconds.

I did not expect that a calculation, that is set to "numerical optimization", needs this additional eval() to calculate to the numerical end.

My original matrix is times bigger, but includes a lot of zeros. It now performs in a second.

Thank you , Johannes
#10 Posted: 9/15/2021 2:12:43 PM
overlord

overlord

552 likes in 1332 posts.

Group: Moderator

Wrote

I did not expect that a calculation, that is set to "numerical optimization", needs this additional eval() to calculate to the numerical end.


Because that is what eval() "may" does, usually.
Simplify expression, reduce calculation time.
I didn't get what you mentioned earlier, sorry.
I thought you were complaining about you couldn't
display elements, unless you shrink the matrix w.

Regards

2021-09-15_20-07.png
1 users liked this post
Oscar Campo 9/15/2021 2:15:00 PM
#11 Posted: 9/15/2021 2:26:08 PM
Oscar Campo

Oscar Campo

124 likes in 298 posts.

Group: Moderator

Wrote

Here is the file.
I have inserted a random source matrix, that needs a longer calculation time than my original.
But the effect is the same.


Extract matrix element.sm (10 KiB) downloaded 51 time(s).



If you define your matrix as a function, you have an alternative and faster "extraction of a matrix element":

FasterEvaluation.png

#12 Posted: 9/15/2021 3:02:30 PM
Jean Giraud

Jean Giraud

983 likes in 6866 posts.

Group: User

Random.PNG
  • New Posts New Posts
  • No New Posts No New Posts