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
int nmx () const
int mmx () const
int index (int n, int m) const
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.

Definition at line 100 of file SphericalEngine.hpp.


Constructor & Destructor Documentation

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

A default constructor

Definition at line 109 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] C a vector of coefficients for the cosine terms.
[in] S a vector of coefficients for the sine terms.
[in] N the degree giving storage layout for C and S.
[in] nmx the maximum degree to be used.
[in] mmx the maximum order to be used.
Exceptions:
GeographicErr if N, nmx, and mmx do not satisfy N nmx mmx 1.
GeographicErr if C or S is not big enough to hold the coefficients.
std::bad_alloc if the memory for the square root table can't be allocated.

Definition at line 130 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] C a vector of coefficients for the cosine terms.
[in] S a vector of coefficients for the sine terms.
[in] N the maximum degree and order.
Exceptions:
GeographicErr if N does not satisfy N 1.
GeographicErr if C or S is not big enough to hold the coefficients.
std::bad_alloc if the memory for the square root table can't be allocated.

Definition at line 158 of file SphericalEngine.hpp.

References GeographicLib::SphericalEngine::RootTable().


Member Function Documentation

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

Definition at line 177 of file SphericalEngine.hpp.

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

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

Definition at line 181 of file SphericalEngine.hpp.

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

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

Definition at line 185 of file SphericalEngine.hpp.

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

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

The one-dimensional index into C and S.

Parameters:
[in] n the degree.
[in] m the order.
Returns:
the one-dimensional index.

Definition at line 193 of file SphericalEngine.hpp.

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

An element of C.

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

Definition at line 201 of file SphericalEngine.hpp.

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

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

An element of S.

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

Definition at line 208 of file SphericalEngine.hpp.

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

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

An element of C with checking.

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

Definition at line 219 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] k the one-dimensional index.
[in] n the requested degree.
[in] m the requested order.
[in] f a multiplier.
Returns:
the value of the S coefficient multiplied by f in n and m are in range else 0.

Definition at line 231 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] N the maximum degree.
[in] M the maximum order.
Returns:
the size of the vector of cosine terms as stored in column major order.

Definition at line 242 of file SphericalEngine.hpp.

Referenced by readcoeffs().

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

The size of the coefficient vector for the sine terms.

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

Definition at line 253 of file SphericalEngine.hpp.

Referenced by readcoeffs().

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] stream the input stream.
[out] N The maximum degree of the coefficients.
[out] M The maximum order of the coefficients.
[out] C The vector of cosine coefficients.
[out] S The vector of sine coefficients.
Exceptions:
GeographicErr if N and M do not satisfy N M 1.
GeographicErr if there's an error reading the data.
std::bad_alloc if the memory for C or S can't be allocated.

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 380 of file SphericalEngine.cpp.

References Csize(), Ssize(), and GeographicLib::Utility::str().

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


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