Services & Resources / Wolfram Forums / MathGroup Archive
-----

MathGroup Archive 2014

[Date Index] [Thread Index] [Author Index]

Search the Archive

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



  • Prev by Date: Re: How to avoid repeated recalculation of the same function
  • Next by Date: Re: Plotting Data By State
  • Previous by thread: Re: How to avoid repeated recalculation of the same function
  • Next by thread: Re: How to avoid repeated recalculation of the same function