The Maxima on-line user's manual

Algebra Calculator

If

-- Special operator: if 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

There are also some inexact matches for if. Try ?? if to see them.

(%o1)                                true
(%i2) 

Related Examples

if-plot2d-plot3d

f(x):=if (x>=0) th...

plot2d([f(x)],[x,-1,3...

g(x):=f(x)/(f(x)+f(1-...

Calculate

S_Einheit: t/s;

S_Formel: h/km;

testvalue: 0;

Calculate

if

fct(x):= if(x=1)then ...

fct(100);

Calculate

if-plot2d

plot2d(if (x>2) then ...

Calculate

if-plot2d-plot3d

f(x):=if (x<=0.5) ...

plot2d([f(x)],[x,0.5...

a(x,y):=f((x^2+y^2)^0...

Calculate

if-linsolve-ssearch-string

if(ssearch("%",string...

Calculate

if-lambda-let-var

:lisp (defmacro fcons...

:lisp (defun zip (l1 ...

Calculate

if

if (y^2-4)/3=integral...

Calculate

if-random-sconcat-string

s:sconcat("\\left(\\b...

Calculate

if-plot2d

epsilon(t):=if(t>0...

rho(t):=t*epsilon(t);

f(t,t0,E):=(rho(t)-rh...

Calculate