GeographicLib  1.21
Public Member Functions | Static Public Member Functions
GeographicLib::SphericalEngine::coeff Class Reference

Package up coefficients for SphericalEngine. More...

#include <GeographicLib/SphericalEngine.hpp>

List of all members.

Public Member Functions

 coeff ()
 coeff (const std::vector< real > &C, const std::vector< real > &S, int N, int nmx, int mmx)
 coeff (const std::vector< real > &C, const std::vector< real > &S, int N)
int N () const throw ()
int nmx () const throw ()
int mmx () const throw ()
int index (int n, int m) const throw ()
Math::real Cv (int k) const
Math::real Sv (int k) const
Math::real Cv (int k, int n, int m, real f) const
Math::real Sv (int k, int n, int m, real f) const

Static Public Member Functions

static int Csize (int N, int M)
static int Ssize (int N, int M)
static void readcoeffs (std::istream &stream, int &N, int &M, std::vector< real > &C, std::vector< real > &S)

Detailed Description

Package up coefficients for SphericalEngine.

This packages up the C, S coefficients and information about how the coefficients are stored into a single structure. This allows a vector of type SphericalEngine::coeff to be passed to SphericalEngine::Value. This class also includes functions to aid indexing into C and S.

The storage layout of the coefficients is documented in SphericalHarmonic and SphericalHarmonic::SphericalHarmonic.


Constructor & Destructor Documentation

GeographicLib::SphericalEngine::coeff::coeff ( ) [inline]

A default constructor

Definition at line 101 of file SphericalEngine.hpp.

GeographicLib::SphericalEngine::coeff::coeff ( const std::vector< real > &  C,
const std::vector< real > &  S,
int  N,
int  nmx,
int  mmx 
) [inline]

The general constructor.

Parameters:
[in]Ca vector of coefficients for the cosine terms.
[in]Sa vector of coefficients for the sine terms.
[in]Nthe degree giving storage layout for C and S.
[in]nmxthe maximum degree to be used.
[in]mmxthe maximum order to be used.

This requires N >= nmx >= mmx >= -1. C and S must also be large enough to hold the coefficients. Otherwise an exception is thrown.

Definition at line 120 of file SphericalEngine.hpp.

References GeographicLib::SphericalEngine::RootTable().

GeographicLib::SphericalEngine::coeff::coeff ( const std::vector< real > &  C,
const std::vector< real > &  S,
int  N 
) [inline]

The constructor for full coefficient vectors.

Parameters:
[in]Ca vector of coefficients for the cosine terms.
[in]Sa vector of coefficients for the sine terms.
[in]Nthe maximum degree and order.

This requires N >= -1. C and S must also be large enough to hold the coefficients. Otherwise an exception is thrown.

Definition at line 146 of file SphericalEngine.hpp.

References GeographicLib::SphericalEngine::RootTable().


Member Function Documentation

int GeographicLib::SphericalEngine::coeff::N ( ) const throw () [inline]
Returns:
N the degree giving storage layout for C and S.

Definition at line 165 of file SphericalEngine.hpp.

Referenced by GeographicLib::GravityModel::GravityModel().

int GeographicLib::SphericalEngine::coeff::nmx ( ) const throw () [inline]
Returns:
nmx the maximum degree to be used.

Definition at line 169 of file SphericalEngine.hpp.

Referenced by GeographicLib::GravityModel::GravityModel(), and GeographicLib::SphericalEngine::Circle().

int GeographicLib::SphericalEngine::coeff::mmx ( ) const throw () [inline]
Returns:
mmx the maximum order to be used.

Definition at line 173 of file SphericalEngine.hpp.

Referenced by GeographicLib::GravityModel::GravityModel(), and GeographicLib::SphericalEngine::Circle().

int GeographicLib::SphericalEngine::coeff::index ( int  n,
int  m 
) const throw () [inline]

The one-dimensional index into C and S.

Parameters:
[in]nthe degree.
[in]mthe order.
Returns:
the one-dimensional index.

Definition at line 181 of file SphericalEngine.hpp.

Math::real GeographicLib::SphericalEngine::coeff::Cv ( int  k) const [inline]

An element of C.

Parameters:
[in]kthe one-dimensional index.
Returns:
the value of the C coefficient.

Definition at line 189 of file SphericalEngine.hpp.

Referenced by GeographicLib::SphericalEngine::Circle().

Math::real GeographicLib::SphericalEngine::coeff::Sv ( int  k) const [inline]

An element of S.

Parameters:
[in]kthe one-dimensional index.
Returns:
the value of the S coefficient.

Definition at line 196 of file SphericalEngine.hpp.

Referenced by GeographicLib::SphericalEngine::Circle().

Math::real GeographicLib::SphericalEngine::coeff::Cv ( int  k,
int  n,
int  m,
real  f 
) const [inline]

An element of C with checking.

Parameters:
[in]kthe one-dimensional index.
[in]nthe requested degree.
[in]mthe requested order.
[in]fa multiplier.
Returns:
the value of the C coefficient multiplied by f in n and m are in range else 0.

Definition at line 207 of file SphericalEngine.hpp.

Math::real GeographicLib::SphericalEngine::coeff::Sv ( int  k,
int  n,
int  m,
real  f 
) const [inline]

An element of S with checking.

Parameters:
[in]kthe one-dimensional index.
[in]nthe requested degree.
[in]mthe requested order.
[in]fa multiplier.
Returns:
the value of the S coefficient multiplied by f in n and m are in range else 0.

Definition at line 219 of file SphericalEngine.hpp.

static int GeographicLib::SphericalEngine::coeff::Csize ( int  N,
int  M 
) [inline, static]

The size of the coefficient vector for the cosine terms.

Parameters:
[in]Nthe maximum degree.
[in]Mthe maximum order.
Returns:
the size of the vector of cosine terms as stored in column major order.

Definition at line 230 of file SphericalEngine.hpp.

static int GeographicLib::SphericalEngine::coeff::Ssize ( int  N,
int  M 
) [inline, static]

The size of the coefficient vector for the sine terms.

Parameters:
[in]Nthe maximum degree.
[in]Mthe maximum order.
Returns:
the size of the vector of cosine terms as stored in column major order.

Definition at line 241 of file SphericalEngine.hpp.

void GeographicLib::SphericalEngine::coeff::readcoeffs ( std::istream &  stream,
int &  N,
int &  M,
std::vector< real > &  C,
std::vector< real > &  S 
) [static]

Load coefficients from a binary stream.

Parameters:
[in]streamthe input stream.
[out]NThe maximum degree of the coefficients.
[out]MThe maximum order of the coefficients.
[out]CThe vector of cosine coefficients.
[out]SThe vector of sine coefficients.

N and M are read as 4-byte ints. C and S are resized to accommodate all the coefficients (with the m = 0 coefficients for S excluded) and the data for these coefficients read as 8-byte doubles. The coefficients are stored in column major order. The bytes in the stream should use little-endian ordering. IEEE floating point is assumed for the coefficients.

Definition at line 382 of file SphericalEngine.cpp.

Referenced by GeographicLib::GravityModel::GravityModel(), and GeographicLib::MagneticModel::MagneticModel().


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