Mathematica Stack Exchange is a question and answer site for users of Mathematica. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Is it possible to evaluate Erf[200] with arbitrary precision? I only get 1. as result but I would like to know if a arbitrary precision is possible because I need to compare a gaussian approximation to the hypergeometric distribution that for the values I'm using results in $\approx 10^{-6100}$.

Should I instead rely on NIntegrate and specify directly there my precision?

share|improve this question

For large arguments, is it not better to use Erfc?

For example:

myErf[z_, prec_:$MachinePrecision] := 1 - N[Erfc[z], prec];

(* -> 0.9999999999999999...9999999999999531064070401639850196 *)

This also has the advantage of not requiring involved calculations at very high precision, allowing the answer to be produced almost immediately.

share|improve this answer

How about

1 - N[1 - Erf[200], 20]
(* 0.99999999999 <<17371 more 9s>> 99999999999531064070401639850196 *)

In version 9:

We can exploit the two argument Erf: Erf[z1] - Erf[z2] == Erf[z2, z1].

1 - N[Erf[200, \[Infinity]], 20]
(* 0.99999999999 <<17371 more 9s>> 99999999999531064070401639850196 *)
share|improve this answer
My mathematica gives N::meprec: Internal precision limit $MaxExtraPrecision = 50. reached while evaluating 1-Erf[200]. >> and as result 1.00000000000000000000000000000000000000000000000000000000000000000000\ 0 – linello Apr 10 '14 at 15:21
Whoops, I'm not in version 9 right now. I'll update... – Chip Hurst Apr 10 '14 at 15:24

I'm not sure whether this gives the correct answer, but you could use RealDigits with a high setting of $MaxExtraPrecision to get your answer. Since it is almost 1, we subtract Erf[200] from 1 to get a number close to zero and add later:

Block[{$MaxExtraPrecision = 100000},
 RealDigits[1 - Erf[200], 10, 10]
(* {{4, 6, 8, 9, 3, 5, 9, 2, 9, 5}, -17374} *)

and then maybe

(* (200000000000000<<17353>>0000000937871859)/(200000000000000<<17353>>0000000000000000) *)

to get an exact rational expression.

share|improve this answer

Not sure if this helps: $MaxExtraPrecision=4999

N[f[20],24] equals -403.569343334317232747174
N[Log[1-Erf[20]],24] equals -403.569343334104234962969

and N[Log[1-Erf[200]],24] returns Indeterminate but f[200] yields -40005.8706948090821358531
For what it's worth: Series[Log[1 - Erf[x]], {x, \[Infinity], 3}].

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.