Artemis.Engine.Maths.SpecialFunctions.Y0 C# (CSharp) Метод

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

Returns the Bessel function of the second kind, of order 0 of the specified number.
public static Y0 ( double x ) : double
x double
Результат double
        public static double Y0(double x)
        {
            if (x < 8.0)
            {
                double y = x*x;

                double ans1 = -2957821389.0 + y*(7062834065.0 + y*(-512359803.6
                    + y*(10879881.29 + y*(-86327.92757 + y*228.4622733))));
                double ans2 = 40076544269.0 + y*(745249964.8 + y*(7189466.438
                    + y*(47447.26470 + y*(226.1030244 + y*1.0))));

                return (ans1 / ans2) + 0.636619772 * J0(x) * Math.Log(x);
            }
            else
            {
                double z = 8.0/x;
                double y = z*z;
                double xx = x - 0.785398164;

                double ans1 = 1.0 + y*(-0.1098628627e-2 + y*(0.2734510407e-4
                    + y*(-0.2073370639e-5 + y*0.2093887211e-6)));
                double ans2 = -0.1562499995e-1 + y*(0.1430488765e-3
                    + y*(-0.6911147651e-5 + y*(0.7621095161e-6
                    + y*(-0.934945152e-7))));
                return Math.Sqrt(0.636619772 / x) *
                    (Math.Sin(xx) * ans1 + z * Math.Cos(xx) * ans2);
            }
        }