Package up coefficients for SphericalEngine.  
 More...
#include <SphericalEngine.hpp>
|  | 
|  | coeff () | 
|  | 
|  | coeff (const std::vector< real > &C, const std::vector< real > &S, int N) | 
|  | 
|  | coeff (const std::vector< real > &C, const std::vector< real > &S, int N, int nmx, int mmx) | 
|  | 
| Math::real | Cv (int k) const | 
|  | 
| Math::real | Cv (int k, int n, int m, real f) const | 
|  | 
| int | index (int n, int m) const | 
|  | 
| int | mmx () const | 
|  | 
| int | N () const | 
|  | 
| int | nmx () const | 
|  | 
| Math::real | Sv (int k) const | 
|  | 
| Math::real | Sv (int k, int n, int m, real f) const | 
|  | 
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 99 of file SphericalEngine.hpp.
◆ coeff() [1/3]
  
  | 
        
          | GeographicLib::SphericalEngine::coeff::coeff | ( |  | ) |  |  | inline | 
 
 
◆ coeff() [2/3]
  
  | 
        
          | 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 124 of file SphericalEngine.hpp.
 
 
◆ coeff() [3/3]
  
  | 
        
          | 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 152 of file SphericalEngine.hpp.
 
 
◆ Csize()
  
  | 
        
          | static int GeographicLib::SphericalEngine::coeff::Csize | ( | int | N, |  
          |  |  | int | M |  
          |  | ) |  |  |  | inlinestatic | 
 
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 236 of file SphericalEngine.hpp.
 
 
◆ Cv() [1/2]
  
  | 
        
          | 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 195 of file SphericalEngine.hpp.
 
 
◆ Cv() [2/2]
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 213 of file SphericalEngine.hpp.
 
 
◆ index()
  
  | 
        
          | 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 187 of file SphericalEngine.hpp.
 
 
◆ mmx()
  
  | 
        
          | int GeographicLib::SphericalEngine::coeff::mmx | ( |  | ) | const |  | inline | 
 
 
◆ N()
  
  | 
        
          | int GeographicLib::SphericalEngine::coeff::N | ( |  | ) | const |  | inline | 
 
 
◆ nmx()
  
  | 
        
          | int GeographicLib::SphericalEngine::coeff::nmx | ( |  | ) | const |  | inline | 
 
 
◆ 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 387 of file SphericalEngine.cpp.
 
 
◆ Ssize()
  
  | 
        
          | static int GeographicLib::SphericalEngine::coeff::Ssize | ( | int | N, |  
          |  |  | int | M |  
          |  | ) |  |  |  | inlinestatic | 
 
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 247 of file SphericalEngine.hpp.
 
 
◆ Sv() [1/2]
  
  | 
        
          | 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 202 of file SphericalEngine.hpp.
 
 
◆ Sv() [2/2]
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 225 of file SphericalEngine.hpp.
 
 
◆ _Cnm
  
  | 
        
          | std::vector<real>::const_iterator GeographicLib::SphericalEngine::coeff::_Cnm |  | private | 
 
 
◆ _mmx
  
  | 
        
          | int GeographicLib::SphericalEngine::coeff::_mmx |  | private | 
 
 
◆ _nmx
  
  | 
        
          | int GeographicLib::SphericalEngine::coeff::_nmx |  | private | 
 
 
◆ _Nx
  
  | 
        
          | int GeographicLib::SphericalEngine::coeff::_Nx |  | private | 
 
 
◆ _Snm
  
  | 
        
          | std::vector<real>::const_iterator GeographicLib::SphericalEngine::coeff::_Snm |  | private | 
 
 
The documentation for this class was generated from the following files: