avoiding non-machine numbers
- To: mathgroup at smc.vnet.net
- Subject: [mg115541] avoiding non-machine numbers
- From: wpb <wicher.bergsma at gmail.com>
- Date: Fri, 14 Jan 2011 06:17:04 -0500 (EST)
By default, Mathematica switches to non-machine numbers when needed,
eg,
In[4334]:= Exp[-50.^2]
Out[4334]= 1.835672669162*10^-1086
But this has a severe possible drawback in terms of computational
speed. For example, the following is very quick
In[4420]:= t = RandomReal[NormalDistribution[0, .1], 400000];
Exp[-t^2]; // Timing
Out[4421]= {0., Null}
but in the following computation non-machine numbers are generated,
and we get an enormous decrease in speed:
In[4422]:= t = RandomReal[NormalDistribution[0, 20], 400000];
Exp[-t^2]; // Timing
Out[4423]= {1.25, Null}
So is it possible to get a computation such as Exp[-50.^2] to evaluate
to zero in a very fast way? That is, that small numbers outside
machine-precision range evaluate to zero automatically?
Thanks, Wicher