You could avoid loss of precision for small erf values by using
SQRT(inv_gamma(erf_value,0.5,1))
where inv_gamma is the highly accurate equivalent of GAMMAINV from Ian
Smith's VBA library
http://members.aol.com/iandjmsmith/Examples.xls
Unfortunately, the native GAMMAINV function is very crude for the purpose.
Sorry to come so late to the party, but Google's indexing of newsgroups was
down for nearly half a month, so I just stumbled onto this thread.
Jerry
"Harlan Grove" wrote:
Someone's gotta ask, since ERF(x) = 2*NORMSDIST(x*SQRT(2))-1, then why not
use NORMSINV? That is, why not estimate InverseERF(y) as
=NORMSINV((y+1)/2)/SQRT(2)
..'InverseErf [0.1]
..'0.0888559904942577
=NORMSINV((0.1+1)/2)/SQRT(2) - 0.0888559904942577
..'InverseErf [0.5]
..'0.4769362762044698
=NORMSINV((0.5+1)/2)/SQRT(2) - 0.47693627620447
..'InverseErf [0.9]
..'1.163087153676674
=NORMSINV((0.9+1)/2)/SQRT(2) - 1.16308715367667