10#if !defined(GEOGRAPHICLIB_SPHERICALHARMONIC2_HPP)
11#define GEOGRAPHICLIB_SPHERICALHARMONIC2_HPP 1
98 const std::vector<real>& S,
100 const std::vector<real>& C1,
101 const std::vector<real>& S1,
103 const std::vector<real>& C2,
104 const std::vector<real>& S2,
106 real a,
unsigned norm =
FULL)
109 if (!(N1 <= N && N2 <= N))
155 const std::vector<real>& S,
156 int N,
int nmx,
int mmx,
157 const std::vector<real>& C1,
158 const std::vector<real>& S1,
159 int N1,
int nmx1,
int mmx1,
160 const std::vector<real>& C2,
161 const std::vector<real>& S2,
162 int N2,
int nmx2,
int mmx2,
163 real a,
unsigned norm =
FULL)
166 if (!(nmx1 <= nmx && nmx2 <= nmx))
167 throw GeographicErr(
"nmx1 and nmx2 cannot be larger that nmx");
168 if (!(mmx1 <= mmx && mmx2 <= mmx))
169 throw GeographicErr(
"mmx1 and mmx2 cannot be larger that mmx");
198 real f[] = {1, tau1, tau2};
203 v = SphericalEngine::Value<false, SphericalEngine::FULL, 3>
204 (_c, f, x, y, z, _a, dummy, dummy, dummy);
208 v = SphericalEngine::Value<false, SphericalEngine::SCHMIDT, 3>
209 (_c, f, x, y, z, _a, dummy, dummy, dummy);
236 real& gradx, real& grady, real& gradz)
const {
237 real f[] = {1, tau1, tau2};
241 v = SphericalEngine::Value<true, SphericalEngine::FULL, 3>
242 (_c, f, x, y, z, _a, gradx, grady, gradz);
246 v = SphericalEngine::Value<true, SphericalEngine::SCHMIDT, 3>
247 (_c, f, x, y, z, _a, gradx, grady, gradz);
281 real f[] = {1, tau1, tau2};
285 SphericalEngine::Circle<true, SphericalEngine::FULL, 3>
287 SphericalEngine::Circle<false, SphericalEngine::FULL, 3>
293 SphericalEngine::Circle<true, SphericalEngine::SCHMIDT, 3>
295 SphericalEngine::Circle<false, SphericalEngine::SCHMIDT, 3>
Header for GeographicLib::CircularEngine class.
Header for GeographicLib::Constants class.
GeographicLib::Math::real real
Header for GeographicLib::SphericalEngine class.
Spherical harmonic sums for a circle.
Exception handling for GeographicLib.
Package up coefficients for SphericalEngine.
Spherical harmonic series with two corrections to the coefficients.
const SphericalEngine::coeff & Coefficients2() const
SphericalHarmonic2(const std::vector< real > &C, const std::vector< real > &S, int N, int nmx, int mmx, const std::vector< real > &C1, const std::vector< real > &S1, int N1, int nmx1, int mmx1, const std::vector< real > &C2, const std::vector< real > &S2, int N2, int nmx2, int mmx2, real a, unsigned norm=FULL)
CircularEngine Circle(real tau1, real tau2, real p, real z, bool gradp) const
const SphericalEngine::coeff & Coefficients() const
SphericalHarmonic2(const std::vector< real > &C, const std::vector< real > &S, int N, const std::vector< real > &C1, const std::vector< real > &S1, int N1, const std::vector< real > &C2, const std::vector< real > &S2, int N2, real a, unsigned norm=FULL)
const SphericalEngine::coeff & Coefficients1() const
Math::real operator()(real tau1, real tau2, real x, real y, real z) const
Math::real operator()(real tau1, real tau2, real x, real y, real z, real &gradx, real &grady, real &gradz) const
Namespace for GeographicLib.