cases and replacement of variable by value

cases and replacement of variable by value - Messages

#1 Posted: 4/29/2018 3:11:33 PM
Martin_B

Martin_B

21 likes in 84 posts.

Group: User

Shouldn't the variable A be replaced by its value 1 when 'cases' is used instead of 'if/else'?

cases.png
1 users liked this post
sergio 4/30/2018 4:20:00 AM
#2 Posted: 4/29/2018 8:02:30 PM
Jean Giraud

Jean Giraud

983 likes in 6866 posts.

Group: User

Wrote

Shouldn't the variable A be replaced by its value 1 when 'cases' is used instead of 'if/else'?


Whatever is behind the scene, your project is ill posed..
Conditional statements must be intelligible for the numerical maths.

MarB.PNG
#3 Posted: 4/30/2018 3:43:25 AM
Martin_B

Martin_B

21 likes in 84 posts.

Group: User

I really don't want to play silly games with you anymore.

I asked a simple question: "Why is the value of the canvas variable A not stored in the function, when cases is involved?"

Your answer has absolutely nothing to do with my question.

I have attended another screenshot to show the consequences of not storing the value.
cases behaves, as if there where a line operator.

cases2.png

cases.sm (9 KiB) downloaded 40 time(s).
#4 Posted: 4/30/2018 8:47:02 AM
Jean Giraud

Jean Giraud

983 likes in 6866 posts.

Group: User

I notice one instance if/otherwise does not work vs if/else.
Reported, not acknowledged ... maybe more than one instance.

Silly.PNG
#5 Posted: 4/30/2018 10:17:16 AM
Jean Giraud

Jean Giraud

983 likes in 6866 posts.

Group: User

... generally, if/else is more convenient in program.

Utilities Matrix Exclude Region.sm (35 KiB) downloaded 44 time(s).
#6 Posted: 4/30/2018 10:41:02 AM
Jean Giraud

Jean Giraud

983 likes in 6866 posts.

Group: User

Wrote

.. generally, if/else is more convenient in program.



... refreshed

Utilities Matrix Exclude Region.sm (41 KiB) downloaded 40 time(s).

#7 Posted: 4/30/2018 11:20:30 AM
Jean Giraud

Jean Giraud

983 likes in 6866 posts.

Group: User

... ill posed code don't speak, rather crash the project.
Glance for De Boor in Samples,,, will be pleased to re-post.

Intelligible.PNG
#8 Posted: 4/30/2018 3:12:40 PM
Arie

Arie

93 likes in 285 posts.

Group: User

Quote

Shouldn't the variable A be replaced by its value 1 when 'cases' is used instead of 'if/else'?



Davide can answer this for certain. However, I would imagine that it should not. Since cases() function is kind of like a wrapper for nested if() statements, I imagine that it stays completely symbolic until evaluated numerically.

This is just a guess. Otherwise I would imagine that when you evaluated a cases() statement symbolically you would see the nested if() instead.
Feel free to join the SMath Studio Users Discord Channel: https://discord.gg/PayZpJW
#9 Posted: 4/30/2018 4:23:02 PM
Martin_B

Martin_B

21 likes in 84 posts.

Group: User

Wrote


... However, I would imagine that it should not. Since cases() function is kind of like a wrapper for nested if() statements, I imagine that it stays completely symbolic until evaluated numerically.

This is just a guess. Otherwise I would imagine that when you evaluated a cases() statement symbolically you would see the nested if() instead.



The two expressions in the screenshot in my first post are evaluated symbolically.
I think I can remember that in the past when "hovering the mouse" it was was dissolved in a chain (product) of boolean expressions, without using if/else.
#10 Posted: 4/30/2018 4:30:39 PM
Arie

Arie

93 likes in 285 posts.

Group: User

Wrote


I think I can remember that in the past when "hovering the mouse" it was was dissolved in a chain (product) of boolean expressions, without using if/else.



Yes, It looks like that may have changed about two years ago according to this post: https://en.smath.info/forum/yaf_postsm35489_Custom-Functions-plugin.aspx#post35489

Which leads me to believe the cases() functions worked different depending on the optimization.

You can see source code here: https://smath.info:8443/!/#public/view/head/plugins/CustomFunctions/SMathFunctions/Programming/cases.cs

I'm not well versed enough in plugin creation to know how this is handled with different optimizations.
Feel free to join the SMath Studio Users Discord Channel: https://discord.gg/PayZpJW
#11 Posted: 4/30/2018 4:40:48 PM
Arie

Arie

93 likes in 285 posts.

Group: User

I suppose what it comes down to is how input variables are passed to a function defined in a plugin and when they are evaluated w.r.t. the different optimization options.
Feel free to join the SMath Studio Users Discord Channel: https://discord.gg/PayZpJW
#12 Posted: 4/30/2018 5:05:02 PM
Jean Giraud

Jean Giraud

983 likes in 6866 posts.

Group: User

Wrote

The two expressions in the screenshot in my first post are evaluated symbolically.



Can't be evaluated otherwise => nothing is defined/assigned,
thus literal evaluation ... try this

ifOtherwise.PNG



Maybe you missed my other point about appropriate condition [De Boor]
You have that in much simpler instances, not visible and falsifying project.
#13 Posted: 4/30/2018 5:28:50 PM
Martin_B

Martin_B

21 likes in 84 posts.

Group: User

The values of a, b and q(x) are not stored in f, as you can see in the following screenshot.
cases3.png

And by assigning f to f they are!
And that seems to me like a kind of invisible line operator, because it behaves like one.

cases4.png
#14 Posted: 4/30/2018 5:43:56 PM
Ruben Sidranski

Ruben Sidranski

17 likes in 463 posts.

Group: User

Have you tried programing it? Use line in lieu of the system of values or equations bracket?
#15 Posted: 4/30/2018 6:11:39 PM
CBG

CBG

77 likes in 312 posts.

Group: User

by--->MarB

Quote

Shouldn't the variable A be replaced by its value 1 when 'cases' is used instead of 'if/else'?




I do not understand. The cases function works perfectly.



Cases.png

cases_ok.sm (4 KiB) downloaded 34 time(s).


Best Regards

Carlos
#16 Posted: 4/30/2018 6:46:22 PM
Jean Giraud

Jean Giraud

983 likes in 6866 posts.

Group: User

The all thing is about what comes from conditional.
For instance: the integration operator needs an analytical integrand.
From if/else, integrand is not scalar vs if/Otherwise.
Simple things turn nightmare ... many same in Mathcad.

Plots are same but not integration.

intDiscontinuous.PNG

#17 Posted: 4/30/2018 8:14:58 PM
Jean Giraud

Jean Giraud

983 likes in 6866 posts.

Group: User

Wrote

From if/else, integrand is not scalar vs if/Otherwise.



... for this particular integration example, it is necessary and sufficeinet
to transform the domain of if/else [ infinitesimal ...] in scalar domain.
Here, we have it already done in term of integration.

Integrate Discontinuous [Nuance].sm (13 KiB) downloaded 36 time(s).
#18 Posted: 5/1/2018 10:04:25 AM
Arie

Arie

93 likes in 285 posts.

Group: User

Wrote


I do not understand. The cases function works perfectly.




The difference comes when the value of A changes after the definition of f(x) and g(x).

For g(x) the original definition of A:=1 remains. However, for f(x) the value of A changes.

Untitled.png
cases_ok_alyles.sm (5 KiB) downloaded 36 time(s).
Feel free to join the SMath Studio Users Discord Channel: https://discord.gg/PayZpJW
#19 Posted: 5/1/2018 5:53:43 PM
Arie

Arie

93 likes in 285 posts.

Group: User

Quote

And by assigning f to f they are!
And that seems to me like a kind of invisible line operator, because it behaves like one.



So I believe I understand what is going on a little better.
I've attached the same .sm file as before only this time with break points. If you open the debugger window and step through you can see exactly what happens.
When f(x) is defined it sets f(x) equal to cases(a,xNote when g(x) is defined it will step through and evaluate the if() function and each individual input parameter (xThe cases() function within f(x) doesn't actually evaluate until it is called with f(0).
This is why, as you described earlier, if you set f(x):=f(x) you finally get the result that you want, because at this point it will finally evaluate cases(a,x
I'm not sure if this is a plugin issue or if this is just how SMath handles it's plugin interface.


cases_ok_alyles_with_breakpoints.sm (5 KiB) downloaded 39 time(s).
Feel free to join the SMath Studio Users Discord Channel: https://discord.gg/PayZpJW
#20 Posted: 5/1/2018 6:51:59 PM
Jean Giraud

Jean Giraud

983 likes in 6866 posts.

Group: User

Wrote

I'm not sure if this is a plugin issue or if this is just how SMath handles it's plugin interface.



This type of maths is universal and maybe centuries accepted,
and a rigorous rule since numerical computing machinery.

Just like this.

illPosed.PNG

  • New Posts New Posts
  • No New Posts No New Posts