Loading...
Searching...
No Matches
GeographicLib::DAuxLatitude Class Reference

Divided differences of auxiliary latitudes. More...

`#include <GeographicLib/DAuxLatitude.hpp>`

Inheritance diagram for GeographicLib::DAuxLatitude:

## 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 AuxLatitude & | WGS84 ()

## 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] | a | equatorial radius.
  [in] | f | flattening of ellipsoid. Setting f = 0 gives a sphere. Negative f gives a prolate ellipsoid.

Exceptions

  GeographicErr | if 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] | auxin | an AuxLatitude::aux indicating the type of auxiliary latitude zeta.
  [in] | auxout | an AuxLatitude::aux indicating the type of auxiliary latitude eta.
  [in] | zeta1 | the first of the input auxiliary latitudeas.
  [in] | zeta2 | the 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] | phi1 | the first geographic latitude as an AuxAngle.
  [in] | phi2 | the 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] | phi1 | the first geographic latitude as an AuxAngle.
  [in] | phi2 | the 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] | phi1 | the first geographic latitude as an AuxAngle.
  [in] | phi2 | the 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] | sinp | if true sum the sine series, else sum the cosine series.
  [in] | Delta | either 1 or (zeta2 - zeta1) in radians.
  [in] | szeta1 | sin(zeta1).
  [in] | czeta1 | cos(zeta1).
  [in] | szeta2 | sin(zeta2).
  [in] | czeta2 | cos(zeta2).
  [in] | c | the array of coefficients.
  [in] | K | the 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 )

inline static

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

Parameters

  [in] | x | tan(chi1).
  [in] | y | tan(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 )

inline static

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

Parameters

  [in] | x | tan(chi1).
  [in] | y | tan(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:

- DAuxLatitude.hpp
- DAuxLatitude.cpp