Artemis.Engine.Maths.SpecialFunctions.Erfc C# (CSharp) Method

Erfc() public static method

Returns the complementary error function of the specified number.
public static Erfc ( double a ) : double
a double
return double
        public static double Erfc(double a)
        {
            double x, y, z, p, q;

            if (a < 0.0) x = -a;
            else x = a;

            if (x < 1.0) return 1.0 - Erf(a);

            z = -a*a;

            if (z < -MAXLOG)
            {
                if (a < 0) return (2.0);
                else return (0.0);
            }

            z = Math.Exp(z);

            if (x < 8.0)
            {
                p = polevl(x, ERFC_P, 8);
                q = p1evl(x, ERFC_Q, 8);
            }
            else
            {
                p = polevl(x, ERFC_R, 5);
                q = p1evl(x, ERC_S, 6);
            }

            y = (z*p)/q;

            if (a < 0) y = 2.0 - y;

            if (y == 0.0)
            {
                if (a < 0) return 2.0;
                else return (0.0);
            }

            return y;
        }