slow extraction of matrix elements

slow extraction of matrix elements - Messaggi

#1 Pubblicato: 14/09/2021 06:13:45
Johannes Piel

Johannes Piel

2 apprezzamenti in 20 post.

Gruppo: 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 Pubblicato: 14/09/2021 08:43:02
Johannes Piel

Johannes Piel

2 apprezzamenti in 20 post.

Gruppo: User

Putting eval() around the matrix definition solved this.

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

Jean Giraud

983 apprezzamenti in 6.866 post.

Gruppo: 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 Pubblicato: 14/09/2021 10:49:38
Oscar Campo

Oscar Campo

135 apprezzamenti in 309 post.

Gruppo: 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 Pubblicato: 15/09/2021 04:57:37
Johannes Piel

Johannes Piel

2 apprezzamenti in 20 post.

Gruppo: 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,07 KiB) scaricato 1304 volta(e).
#6 Pubblicato: 15/09/2021 09:14:57
Jean Giraud

Jean Giraud

983 apprezzamenti in 6.866 post.

Gruppo: 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,22 KiB) scaricato 990 volta(e).
Random Scatter 3D.sm (19,31 KiB) scaricato 1229 volta(e).
Random_5 Matrix [RGB].sm (102,3 KiB) scaricato 999 volta(e).
#7 Pubblicato: 15/09/2021 09:42:20
overlord

overlord

600 apprezzamenti in 1.381 post.

Gruppo: 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 Pubblicato: 15/09/2021 10:10:12
Jean Giraud

Jean Giraud

983 apprezzamenti in 6.866 post.

Gruppo: User

The classical Iterated Product.

Lagrange.PNG
#9 Pubblicato: 15/09/2021 11:18:16
Johannes Piel

Johannes Piel

2 apprezzamenti in 20 post.

Gruppo: 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 Pubblicato: 15/09/2021 14:12:43
overlord

overlord

600 apprezzamenti in 1.381 post.

Gruppo: 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 utenti hanno apprezzato questo post
Oscar Campo 15/09/2021 14:15:00
#11 Pubblicato: 15/09/2021 14:26:08
Oscar Campo

Oscar Campo

135 apprezzamenti in 309 post.

Gruppo: 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,07 KiB) scaricato 1304 volta(e).



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

FasterEvaluation.png

#12 Pubblicato: 15/09/2021 15:02:30
Jean Giraud

Jean Giraud

983 apprezzamenti in 6.866 post.

Gruppo: User

Random.PNG
  • Nuovi post
  • Nessun nuovo post