Re: How to avoid repeated recalculation of the same function
- To: mathgroup at smc.vnet.net
- Subject: [mg132675] Re: How to avoid repeated recalculation of the same function
- From: Joe Gwinn <joegwinn at comcast.net>
- Date: Sat, 3 May 2014 03:40:35 -0400 (EDT)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- Delivered-to: l-mathgroup@wolfram.com
- Delivered-to: mathgroup-outx@smc.vnet.net
- Delivered-to: mathgroup-newsendx@smc.vnet.net
- References: <ljvdcg$bal$1@smc.vnet.net>
In article <ljvdcg$bal$1 at smc.vnet.net>, <pgeipi10 at gmail.com> wrote: > Hi, > > I'm doing a calculaton that's purly symbolic (no graphing, numerical > integration, etc.). > > Suppose I have a function f[x_]:=... that's very complex to build. In fact, > f[x] ends up being a manageable expression (about 30 characters) but it takes > Mathematica about 30 min to build that expression. > > Another function g[] uses the function f[x] and references it many times. > I've discovered that g[] actually builds f[x] every time it's referenced > which takes 30 minutes each time. Theoretically, Mathematica could build it > once and then use the resulting expression every time it's referenced. > > So how do I accomplish that? That is, how do I make it build f[x] once and > then use the resulting expression when it's needed? That bit me a few times as well. Instead write f[x_]= ..., dropping the colon. If you write only =, the ... is evaluated once and the result saved under f[x_]. If you write :=, the whole ... is saved under f[x_], and evaluated every time f[x] is invoked. Joe Gwinn