Feature SS-123
4 votes

solve() and eval() should return themselves if numeric evaluation fails

Created by Martin Kraska on 4/22/2014 11:42 AM Last Updated by Martin Kraska on 7/13/2017 2:45 AM
%
 (hrs)
Logged: 0   (hrs)

 Description

Currently, preprocessing stops due to error message, if subexpressions involving eval() or solve() fail to be evaluated numerically because of at that stage undefined variables (message: Variables undefined)

Would the functions return themselves (just the original expressions) unevaluated in these cases, the following problems would be solved:

1. from post http://en.smath.info/forum/yaf_postsm12860_Multiline-functions-and-functions-as-function-arguments.aspx#post12860

f(g(1);x):=g(x)
g(x):=eval(x+x)
f(g(_);2)=Error: "_ Not Defined".

This problem could also be solved, if actual values for function-valued parameters in function calls would be excluded from preprocessing

 

2. from post http://en.smath.info/forum/yaf_postsm12831_Maxima-Plugin.aspx#post12831

(where transferring solve() to Maxima fails)

mxma.png

 

    Martin Kraska (Thursday, July 13, 2017 2:45 AM) #

In Maxima SVN 2481:

if an undefined-exception is thrown in preprocessing, then the unprocessed expression is transferred to Maxima.

It might be sensible iteratively apply the preprocessing to the subexpressions in case the top level evaluation fails.