Artemis.Engine.Maths.RootSolver.Quadratic C# (CSharp) Метод

Quadratic() публичный статический Метод

Solve for the real roots of a quadratic. (Ax^2 + Bx + C == 0)
public static Quadratic ( double A, double B, double C ) : double[]
A double
B double
C double
Результат double[]
        public static double[] Quadratic(double A, double B, double C)
        {
            if (A == 0)
            {
                if (B == 0)
                    throw new ArgumentException(
                        "Invalid quadratic. The first and second " +
                        "coefficients cannot both be zero."
                        );
                return new double[] { -C / B };
            }
            double r = B * B - 4 * A * C;
            if (System.Math.Abs(r) < 1e-8)
                return new double[] { -B / (2 * A) };
            else if (r < 0)
                return new double[] { };
            r = System.Math.Sqrt(r);
            double A2 = 2 * A;
            return new double[] {
                ((-B + r)/A2),
                ((-B - r)/A2)
            };
        }