-- stackoverflow.com/questions/27229371/inverse-error-function-in-c -- f(x) is inverse erf f(x) = test(x <= -1.0, -10.0, x >= 1.0, 10.0, f1(x)) f1(x,p,t) = do( t = log(1 - x^2), test(abs(t) > 6.125, do( p = 3.03697567 10.0^(-10), p = p t + 2.93243101 10.0^(-8), p = p t + 1.22150334 10.0^(-6), p = p t + 2.84108955 10.0^(-5), p = p t + 3.93552968 10.0^(-4), p = p t + 3.02698812 10.0^(-3), p = p t + 4.83185798 10.0^(-3), p = p t - 2.64646143 10.0^(-1), p = p t + 8.40016484 10.0^(-1)), do( p = 5.43877832 10.0^(-9), p = p t + 1.43285448 10.0^(-7), p = p t + 1.22774793 10.0^(-6), p = p t + 1.12963626 10.0^(-7), p = p t - 5.61530760 10.0^(-5), p = p t - 1.47697632 10.0^(-4), p = p t + 2.31468678 10.0^(-3), p = p t + 1.15392581 10.0^(-2), p = p t - 2.32015476 10.0^(-1), p = p t + 8.86226892 10.0^(-1)) ), -- end of test p x -- return value ) "Max error" m = 0 for(k, -1000, 1000, x = 0.001 k, t = abs(erf(f(x)) - x), test(t > m, do(m = t, y = x)) ) -- end of for loop m y
Run