evalb - Maple Programming Help

Online Help

All Products    Maple    MapleSim


Home : Support : Online Help : Programming : Logic : Boolean : evalb

evalb

evaluate as a Boolean expression

 

Calling Sequence

Parameters

Description

Thread Safety

Examples

Calling Sequence

evalb(x)

Parameters

x

-

expression

Description

• 

The evalb command forces the evaluation of expressions involving relational operators, using a three-valued logic system.  The return values are true, false, and FAIL. If evaluation is not possible, an unevaluated expression is returned.

• 

Normally expressions containing the relational operators =, <>, <, <=, >, and >= are treated as algebraic equations or inequalities by Maple.  However, when passed as arguments to the evalb command (or when appearing in a Boolean context in an if or while statement), they are evaluated to true or false if possible.

• 

Note that expressions involving > and >= are converted into equivalent expressions involving < and <=, respectively.

• 

An evalb call using <, <=, >, or >= returns evaluated only with arguments of type extended_numeric, complex, or string. For more on string comparisons, see the section Operations on Entire Strings in Using Strings in Maple.

  

Important: The evalb command does not simplify expressions. It may return false for a relation that is true. In such a case, apply a simplification to the relation before using evalb.

  

Important: The evalb command does not perform arithmetic for inequalities involving <, <=, >, or >=. It may return unevaluated when a relation is true. In such a case, perform the arithmetic operations before using evalb.

Thread Safety

• 

The evalb command is thread-safe as of Maple 15.

• 

For more information on thread safety, see index/threadsafe.

Examples

x = x;

x=x

(1)

evalb(x=x);

true

(2)

evalb(x=y);

false

(3)

a:=2:

b:=2:

evalb(a=b);

true

(4)

evalb(Float(infinity)<infinity);

false

(5)

evalb(Float(undefined)<undefined);

false

(6)

evalb(Re(x)<>Re(x+1));

true

(7)

The evalb command cannot be used in some cases.

evalb(x>y);

y<x

(8)

evalb(2+3*I<3+4*I);

FAIL

(9)

In some cases, you must subtract the right-hand side from the left-hand side before evaluating inequalities that use <, <=, >, or >=.

evalb(Re(x)<Re(x+1));

x<1+x

(10)

evalb(Re(x)-Re(x+1)<0);

true

(11)

The evalb command uses address tests to determine equality.

evalb(Re(x)<=Re(x));

true

(12)

You must convert symbolic arguments to floating-point values when using the evalb command for inequalities that use <, <=, >, or >=.

evalb(sqrt(5)>2);

2<5

(13)

evalb(evalf(sqrt(5))>2);

true

(14)

Alternately, in this case you could use the is command to evaluate the boolean expression, without using evalf.

is(sqrt(5)>2);

true

(15)

The evalb command can be used in combination with any number of packages.

evalb(StringTools[Search]("2","This sentence does not contain any numbers.")=0);

true

(16)

The evalb command can be used to check if an equation has an x-term.

evalb(coeff(x^3+2*x^2-5,x)<>0);

false

(17)

evalb(coeff(x^3+2*x^2-5, x^2)<>0);

true

(18)

See Also

Boolean

is

testeq

type/complex

type/extended_numeric

Using Strings in Maple