GeographicLib::EllipticFunction Class Reference

Elliptic integrals and functions. More...

#include <GeographicLib/EllipticFunction.hpp>

List of all members.

Public Member Functions

Constructor



 EllipticFunction (real k2=0, real alpha2=0)
 EllipticFunction (real k2, real alpha2, real kp2, real alphap2)
void Reset (real k2=0, real alpha2=0)
void Reset (real k2, real alpha2, real kp2, real alphap2)
Inspector functions.



Math::real k2 () const
Math::real kp2 () const
Math::real alpha2 () const
Math::real alphap2 () const
Complete elliptic integrals.



Math::real K () const
Math::real E () const
Math::real D () const
Math::real KE () const
Math::real Pi () const
Math::real G () const
Math::real H () const
Incomplete elliptic integrals.



Math::real F (real phi) const
Math::real E (real phi) const
Math::real Ed (real ang) const
Math::real Einv (real x) const
Math::real Pi (real phi) const
Math::real D (real phi) const
Math::real G (real phi) const
Math::real H (real phi) const
Incomplete integrals in terms of Jacobi elliptic functions.



Math::real F (real sn, real cn, real dn) const
Math::real E (real sn, real cn, real dn) const
Math::real Pi (real sn, real cn, real dn) const
Math::real D (real sn, real cn, real dn) const
Math::real G (real sn, real cn, real dn) const
Math::real H (real sn, real cn, real dn) const
Periodic versions of incomplete elliptic integrals.



Math::real deltaF (real sn, real cn, real dn) const
Math::real deltaE (real sn, real cn, real dn) const
Math::real deltaEinv (real stau, real ctau) const
Math::real deltaPi (real sn, real cn, real dn) const
Math::real deltaD (real sn, real cn, real dn) const
Math::real deltaG (real sn, real cn, real dn) const
Math::real deltaH (real sn, real cn, real dn) const
Elliptic functions.



void sncndn (real x, real &sn, real &cn, real &dn) const
Math::real Delta (real sn, real cn) const

Static Public Member Functions

Symmetric elliptic integrals.



static real RF (real x, real y, real z)
static real RF (real x, real y)
static real RC (real x, real y)
static real RG (real x, real y, real z)
static real RG (real x, real y)
static real RJ (real x, real y, real z, real p)
static real RD (real x, real y, real z)

Detailed Description

Elliptic integrals and functions.

This provides the elliptic functions and integrals needed for Ellipsoid, GeodesicExact, and TransverseMercatorExact. Two categories of function are provided:

In the latter case, an object is constructed giving the modulus k (and optionally the parameter 2). The modulus is always passed as its square k2 which allows k to be pure imaginary (k2 < 0). (Confusingly, Abramowitz and Stegun call m = k2 the "parameter" and n = 2 the "characteristic".)

In geodesic applications, it is convenient to separate the incomplete integrals into secular and periodic components, e.g.,

\[ E(\phi, k) = (2 E(\phi) / \pi) [ \phi + \delta E(\phi, k) ] \]

where E(, k) is an odd periodic function with period .

The computation of the elliptic integrals uses the algorithms given in

with the additional optimizations given in http://dlmf.nist.gov/19.36.i. The computation of the Jacobi elliptic functions uses the algorithm given in

The notation follows http://dlmf.nist.gov/19 and http://dlmf.nist.gov/22

Example of use:

// Example of using the GeographicLib::EllipticFunction class

#include <iostream>
#include <iomanip>
#include <cmath>
#include <GeographicLib/Math.hpp>
#include <GeographicLib/EllipticFunction.hpp>

using namespace std;
using namespace GeographicLib;

int main() {
  try {
    EllipticFunction ell(0.1);  // parameter m = 0.1
    // See Abramowitz and Stegun, table 17.1
    cout << ell.K() << " " << ell.E() << "\n";
    double phi = 20 * Math::degree();
    // See Abramowitz and Stegun, table 17.6 with
    // alpha = asin(sqrt(m)) = 18.43 deg and phi = 20 deg
    cout << ell.E(phi) << " "
         << ell.E(sin(phi), cos(phi), sqrt(1 - ell.k2() * Math::sq(sin(phi))))
         << "\n";
    // See Carlson 1995, Sec 3.
    cout << fixed << setprecision(16)
         << "RF(1,2,0)      = " << EllipticFunction::RF(1,2)      << "\n"
         << "RF(2,3,4)      = " << EllipticFunction::RF(2,3,4)    << "\n"
         << "RC(0,1/4)      = " << EllipticFunction::RC(0,0.25)   << "\n"
         << "RC(9/4,2)      = " << EllipticFunction::RC(2.25,2)   << "\n"
         << "RC(1/4,-2)     = " << EllipticFunction::RC(0.25,-2)  << "\n"
         << "RJ(0,1,2,3)    = " << EllipticFunction::RJ(0,1,2,3)  << "\n"
         << "RJ(2,3,4,5)    = " << EllipticFunction::RJ(2,3,4,5)  << "\n"
         << "RD(0,2,1)      = " << EllipticFunction::RD(0,2,1)    << "\n"
         << "RD(2,3,4)      = " << EllipticFunction::RD(2,3,4)    << "\n"
         << "RG(0,16,16)    = " << EllipticFunction::RG(16,16)    << "\n"
         << "RG(2,3,4)      = " << EllipticFunction::RG(2,3,4)    << "\n"
         << "RG(0,0.0796,4) = " << EllipticFunction::RG(0.0796,4) << "\n";
  }
  catch (const GeographicErr& e) {
    cout << "Caught exception: " << e.what() << "\n";
  }
  return 0;
}

Definition at line 62 of file EllipticFunction.hpp.


Constructor & Destructor Documentation

GeographicLib::EllipticFunction::EllipticFunction ( real  k2 = 0,
real  alpha2 = 0 
) [inline]

Constructor specifying the modulus and parameter.

Parameters:
[in] k2 the square of the modulus k2. k2 must lie in (-, 1). (No checking is done.)
[in] alpha2 the parameter 2. 2 must lie in (-, 1). (No checking is done.)

If only elliptic integrals of the first and second kinds are needed, then set 2 = 0 (the default value); in this case, we have (, 0, k) = F(, k), G(, 0, k) = E(, k), and H(, 0, k) = F(, k) - D(, k).

Definition at line 87 of file EllipticFunction.hpp.

GeographicLib::EllipticFunction::EllipticFunction ( real  k2,
real  alpha2,
real  kp2,
real  alphap2 
) [inline]

Constructor specifying the modulus and parameter and their complements.

Parameters:
[in] k2 the square of the modulus k2. k2 must lie in (-, 1). (No checking is done.)
[in] alpha2 the parameter 2. 2 must lie in (-, 1). (No checking is done.)
[in] kp2 the complementary modulus squared k'2 = 1 k2.
[in] alphap2 the complementary parameter '2 = 1 2.

The arguments must satisfy k2 + kp2 = 1 and alpha2 + alphap2 = 1. (No checking is done that these conditions are met.) This constructor is provided to enable accuracy to be maintained, e.g., when k is very close to unity.

Definition at line 108 of file EllipticFunction.hpp.


Member Function Documentation

void GeographicLib::EllipticFunction::Reset ( real  k2 = 0,
real  alpha2 = 0 
) [inline]

Reset the modulus and parameter.

Parameters:
[in] k2 the new value of square of the modulus k2 which must lie in (-, 1). (No checking is done.)
[in] alpha2 the new value of parameter 2. 2 must lie in (-, 1). (No checking is done.)

Definition at line 120 of file EllipticFunction.hpp.

References Reset().

Referenced by GeographicLib::GeodesicLineExact::GeodesicLineExact(), and Reset().

void GeographicLib::EllipticFunction::Reset ( real  k2,
real  alpha2,
real  kp2,
real  alphap2 
)

Reset the modulus and parameter supplying also their complements.

Parameters:
[in] k2 the square of the modulus k2. k2 must lie in (-, 1). (No checking is done.)
[in] alpha2 the parameter 2. 2 must lie in (-, 1). (No checking is done.)
[in] kp2 the complementary modulus squared k'2 = 1 k2.
[in] alphap2 the complementary parameter '2 = 1 2.

The arguments must satisfy k2 + kp2 = 1 and alpha2 + alphap2 = 1. (No checking is done that these conditions are met.) This constructor is provided to enable accuracy to be maintained, e.g., when is very small.

Definition at line 219 of file EllipticFunction.cpp.

References GeographicLib::Math::infinity(), GeographicLib::Math::pi(), RC(), RD(), RF(), RG(), RJ(), and GeographicLib::Math::sq().

Math::real GeographicLib::EllipticFunction::k2 (  )  const [inline]
Returns:
the square of the modulus k2.

Definition at line 151 of file EllipticFunction.hpp.

Math::real GeographicLib::EllipticFunction::kp2 (  )  const [inline]
Returns:
the square of the complementary modulus k'2 = 1 k2.

Definition at line 157 of file EllipticFunction.hpp.

Math::real GeographicLib::EllipticFunction::alpha2 (  )  const [inline]
Returns:
the parameter 2.

Definition at line 162 of file EllipticFunction.hpp.

Math::real GeographicLib::EllipticFunction::alphap2 (  )  const [inline]
Returns:
the complementary parameter '2 = 1 2.

Definition at line 168 of file EllipticFunction.hpp.

Math::real GeographicLib::EllipticFunction::K (  )  const [inline]

The complete integral of the first kind.

Returns:
K(k).

K(k) is defined in http://dlmf.nist.gov/19.2.E4

\[ K(k) = \int_0^{\pi/2} \frac1{\sqrt{1-k^2\sin^2\phi}}\,d\phi. \]

Definition at line 200 of file EllipticFunction.hpp.

Referenced by deltaF(), F(), GeographicLib::TransverseMercatorExact::Forward(), and GeographicLib::TransverseMercatorExact::Reverse().

Math::real GeographicLib::EllipticFunction::E (  )  const [inline]
Math::real GeographicLib::EllipticFunction::D (  )  const [inline]

Jahnke's complete integral.

Returns:
D(k).

D(k) is defined in http://dlmf.nist.gov/19.2.E6

\[ D(k) = \int_0^{\pi/2} \frac{\sin^2\phi}{\sqrt{1-k^2\sin^2\phi}}\,d\phi. \]

Definition at line 224 of file EllipticFunction.hpp.

Referenced by D(), deltaD(), and GeographicLib::GeodesicLineExact::GeodesicLineExact().

Math::real GeographicLib::EllipticFunction::KE (  )  const [inline]

The difference between the complete integrals of the first and second kinds.

Returns:
K(k) E(k).

Definition at line 232 of file EllipticFunction.hpp.

Referenced by GeographicLib::TransverseMercatorExact::Reverse().

Math::real GeographicLib::EllipticFunction::Pi (  )  const [inline]

The complete integral of the third kind.

Returns:
(2, k)

(2, k) is defined in http://dlmf.nist.gov/19.2.E7

\[ \Pi(\alpha^2, k) = \int_0^{\pi/2} \frac1{\sqrt{1-k^2\sin^2\phi}(1 - \alpha^2\sin^2\phi_)}\,d\phi. \]

Definition at line 246 of file EllipticFunction.hpp.

Referenced by deltaPi(), and Pi().

Math::real GeographicLib::EllipticFunction::G (  )  const [inline]

Legendre's complete geodesic longitude integral.

Returns:
G(2, k)

G(2, k) is given by

\[ G(\alpha^2, k) = \int_0^{\pi/2} \frac{\sqrt{1-k^2\sin^2\phi}}{1 - \alpha^2\sin^2\phi}\,d\phi. \]

Definition at line 259 of file EllipticFunction.hpp.

Referenced by deltaG(), and G().

Math::real GeographicLib::EllipticFunction::H (  )  const [inline]

Cayley's complete geodesic longitude difference integral.

Returns:
H(2, k)

H(2, k) is given by

\[ H(\alpha^2, k) = \int_0^{\pi/2} \frac{\cos^2\phi}{(1-\alpha^2\sin^2\phi)\sqrt{1-k^2\sin^2\phi}} \,d\phi. \]

Definition at line 273 of file EllipticFunction.hpp.

Referenced by deltaH(), GeographicLib::GeodesicLineExact::GeodesicLineExact(), and H().

Math::real GeographicLib::EllipticFunction::F ( real  phi  )  const

The incomplete integral of the first kind.

Parameters:
[in] phi 
Returns:
F(, k).

F(, k) is defined in http://dlmf.nist.gov/19.2.E4

\[ F(\phi, k) = \int_0^\phi \frac1{\sqrt{1-k^2\sin^2\theta}}\,d\theta. \]

Definition at line 443 of file EllipticFunction.cpp.

References Delta(), deltaF(), K(), and GeographicLib::Math::pi().

Referenced by deltaF().

Math::real GeographicLib::EllipticFunction::E ( real  phi  )  const

The incomplete integral of the second kind.

Parameters:
[in] phi 
Returns:
E(, k).

E(, k) is defined in http://dlmf.nist.gov/19.2.E5

\[ E(\phi, k) = \int_0^\phi \sqrt{1-k^2\sin^2\theta}\,d\theta. \]

Definition at line 448 of file EllipticFunction.cpp.

References Delta(), deltaE(), E(), and GeographicLib::Math::pi().

Math::real GeographicLib::EllipticFunction::Ed ( real  ang  )  const

The incomplete integral of the second kind with the argument given in degrees.

Parameters:
[in] ang in degrees.
Returns:
E( ang/180, k).

Definition at line 453 of file EllipticFunction.cpp.

References GeographicLib::Math::degree(), Delta(), and E().

Referenced by GeographicLib::Ellipsoid::MeridianDistance().

Math::real GeographicLib::EllipticFunction::Einv ( real  x  )  const

The inverse of the incomplete integral of the second kind.

Parameters:
[in] x 
Returns:
= E1(x, k); i.e., the solution of such that E(, k) = x.

Definition at line 483 of file EllipticFunction.cpp.

References Delta(), E(), GEOGRAPHICLIB_PANIC, and GeographicLib::Math::pi().

Referenced by deltaEinv(), and GeographicLib::Ellipsoid::InverseRectifyingLatitude().

Math::real GeographicLib::EllipticFunction::Pi ( real  phi  )  const

The incomplete integral of the third kind.

Parameters:
[in] phi 
Returns:
(, 2, k).

(, 2, k) is defined in http://dlmf.nist.gov/19.2.E7

\[ \Pi(\phi, \alpha^2, k) = \int_0^\phi \frac1{\sqrt{1-k^2\sin^2\theta}(1 - \alpha^2\sin^2\theta_)}\,d\theta. \]

Definition at line 463 of file EllipticFunction.cpp.

References Delta(), deltaPi(), GeographicLib::Math::pi(), and Pi().

Math::real GeographicLib::EllipticFunction::D ( real  phi  )  const

Jahnke's incomplete elliptic integral.

Parameters:
[in] phi 
Returns:
D(, k).

D(, k) is defined in http://dlmf.nist.gov/19.2.E4

\[ D(\phi, k) = \int_0^\phi \frac{\sin^2\theta}{\sqrt{1-k^2\sin^2\theta}}\,d\theta. \]

Definition at line 468 of file EllipticFunction.cpp.

References D(), Delta(), deltaD(), and GeographicLib::Math::pi().

Math::real GeographicLib::EllipticFunction::G ( real  phi  )  const

Legendre's geodesic longitude integral.

Parameters:
[in] phi 
Returns:
G(, 2, k).

G(, 2, k) is defined by

\[ \begin{align} G(\phi, \alpha^2, k) &= \frac{k^2}{\alpha^2} F(\phi, k) + \biggl(1 - \frac{k^2}{\alpha^2}\biggr) \Pi(\phi, \alpha^2, k) \\ &= \int_0^\phi \frac{\sqrt{1-k^2\sin^2\theta}}{1 - \alpha^2\sin^2\theta}\,d\theta. \end{align} \]

Legendre expresses the longitude of a point on the geodesic in terms of this combination of elliptic integrals in Exercices de Calcul Intégral, Vol. 1 (1811), p. 181, http://books.google.com/books?id=riIOAAAAQAAJ&pg=PA181.

See Geodesics in terms of elliptic integrals for the expression for the longitude in terms of this function.

Definition at line 473 of file EllipticFunction.cpp.

References Delta(), deltaG(), G(), and GeographicLib::Math::pi().

Math::real GeographicLib::EllipticFunction::H ( real  phi  )  const

Cayley's geodesic longitude difference integral.

Parameters:
[in] phi 
Returns:
H(, 2, k).

H(, 2, k) is defined by

\[ \begin{align} H(\phi, \alpha^2, k) &= \frac1{\alpha^2} F(\phi, k) + \biggl(1 - \frac1{\alpha^2}\biggr) \Pi(\phi, \alpha^2, k) \\ &= \int_0^\phi \frac{\cos^2\theta}{(1-\alpha^2\sin^2\theta)\sqrt{1-k^2\sin^2\theta}} \,d\theta. \end{align} \]

Cayley expresses the longitude difference of a point on the geodesic in terms of this combination of elliptic integrals in Phil. Mag. 40 (1870), p. 333, http://books.google.com/books?id=Zk0wAAAAIAAJ&pg=PA333.

See Geodesics in terms of elliptic integrals for the expression for the longitude in terms of this function.

Definition at line 478 of file EllipticFunction.cpp.

References Delta(), deltaH(), H(), and GeographicLib::Math::pi().

Math::real GeographicLib::EllipticFunction::F ( real  sn,
real  cn,
real  dn 
) const

The incomplete integral of the first kind in terms of Jacobi elliptic functions.

Parameters:
[in] sn = sin
[in] cn = cos
[in] dn = sqrt(1 k2 sin2)
Returns:
F(, k) as though (, ].

Definition at line 316 of file EllipticFunction.cpp.

References K(), and RF().

Math::real GeographicLib::EllipticFunction::E ( real  sn,
real  cn,
real  dn 
) const

The incomplete integral of the second kind in terms of Jacobi elliptic functions.

Parameters:
[in] sn = sin
[in] cn = cos
[in] dn = sqrt(1 k2 sin2)
Returns:
E(, k) as though (, ].

Definition at line 328 of file EllipticFunction.cpp.

References E(), RD(), and RF().

Math::real GeographicLib::EllipticFunction::Pi ( real  sn,
real  cn,
real  dn 
) const

The incomplete integral of the third kind in terms of Jacobi elliptic functions.

Parameters:
[in] sn = sin
[in] cn = cos
[in] dn = sqrt(1 k2 sin2)
Returns:
(, 2, k) as though (, ].

Definition at line 363 of file EllipticFunction.cpp.

References Pi(), RF(), and RJ().

Math::real GeographicLib::EllipticFunction::D ( real  sn,
real  cn,
real  dn 
) const

Jahnke's incomplete elliptic integral in terms of Jacobi elliptic functions.

Parameters:
[in] sn = sin
[in] cn = cos
[in] dn = sqrt(1 k2 sin2)
Returns:
D(, k) as though (, ].

Definition at line 351 of file EllipticFunction.cpp.

References D(), and RD().

Math::real GeographicLib::EllipticFunction::G ( real  sn,
real  cn,
real  dn 
) const

Legendre's geodesic longitude integral in terms of Jacobi elliptic functions.

Parameters:
[in] sn = sin
[in] cn = cos
[in] dn = sqrt(1 k2 sin2)
Returns:
G(, 2, k) as though (, ].

Definition at line 378 of file EllipticFunction.cpp.

References G(), RF(), and RJ().

Math::real GeographicLib::EllipticFunction::H ( real  sn,
real  cn,
real  dn 
) const

Cayley's geodesic longitude difference integral in terms of Jacobi elliptic functions.

Parameters:
[in] sn = sin
[in] cn = cos
[in] dn = sqrt(1 k2 sin2)
Returns:
H(, 2, k) as though (, ].

Definition at line 392 of file EllipticFunction.cpp.

References H(), RF(), and RJ().

Math::real GeographicLib::EllipticFunction::deltaF ( real  sn,
real  cn,
real  dn 
) const

The periodic incomplete integral of the first kind.

Parameters:
[in] sn = sin
[in] cn = cos
[in] dn = sqrt(1 k2 sin2)
Returns:
the periodic function F(, k) / (2 K(k)) -

Definition at line 406 of file EllipticFunction.cpp.

References F(), K(), and GeographicLib::Math::pi().

Referenced by F().

Math::real GeographicLib::EllipticFunction::deltaE ( real  sn,
real  cn,
real  dn 
) const

The periodic incomplete integral of the second kind.

Parameters:
[in] sn = sin
[in] cn = cos
[in] dn = sqrt(1 k2 sin2)
Returns:
the periodic function E(, k) / (2 E(k)) -

Definition at line 412 of file EllipticFunction.cpp.

References E(), and GeographicLib::Math::pi().

Referenced by E(), GeographicLib::GeodesicLineExact::GenPosition(), and GeographicLib::GeodesicLineExact::GeodesicLineExact().

Math::real GeographicLib::EllipticFunction::deltaEinv ( real  stau,
real  ctau 
) const

The periodic inverse of the incomplete integral of the second kind.

Parameters:
[in] stau = sin
[in] ctau = sin
Returns:
the periodic function E1( (2 E(k)/), k) -

Definition at line 504 of file EllipticFunction.cpp.

References E(), Einv(), and GeographicLib::Math::pi().

Referenced by GeographicLib::GeodesicLineExact::GenPosition().

Math::real GeographicLib::EllipticFunction::deltaPi ( real  sn,
real  cn,
real  dn 
) const

The periodic incomplete integral of the third kind.

Parameters:
[in] sn = sin
[in] cn = cos
[in] dn = sqrt(1 k2 sin2)
Returns:
the periodic function (, k) / (2 (k)) -

Definition at line 418 of file EllipticFunction.cpp.

References GeographicLib::Math::pi(), and Pi().

Referenced by Pi().

Math::real GeographicLib::EllipticFunction::deltaD ( real  sn,
real  cn,
real  dn 
) const

The periodic Jahnke's incomplete elliptic integral.

Parameters:
[in] sn = sin
[in] cn = cos
[in] dn = sqrt(1 k2 sin2)
Returns:
the periodic function D(, k) / (2 D(k)) -

Definition at line 425 of file EllipticFunction.cpp.

References D(), and GeographicLib::Math::pi().

Referenced by D(), GeographicLib::GeodesicLineExact::GenPosition(), and GeographicLib::GeodesicLineExact::GeodesicLineExact().

Math::real GeographicLib::EllipticFunction::deltaG ( real  sn,
real  cn,
real  dn 
) const

Legendre's periodic geodesic longitude integral.

Parameters:
[in] sn = sin
[in] cn = cos
[in] dn = sqrt(1 k2 sin2)
Returns:
the periodic function G(, k) / (2 G(k)) -

Definition at line 431 of file EllipticFunction.cpp.

References G(), and GeographicLib::Math::pi().

Referenced by G().

Math::real GeographicLib::EllipticFunction::deltaH ( real  sn,
real  cn,
real  dn 
) const

Cayley's periodic geodesic longitude difference integral.

Parameters:
[in] sn = sin
[in] cn = cos
[in] dn = sqrt(1 k2 sin2)
Returns:
the periodic function H(, k) / (2 H(k)) -

Definition at line 437 of file EllipticFunction.cpp.

References H(), and GeographicLib::Math::pi().

Referenced by GeographicLib::GeodesicLineExact::GenPosition(), GeographicLib::GeodesicLineExact::GeodesicLineExact(), and H().

void GeographicLib::EllipticFunction::sncndn ( real  x,
real &  sn,
real &  cn,
real &  dn 
) const

The Jacobi elliptic functions.

Parameters:
[in] x the argument.
[out] sn sn(x, k).
[out] cn cn(x, k).
[out] dn dn(x, k).

Definition at line 261 of file EllipticFunction.cpp.

References GEOGRAPHICLIB_PANIC.

Referenced by GeographicLib::TransverseMercatorExact::Forward(), and GeographicLib::TransverseMercatorExact::Reverse().

Math::real GeographicLib::EllipticFunction::Delta ( real  sn,
real  cn 
) const [inline]

The amplitude function.

Parameters:
[in] sn sin
[in] cn cos
Returns:
= sqrt(1 k2 sin2)

Definition at line 592 of file EllipticFunction.hpp.

Referenced by D(), E(), Ed(), Einv(), F(), G(), GeographicLib::GeodesicLineExact::GenPosition(), H(), and Pi().

Math::real GeographicLib::EllipticFunction::RF ( real  x,
real  y,
real  z 
) [static]

Symmetric integral of the first kind RF.

Parameters:
[in] x 
[in] y 
[in] z 
Returns:
RF(x, y, z)

RF is defined in http://dlmf.nist.gov/19.16.E1

\[ R_F(x, y, z) = \frac12 \int_0^\infty\frac1{\sqrt{(t + x) (t + y) (t + z)}}\, dt \]

If one of the arguments is zero, it is more efficient to call the two-argument version of this function with the non-zero arguments.

Definition at line 29 of file EllipticFunction.cpp.

Referenced by E(), F(), G(), H(), Pi(), Reset(), and RG().

Math::real GeographicLib::EllipticFunction::RF ( real  x,
real  y 
) [static]

Complete symmetric integral of the first kind, RF with one argument zero.

Parameters:
[in] x 
[in] y 
Returns:
RF(x, y, 0)

Definition at line 66 of file EllipticFunction.cpp.

References GeographicLib::Math::pi().

Math::real GeographicLib::EllipticFunction::RC ( real  x,
real  y 
) [static]

Degenerate symmetric integral of the first kind RC.

Parameters:
[in] x 
[in] y 
Returns:
RC(x, y) = RF(x, y, y)

RC is defined in http://dlmf.nist.gov/19.2.E17

\[ R_C(x, y) = \frac12 \int_0^\infty\frac1{\sqrt{t + x}(t + y)}\,dt \]

Definition at line 81 of file EllipticFunction.cpp.

References GeographicLib::Math::atanh().

Referenced by Reset(), and RJ().

Math::real GeographicLib::EllipticFunction::RG ( real  x,
real  y,
real  z 
) [static]

Symmetric integral of the second kind RG.

Parameters:
[in] x 
[in] y 
[in] z 
Returns:
RG(x, y, z)

RG is defined in Carlson, eq 1.5

\[ R_G(x, y, z) = \frac14 \int_0^\infty[(t + x) (t + y) (t + z)]^{-1/2} \biggl( \frac x{t + x} + \frac y{t + y} + \frac z{t + z} \biggr)t\,dt \]

See also http://dlmf.nist.gov/19.16.E3. If one of the arguments is zero, it is more efficient to call the two-argument version of this function with the non-zero arguments.

Definition at line 93 of file EllipticFunction.cpp.

References RD(), and RF().

Referenced by Reset().

Math::real GeographicLib::EllipticFunction::RG ( real  x,
real  y 
) [static]

Complete symmetric integral of the second kind, RG with one argument zero.

Parameters:
[in] x 
[in] y 
Returns:
RG(x, y, 0)

Definition at line 101 of file EllipticFunction.cpp.

References GeographicLib::Math::pi(), and GeographicLib::Math::sq().

Math::real GeographicLib::EllipticFunction::RJ ( real  x,
real  y,
real  z,
real  p 
) [static]

Symmetric integral of the third kind RJ.

Parameters:
[in] x 
[in] y 
[in] z 
[in] p 
Returns:
RJ(x, y, z, p)

RJ is defined in http://dlmf.nist.gov/19.16.E2

\[ R_J(x, y, z, p) = \frac32 \int_0^\infty[(t + x) (t + y) (t + z)]^{-1/2} (t + p)^{-1}\, dt \]

Definition at line 124 of file EllipticFunction.cpp.

References RC(), and GeographicLib::Math::sq().

Referenced by G(), H(), Pi(), and Reset().

Math::real GeographicLib::EllipticFunction::RD ( real  x,
real  y,
real  z 
) [static]

Degenerate symmetric integral of the third kind RD.

Parameters:
[in] x 
[in] y 
[in] z 
Returns:
RD(x, y, z) = RJ(x, y, z, z)

RD is defined in http://dlmf.nist.gov/19.16.E5

\[ R_D(x, y, z) = \frac32 \int_0^\infty[(t + x) (t + y)]^{-1/2} (t + z)^{-3/2}\, dt \]

Definition at line 176 of file EllipticFunction.cpp.

Referenced by D(), E(), Reset(), and RG().


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on 6 Oct 2014 for GeographicLib by  doxygen 1.6.1