inverse function – InverseFunction: Precision problem

I define a function SS(t) as an inverse function:

tt(S_) := 10(2Sqrt((1-S)S) +14/5 ArcTan(Sqrt(S), Sqrt(1-S)) + 
     2/5 ArcTanh(1/2 Sqrt((1-S)/S)));
SS = InverseFunction(tt);
N(SS(53), 60)
(* 0.200580902656825260833989366151287711207279221292307930697890 *)

SS(t) works great up to t=53: it’s fast, I get a precision of 60, and I can plug it back into the original (forward) function.


Starting at t=54, it’s very slow, and the output is way wrong, complex and wrong magnitude. (It should be real and in (0.2, 0.2006)).


  • The forward function works well for inputs S=0.2+$epsilon$ ($epsilon$ very small, like $10^{-10}$), giving tt($cdot$) up to 80, no problem.

  • $MinPrecision=0, $MaxPrecision=$infty$ (defaults).

  • Increasing N($cdot$,60) to N($cdot$,100) makes no difference.

I use Mathematica 8.0.4 on MacOS, installed… 5 years ago?