[SciPy-user] evaluating a really long, multiline expression
Robert Kern
robert.kern at gmail.com
Wed Nov 23 17:01:46 CST 2005
David M. Cooke wrote:
> Does Maxima have some method of rewriting expressions in terms of a
> sequence of expressions, pulling out common subcomputations? Maple has
> this:
>
>>ex := expand((x+y)^5);
>
> 5 4 3 2 2 3 4 5
> ex := x + 5 x y + 10 x y + 10 x y + 5 x y + y
>
>>codegen[optimize](ex);
>
> 2 2 2 2
> t1 = x , t2 = t1 , t7 = y , t13 = t7 ,
>
> t17 = t2 x + 5 t2 y + 10 t1 x t7 + 10 t1 t7 y + 5 x t13 + t13 y
>
> Something like that would *really* help. Also, speedwise, you might
> think about putting it into a Pyrex file, and compiling it as a C module.
I don't think Maxima has common subexpression elimination. At least, not
two years ago when I last checked. However, it does have FORTRAN output,
and cobbling up a small FORTRAN subroutine from that and a .pyf is quite
easy. FORTRAN compilers generally *do* have common subexpression
elimination.
Here's the c.l.py thread where I asked a similar question:
http://mail.python.org/pipermail/python-list/2003-October/189345.html
--
Robert Kern
robert.kern at gmail.com
"In the fields of hell where the grass grows high
Are the graves of dreams allowed to die."
-- Richard Harter
More information about the SciPy-user
mailing list