Public Member Functions
GeographicLib::EllipticFunction Class Reference

Elliptic functions needed for TransverseMercatorExact. More...

#include <GeographicLib/EllipticFunction.hpp>

List of all members.

Public Member Functions

 EllipticFunction (double m) throw ()
double m () const throw ()
double m1 () const throw ()
double K () const throw ()
double E () const throw ()
double KE () const throw ()
void sncndn (double x, double &sn, double &cn, double &dn) const throw ()
double E (double sn, double cn, double dn) const throw ()

Detailed Description

Elliptic functions needed for TransverseMercatorExact.

This provides the subset of elliptic functions needed for TransverseMercatorExact. For a given ellipsoid, only parameters e2 and 1 - e2 are needed. This class taken the parameter as a constructor parameters and caches the values of the required complete integrals. A method is provided for Jacobi elliptic functions and for the incomplete elliptic integral of the second kind in terms of the amplitude.

The computation of the elliptic integrals uses the algorithms given in

The computation of the Jacobi elliptic functions uses the algorithm given in

The notation follows Abramowitz and Stegun, Chapters 16 and 17.


Constructor & Destructor Documentation

GeographicLib::EllipticFunction::EllipticFunction ( double  m) throw ()

Constructor with parameter m.

Definition at line 128 of file EllipticFunction.cpp.


Member Function Documentation

double GeographicLib::EllipticFunction::m ( ) const throw () [inline]

The parameter m.

Definition at line 61 of file EllipticFunction.hpp.

double GeographicLib::EllipticFunction::m1 ( ) const throw () [inline]

The complementary parameter m' = (1 - m).

Definition at line 66 of file EllipticFunction.hpp.

double GeographicLib::EllipticFunction::K ( ) const throw () [inline]

The complete integral of first kind, K(m).

Definition at line 71 of file EllipticFunction.hpp.

double GeographicLib::EllipticFunction::E ( ) const throw () [inline]

The complete integral of second kind, E(m).

Definition at line 76 of file EllipticFunction.hpp.

Referenced by main().

double GeographicLib::EllipticFunction::KE ( ) const throw () [inline]

The difference K(m) - E(m) (which can be computed directly).

Definition at line 81 of file EllipticFunction.hpp.

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

The Jacobi elliptic functions sn(x|m), cn(x|m), and dn(x|m) with argument x. The results are returned in sn, cn, and dn.

Definition at line 154 of file EllipticFunction.cpp.

double GeographicLib::EllipticFunction::E ( double  sn,
double  cn,
double  dn 
) const throw ()

The incomplete integral of the second kind = int dn(w)2 dw (A+S 17.2.10). Instead of specifying the ampltiude phi, we provide sn = sin(phi), cn = cos(phi), dn = sqrt(1 - m sin2(phi)).

Definition at line 202 of file EllipticFunction.cpp.


The documentation for this class was generated from the following files: