GeographicLib 2.5
GeographicLib::DAuxLatitude Class Reference

Divided differences of auxiliary latitudes. More...

#include <GeographicLib/DAuxLatitude.hpp>

Inheritance diagram for GeographicLib::DAuxLatitude:
GeographicLib::AuxLatitude

Public Member Functions

 DAuxLatitude (real a, real f)
 
Math::real DConvert (int auxin, int auxout, const AuxAngle &zeta1, const AuxAngle &zeta2) const
 
Math::real DParametric (const AuxAngle &phi1, const AuxAngle &phi2) const
 
Math::real DRectifying (const AuxAngle &phi1, const AuxAngle &phi2) const
 
Math::real DIsometric (const AuxAngle &phi1, const AuxAngle &phi2) const
 
- Public Member Functions inherited from GeographicLib::AuxLatitude
 AuxLatitude (real a, real f)
 
AuxAngle Convert (int auxin, int auxout, const AuxAngle &zeta, bool exact=false) const
 
Math::real Convert (int auxin, int auxout, real zeta, bool exact=false) const
 
AuxAngle ToAuxiliary (int auxout, const AuxAngle &phi, real *diff=nullptr) const
 
AuxAngle FromAuxiliary (int auxin, const AuxAngle &zeta, int *niter=nullptr) const
 
Math::real RectifyingRadius (bool exact=false) const
 
Math::real AuthalicRadiusSquared (bool exact=false) const
 
Math::real EquatorialRadius () const
 
Math::real PolarSemiAxis () const
 
Math::real Flattening () const
 

Static Public Member Functions

static Math::real DClenshaw (bool sinp, real Delta, real szeta1, real czeta1, real szeta2, real czeta2, const real c[], int K)
 
static Math::real Dlam (real x, real y)
 
static Math::real Dp0Dpsi (real x, real y)
 
- Static Public Member Functions inherited from GeographicLib::AuxLatitude
static AuxLatitude axes (real a, real b)
 
static Math::real Clenshaw (bool sinp, real szeta, real czeta, const real c[], int K)
 
static const AuxLatitudeWGS84 ()
 

Additional Inherited Members

- Public Types inherited from GeographicLib::AuxLatitude
enum  aux {
  GEOGRAPHIC , PARAMETRIC , GEOCENTRIC , RECTIFYING ,
  CONFORMAL , AUTHALIC , AUXNUMBER , PHI ,
  BETA , THETA , MU , CHI ,
  XI , COMMON , GEODETIC , REDUCED
}
 
- Static Public Attributes inherited from GeographicLib::AuxLatitude
static const int Lmax
 
- Protected Member Functions inherited from GeographicLib::AuxLatitude
AuxAngle Parametric (const AuxAngle &phi, real *diff=nullptr) const
 
AuxAngle Geocentric (const AuxAngle &phi, real *diff=nullptr) const
 
AuxAngle Rectifying (const AuxAngle &phi, real *diff=nullptr) const
 
AuxAngle Conformal (const AuxAngle &phi, real *diff=nullptr) const
 
AuxAngle Authalic (const AuxAngle &phi, real *diff=nullptr) const
 

Detailed Description

Divided differences of auxiliary latitudes.

This class computed the divided differences of auxiliary latitudes and some other divided differences needed to support rhumb line calculations.

Definition at line 23 of file DAuxLatitude.hpp.

Constructor & Destructor Documentation

◆ DAuxLatitude()

GeographicLib::DAuxLatitude::DAuxLatitude ( real  a,
real  f 
)
inline

Constructor

Parameters
[in]aequatorial radius.
[in]fflattening of ellipsoid. Setting f = 0 gives a sphere. Negative f gives a prolate ellipsoid.
Exceptions
GeographicErrif a or (1 − f) a is not positive.

Definition at line 37 of file DAuxLatitude.hpp.

Member Function Documentation

◆ DConvert()

Math::real GeographicLib::DAuxLatitude::DConvert ( int  auxin,
int  auxout,
const AuxAngle zeta1,
const AuxAngle zeta2 
) const

The divided difference of one auxiliary latitude with respect to another.

Parameters
[in]auxinan AuxLatitude::aux indicating the type of auxiliary latitude zeta.
[in]auxoutan AuxLatitude::aux indicating the type of auxiliary latitude eta.
[in]zeta1the first of the input auxiliary latitudeas.
[in]zeta2the second of the input auxiliary latitude.
Returns
the divided difference (eta2 - eta1) / (zeta2 - zeta1).
Note
This routine uses the series method.

In the expression for the divided difference above, the angle quantities should be understood as the conventional measure of angle (either in radians or in degrees).

The Fourier coefficients for a specific auxin and auxout are computed and saved on the first call; the saved coefficients are used on subsequent calls. The series method is accurate for abs(f) ≤ 1/150.

Definition at line 195 of file DAuxLatitude.cpp.

References DClenshaw(), GeographicLib::AuxLatitude::Lmax, GeographicLib::AuxAngle::normalized(), GeographicLib::AuxAngle::radians(), GeographicLib::AuxAngle::x(), and GeographicLib::AuxAngle::y().

Referenced by GeographicLib::Rhumb::GenInverse(), and GeographicLib::RhumbLine::GenPosition().

◆ DParametric()

Math::real GeographicLib::DAuxLatitude::DParametric ( const AuxAngle phi1,
const AuxAngle phi2 
) const

The divided difference of the parametric latitude with respect to the geographic latitude.

Parameters
[in]phi1the first geographic latitude as an AuxAngle.
[in]phi2the second geographic latitude as an AuxAngle.
Returns
the divided difference (beta2 - beta1) / (phi2 - phi1), where beta is the parametric latitude.
Note
This routine uses the exact formulas and is valid for arbitrary latitude.

Definition at line 46 of file DAuxLatitude.cpp.

References GeographicLib::AuxAngle::tan().

Referenced by DRectifying().

◆ DRectifying()

Math::real GeographicLib::DAuxLatitude::DRectifying ( const AuxAngle phi1,
const AuxAngle phi2 
) const

The divided difference of the rectifying latitude with respect to the geographic latitude.

Parameters
[in]phi1the first geographic latitude as an AuxAngle.
[in]phi2the second geographic latitude as an AuxAngle.
Returns
the divided difference (mu2 - mu1) / (phi2 - phi1), where mu is the rectifying latitude.
Note
This routine uses the exact formulas and is valid for arbitrary latitude.

Definition at line 25 of file DAuxLatitude.cpp.

References DParametric(), GeographicLib::AuxLatitude::Parametric(), GeographicLib::AuxAngle::radians(), GeographicLib::AuxLatitude::Rectifying(), GeographicLib::AuxLatitude::RectifyingRadius(), GeographicLib::Math::sq(), and GeographicLib::AuxAngle::tan().

Referenced by GeographicLib::Rhumb::GenInverse(), and GeographicLib::RhumbLine::GenPosition().

◆ DIsometric()

Math::real GeographicLib::DAuxLatitude::DIsometric ( const AuxAngle phi1,
const AuxAngle phi2 
) const

The divided difference of the isometric latitude with respect to the geographic latitude.

Parameters
[in]phi1the first geographic latitude as an AuxAngle.
[in]phi2the second geographic latitude as an AuxAngle.
Returns
the divided difference (psi2 - psi1) / (phi2 - phi1), where psi = asinh( tan(chi) ) is the isometric latitude and chi is the conformal latitude.
Note
This routine uses the exact formulas and is valid for arbitrary latitude.

Definition at line 183 of file DAuxLatitude.cpp.

References GeographicLib::AuxAngle::tan().

Referenced by GeographicLib::Rhumb::GenInverse(), and GeographicLib::RhumbLine::GenPosition().

◆ DClenshaw()

Math::real GeographicLib::DAuxLatitude::DClenshaw ( bool  sinp,
real  Delta,
real  szeta1,
real  czeta1,
real  szeta2,
real  czeta2,
const real  c[],
int  K 
)
static

The divided difference of AuxLatitude::Clenshaw.

Parameters
[in]sinpif true sum the sine series, else sum the cosine series.
[in]Deltaeither 1 or (zeta2 - zeta1) in radians.
[in]szeta1sin(zeta1).
[in]czeta1cos(zeta1).
[in]szeta2sin(zeta2).
[in]czeta2cos(zeta2).
[in]cthe array of coefficients.
[in]Kthe number of coefficients.
Returns
the divided difference.

The result is

   ( AuxLatitude::Clenshaw(sinp, szeta2, czeta2, c, K) -
     AuxLatitude::Clenshaw(sinp, szeta1, czeta1, c, K) ) / Delta
Warning
Delta must be either 1 or (zeta2 - zeta1); other values will return nonsense.

Definition at line 211 of file DAuxLatitude.cpp.

Referenced by DConvert().

◆ Dlam()

static Math::real GeographicLib::DAuxLatitude::Dlam ( real  x,
real  y 
)
inlinestatic

The divided difference of the isometric latitude with respect to the conformal latitude.

Parameters
[in]xtan(chi1).
[in]ytan(chi2).
Returns
the divided difference (psi2 - psi1) / (chi2 - chi1), where psi = asinh( tan(chi) ).
Note
This parameters for this routine are the tangents of conformal latitude.

This routine computes Dasinh(x, y) / Datan(x, y).

Definition at line 144 of file DAuxLatitude.hpp.

Referenced by GeographicLib::Rhumb::GenInverse(), and GeographicLib::RhumbLine::GenPosition().

◆ Dp0Dpsi()

static Math::real GeographicLib::DAuxLatitude::Dp0Dpsi ( real  x,
real  y 
)
inlinestatic

The divided difference of the spherical rhumb area term with respect to the isometric latitude.

Parameters
[in]xtan(chi1).
[in]ytan(chi2).
Returns
the divided difference (p0(chi2) - p0(chi1)) / (psi2 - psi1), where p0(chi) = log( sec(chi) ) and psi = asinh( tan(chi) ).
Note
This parameters for this routine are the tangents of conformal latitude.

Definition at line 165 of file DAuxLatitude.hpp.


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