ieqnprint SciMax Toolbox ifactors

SciMax Toolbox >> if

if

Maxima Special operator

Calling Sequence

if

Description

Represents conditional evaluation. Various forms of if expressions are recognized.

if cond_1 then expr_1 else expr_0 evaluates to expr_1 if cond_1 evaluates to true, otherwise the expression evaluates to expr_0.

if cond_1 then expr_1 elseif cond_2 then expr_2 elseif ... else expr_0 evaluates to expr_k if cond_k is true and all preceding conditions are false. If none of the conditions are true, the expression evaluates to expr_0.

A trailing else false is assumed if else is missing. That is, if cond_1 then expr_1 is equivalent to if cond_1 then expr_1 else false, and if cond_1 then expr_1 elseif ... elseif cond_n then expr_n is equivalent to if cond_1 then expr_1 elseif ... elseif cond_n then expr_n else false.

The alternatives expr_0, ..., expr_n may be any Maxima expressions, including nested if expressions. The alternatives are neither simplified nor evaluated unless the corresponding condition is true.

The conditions cond_1, ..., cond_n are expressions which potentially or actually evaluate to true or false. When a condition does not actually evaluate to true or false, the behavior of if is governed by the global flag prederror. When prederror is true, it is an error if any evaluated condition does not evaluate to true or false. Otherwise, conditions which do not evaluate to true or false are accepted, and the result is a conditional expression.

Among other elements, conditions may comprise relational and logical operators as follows.

Operation            Symbol      Type
less than            <           relational infix
less than            <=
  or equal to                    relational infix
equality (syntactic) =           relational infix
negation of =        #           relational infix
equality (value)     equal       relational function
negation of equal    notequal    relational function
greater than         >=
  or equal to                    relational infix
greater than         >           relational infix
and                  and         logical infix
or                   or          logical infix
not                  not         logical prefix
ieqnprint SciMax Toolbox ifactors