Re: Recalculating values in tables?
- To: mathgroup at smc.vnet.net
- Subject: [mg63893] Re: Recalculating values in tables?
- From: "Jens-Peer Kuska" <kuska at informatik.uni-leipzig.de>
- Date: Sat, 21 Jan 2006 01:50:40 -0500 (EST)
- Organization: Uni Leipzig
- References: <dqqbtt$lu1$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Hi,
how would you interpret
$count = 0;
f[i_] := ($count++; i)
Table[{f[i], Sqrt[f[i]]}, {i, 1, 10}];
In[]:=$count
Out[]=20
to avoid the multiple evaluation you should try
$count = 0;
f[i_] :=f[i]= ($count++; i)
or the solution with a temp -variable in the
table.
Regards
Jens
"AES" <siegman at stanford.edu> schrieb im
Newsbeitrag news:dqqbtt$lu1$1 at smc.vnet.net...
| If I'm evaluating a table with something like
|
| Table[ {initialExpressions; f1, f2,
Sqrt[(f1-f2)/(f1*f2)}, {iterator} ]
|
| where f1, f2, f3 are slow-to-evaluate
functions (possibly with
| explicit variables, which will be the same for
all three calls to the
| f's), I'm tempted to assume that Mathematica
will be smart enough to
| evaluate f1, f2 and f3 just once, not three
times, for each line in the
| Table. Is this low risk?
|
| Or should I always take the messier of route of
coding these functions
| explicitly in my initialExpressions using
something like
|
| Table[ { initialExpressions;
| g1=f1;
| g2=f2;
| g3=f3;
| g1, g2, Sqrt[(g1-g2)/(g1*g2)},
{iterator} ]
|
| Just wondering how far to trust Mathematica in
situations like this?
|