CAS: math expresion -> logical evaluation
08-27-2016, 02:36 PM
Post: #1 compsystems Senior Member Posts: 1,193 Joined: Dec 2013
CAS: math expresion -> logical evaluation
How to evaluate an expression with the (=) operator, so that returns a Boolean value (true/false)?

Example

0 = 0 -> true
10*e^5-10*e^10 = 0 -> false

I think it takes a function of the type.
evaLogic (MathExpre) -> true/false

evaLogic ( (10 * e ^ 5) - (10 * e ^ 10) = 0 ) -> false
08-27-2016, 03:04 PM (This post was last modified: 08-27-2016 04:06 PM by Didier Lachieze.)
Post: #2
 Didier Lachieze Senior Member Posts: 1,149 Joined: Dec 2013
RE: CAS: math expresion -> logical evaluation
Code:
EXPORT EvalLogic(expression) BEGIN   LOCAL s;   s:=REPLACE(STRING(expression),"=","==");   CAS(s); END;

EvalLogic('0=0') -> 1
EvalLogic('0=1') -> 0
EvalLogic('10*e^5-10*e^10=0') -> 0

And in CAS mode you can also evaluate expressions with undefined variables :

EvalLogic('2*x = x+x') -> 1

[Edited to support undefined variables]
08-27-2016, 06:29 PM
Post: #3
 parisse Senior Member Posts: 1,050 Joined: Dec 2013
RE: CAS: math expresion -> logical evaluation
subst(x^2+x*y+y^2+x*y=x^2+2x*y+y^2,'=','==')
08-28-2016, 06:55 AM
Post: #4
 Didier Lachieze Senior Member Posts: 1,149 Joined: Dec 2013
RE: CAS: math expresion -> logical evaluation
(08-27-2016 06:49 PM)compsystems Wrote:  The flags must be changed manually =(, but that's not the idea, the flags should be changed from the program code, it is to automate algorithms as does the hp 48 hp 50, TI89 ...

No need to change the flags if you explicitly simplify the expression :
Code:
#cas evalLogicv3(expression) BEGIN   LOCAL bool_numeric;   bool_numeric:= subst(simplify(expression),'=','==');   if(bool_numeric==1) then     return true;   else     return false;   end; END; #end
08-31-2016, 06:57 AM
Post: #5
 Didier Lachieze Senior Member Posts: 1,149 Joined: Dec 2013
RE: CAS: math expresion -> logical evaluation
(08-28-2016 06:44 PM)compsystems Wrote:  also must be added EXACT MODE

Do you have an exemple of an expression for which the latest version of evalLogicv3 is different depending on the status of the Exact flag ?
 « Next Oldest | Next Newest »

User(s) browsing this thread: 1 Guest(s)