units and user functions issue

units and user functions issue - Messages

#1 Posted: 7/9/2012 5:04:08 AM
Davide Carpi

Davide Carpi

1415 likes in 2872 posts.

Group: Moderator

Hi

someone can confirm this issue?

seem that:

- it's not related with optimization

- appears only when you redefine an internal variable inside a line() in a user-function, making them dimensionless


best regards,

w3b5urf3r
debug.png
If you like my plugins please consider to support the program buying a license; for personal contributions to me: paypal.me/dcprojects
#2 Posted: 7/9/2012 6:13:45 AM
Radovan Omorjan

Radovan Omorjan

325 likes in 2052 posts.

Group: Moderator

Hello w3b5urf3r,

This is related to changing the function arguments. As your function is defined as f1(x) and you actually change x then if you call your function with f1(A) then A will change as well. Your function f4(x) actually changed its argument too.

Regards,
Radovan
When Sisyphus climbed to the top of a hill, they said: "Wrong boulder!"
1 users liked this post
Davide Carpi 7/10/2012 12:55:00 PM
#3 Posted: 7/10/2012 12:34:34 PM
Davide Carpi

Davide Carpi

1415 likes in 2872 posts.

Group: Moderator

Wrote

Hello w3b5urf3r,

This is related to changing the function arguments. As your function is defined as f1(x) and you actually change x then if you call your function with f1(A) then A will change as well. Your function f4(x) actually changed its argument too.

Regards,
Radovan



Hi Omorr


you're right, f4(x) cause the same issue...

I don't know if it's a bug or a feature, but it's quite strange for me... In my mind I think that
the input variable should not be modified, unless the change it's invoked directly (A:=something)


best regards,

w3b5urf3r
If you like my plugins please consider to support the program buying a license; for personal contributions to me: paypal.me/dcprojects
#4 Posted: 7/12/2012 10:24:45 PM
kilele

kilele

133 likes in 397 posts.

Group: User

yes i don't like it either, i mean this global redefinition from within a function, i think this was a change introduced by Andrey for something related to future animation capabilities of smath
#5 Posted: 7/29/2012 2:29:26 PM
Andrey Ivashov

Andrey Ivashov

2269 likes in 3729 posts.

Group: Super Administrator

Hello.

Yes, this is by design. This feature called Output Arguments and it can be used within procedures (functions defined with line(..) at right). This allows to return any number of values from the function. One just should remember that changing value for the variable of the same name as defined in function's arguments for such functions will also override global value of that variable.

Regards.
1 users liked this post
Davide Carpi 7/29/2012 9:17:00 PM
#6 Posted: 10/23/2012 2:05:57 PM
Ruben Sidranski

Ruben Sidranski

17 likes in 463 posts.

Group: User

I don't get this
Wrote

One just should remember that changing value for the variable of the same name as defined in function's arguments for such functions will also override global value of that variable.


I am running into a problem where I have f(x,y):=2x+y When I define x:=? and y:=? I get the correct result. However, WHEN I re-define x and y and reuse the function, the answer is ALL over the place. Can someone give an example explaining what Aundrey ment (see quote)
Michelle Pipe Insulation Rev e.smz (336 KiB) downloaded 32 time(s).
#7 Posted: 10/23/2012 2:19:55 PM
Davide Carpi

Davide Carpi

1415 likes in 2872 posts.

Group: Moderator

Wrote

I don't get this

Wrote

One just should remember that changing value for the variable of the same name as defined in function's arguments for such functions will also override global value of that variable.


I am running into a problem where I have f(x,y):=2x+y When I define x:=? and y:=? I get the correct result. However, WHEN I re-define x and y and reuse the function, the answer is ALL over the place. Can someone give an example explaining what Aundrey ment (see quote)



Hi,

I think that the image below could be useful to explain the behavior

Using f(a) the input variable - x, will be modified by the function;

Using g(a) the input variable - y, doesn't change.


regards,

w3b5urf3r
SMath Studio - [Page1]_3.png
If you like my plugins please consider to support the program buying a license; for personal contributions to me: paypal.me/dcprojects
#8 Posted: 10/23/2012 2:22:43 PM
Ruben Sidranski

Ruben Sidranski

17 likes in 463 posts.

Group: User

w3b5urf3r
See file I attached while you responded. See the grey non print area for page 2 and 3
#9 Posted: 10/23/2012 2:32:22 PM
Davide Carpi

Davide Carpi

1415 likes in 2872 posts.

Group: Moderator

Wrote

w3b5urf3r
See file I attached while you responded. See the grey non print area for page 2 and 3



I see

It's not related with the behavior of this topic, but with this: local and global variables


Simply change your function giving as input all variable parameters - so add: [MATH lang=eng]k.ins[/MATH],[MATH lang=eng]k.pipe[/MATH] (and others, if needed)


regards,

w3b5urf3r
SMath Studio - [Michelle%20Pipe%20Insulation%20Rev%20e.smz].png
If you like my plugins please consider to support the program buying a license; for personal contributions to me: paypal.me/dcprojects
1 users liked this post
ElSid 10/23/2012 4:35:00 PM
#10 Posted: 10/23/2012 4:37:48 PM
Ruben Sidranski

Ruben Sidranski

17 likes in 463 posts.

Group: User

Quote

Simply change your function giving as input all variable parameters


I had combined various sheets into one sheet and totally spaced the fact that the other variables were changing. Originally, the k's were fixed.
  • New Posts New Posts
  • No New Posts No New Posts