Re: Break up very long expression for C implementation
- To: mathgroup at smc.vnet.net
- Subject: [mg32538] Re: Break up very long expression for C implementation
- From: Jens-Peer Kuska <kuska at informatik.uni-leipzig.de>
- Date: Sat, 26 Jan 2002 04:07:56 -0500 (EST)
- Organization: Universitaet Leipzig
- References: <a2r4hj$9p1$1@smc.vnet.net>
- Reply-to: kuska at informatik.uni-leipzig.de
- Sender: owner-wri-mathgroup at wolfram.com
Hi, here is an example In[]:= expr=x^2 + 2*(x^2 - 1) - 1/x^2; oexp = Experimental`OptimizeExpression[expr, OptimizationLevel -> 2]; Out[]= Experimental`OptimizedExpression[Block[{$67, $68}, $67 = x^2; $68 = $67^(-1); -$68 + $67 + 2*(-1 + $67)]] Now you need a Hold[] instead of Experimental`OptimizedExpression[] because, otherwise Mathematica will revert the optimization, when the block is evaluated. Hold @@ oexp But it needs a sufficient part of additional work to make C code from it. Regards Jens Hold @@ oexp jose flanigan wrote: > > After a lot of work, I've computed a very long expression that I need > to export as a C program. The expression is over 300,000 characters > long. What I would like to do is automatically break it up into sub > expressions that I can compute step-by-step in a C program. It would > be particularly convenient effect of breaking up into parts that > repeat multiple times in the expression. This would save me the > computational cost of having to repeatedly compute the same thing over > and over again. > > I was wondering if somebody can help me get started with this. > > Thanks in advance.