private static double RationalApproximation(double t)
{
// Abramowitz and Stegun formula 26.2.23.
// The absolute value of the error should be less than 4.5 e-4.
double[] c = { 2.515517, 0.802853, 0.010328 };
double[] d = { 1.432788, 0.189269, 0.001308 };
return t - ((c[2] * t + c[1]) * t + c[0]) /
(((d[2] * t + d[1]) * t + d[0]) * t + 1.0);
}