[Maxima] How to prevent evaluation.

Barton Willis willisb at unk.edu
Mon Dec 28 06:51:18 CST 2009


%if is a simplifying function. Thus for the input %if(i < 0, expand((x
+1)^2), expand((x-1)^2)),
expand is called *before* the simplification function for %if (simp-%if) is
called. Maybe you can do
what you want by quoting? Example:

 (%i1) load(to_poly_solver)$

Define a function

 (%i22) f(i,x) := %if(i < 0, 'expand((x+1)^2), 'expand((x-1)^2));
 (%o22) f(i,x):=%if(i<0,expand((x+1)^2),expand((x-1)^2))

Expand isn't called:

 (%i23) f(k,s);
 (%o23) %if(-k>0,expand((s+1)^2),expand((s-1)^2))

Expand still isn't called :(

 (%i24) f(10,z);
 (%o24) expand((z-1)^2)

To expand, we need to ev(%, nouns):

 (%i25) ev(%,nouns);
 (%o25) z^2-2*z+1

Barton

-----"Richard Hennessy" <rich.hennessy at verizon.net> wrote: -----

>To: "Barton Willis" <willisb at unk.edu>, "Richard Fateman"
><fateman at cs.berkeley.edu>
>From: "Richard Hennessy" <rich.hennessy at verizon.net>
>Date: 12/27/2009 09:31PM
>cc: "Maxima List" <maxima at math.utexas.edu>
>Subject: Re: [Maxima] How to prevent evaluation.
>
>Thanks for the feedback.  I don't know if %if can be changed the way I
>want.  I would need to know a lot more about
>Maxima . . .
>
>Rich




More information about the Maxima mailing list