Пример #1
0
        /*************************************************************************
        *  Complete elliptic integral of the second kind
        *
        *  Approximates the integral
        *
        *
        *          pi/2
        *           -
        | |                 2
        |  E(m)  =    |    sqrt( 1 - m sin t ) dt
        | |
        |         -
        |          0
        |
        |  using the approximation
        |
        |    P(x)  -  x log x Q(x).
        |
        |  ACCURACY:
        |
        |                    Relative error:
        |  arithmetic   domain     # trials      peak         rms
        |  IEEE       0, 1       10000       2.1e-16     7.3e-17
        |
        |  Cephes Math Library, Release 2.8: June, 2000
        |  Copyright 1984, 1987, 1989, 2000 by Stephen L. Moshier
        *************************************************************************/
        public static double EllipticIntegralE(double m)
        {
            var result = Elliptic.EllipticIntegralE(m);

            return(result);
        }
Пример #2
0
        /*************************************************************************
        *  Incomplete elliptic integral of the second kind
        *
        *  Approximates the integral
        *
        *
        *              phi
        *               -
        | |
        |                   2
        |  E(phi_\m)  =    |    sqrt( 1 - m sin t ) dt
        |
        | |
        |             -
        |              0
        |
        |  of amplitude phi and modulus m, using the arithmetic -
        |  geometric mean algorithm.
        |
        |  ACCURACY:
        |
        |  Tested at random arguments with phi in [-10, 10] and m in
        |  [0, 1].
        |                    Relative error:
        |  arithmetic   domain     # trials      peak         rms
        |  IEEE     -10,10      150000       3.3e-15     1.4e-16
        |
        |  Cephes Math Library Release 2.8:  June, 2000
        |  Copyright 1984, 1987, 1993, 2000 by Stephen L. Moshier
        *************************************************************************/
        public static double IncompleteEllipticIntegralE(double phi, double m)
        {
            var result = Elliptic.IncompleteEllipticIntegralE(phi, m);

            return(result);
        }
Пример #3
0
        /*************************************************************************
        *  Complete elliptic integral of the first kind
        *
        *  Approximates the integral
        *
        *
        *
        *          pi/2
        *           -
        | |
        |           dt
        |  K(m)  =    |    ------------------
        |                   2
        | |    sqrt( 1 - m sin t )
        |         -
        |          0
        |
        |  where m = 1 - m1, using the approximation
        |
        |   P(x)  -  log x Q(x).
        |
        |  The argument m1 is used rather than m so that the logarithmic
        |  singularity at m = 1 will be shifted to the origin; this
        |  preserves maximum accuracy.
        |
        |  K(0) = pi/2.
        |
        |  ACCURACY:
        |
        |                    Relative error:
        |  arithmetic   domain     # trials      peak         rms
        |  IEEE       0,1        30000       2.5e-16     6.8e-17
        |
        |  Àëãîðèòì âçÿò èç áèáëèîòåêè Cephes
        *************************************************************************/
        public static double EllipticIntegralKHighPrecision(double m1)
        {
            var result = Elliptic.EllipticIntegralKHighPrecision(m1);

            return(result);
        }