10 #if !defined(GEOGRAPHICLIB_SPHERICALHARMONIC2_HPP) 11 #define GEOGRAPHICLIB_SPHERICALHARMONIC2_HPP 1 103 const std::vector<real>& S,
105 const std::vector<real>& C1,
106 const std::vector<real>& S1,
108 const std::vector<real>& C2,
109 const std::vector<real>& S2,
111 real a,
unsigned norm =
FULL)
114 if (!(N1 <= N && N2 <= N))
160 const std::vector<real>& S,
161 int N,
int nmx,
int mmx,
162 const std::vector<real>& C1,
163 const std::vector<real>& S1,
164 int N1,
int nmx1,
int mmx1,
165 const std::vector<real>& C2,
166 const std::vector<real>& S2,
167 int N2,
int nmx2,
int mmx2,
168 real a,
unsigned norm =
FULL)
171 if (!(nmx1 <= nmx && nmx2 <= nmx))
172 throw GeographicErr(
"nmx1 and nmx2 cannot be larger that nmx");
173 if (!(mmx1 <= mmx && mmx2 <= mmx))
174 throw GeographicErr(
"mmx1 and mmx2 cannot be larger that mmx");
202 real f[] = {1, tau1, tau2};
207 v = SphericalEngine::Value<false, SphericalEngine::FULL, 3>
208 (_c, f, x, y, z, _a, dummy, dummy, dummy);
211 v = SphericalEngine::Value<false, SphericalEngine::SCHMIDT, 3>
212 (_c, f, x, y, z, _a, dummy, dummy, dummy);
238 real& gradx, real& grady, real& gradz)
const {
239 real f[] = {1, tau1, tau2};
243 v = SphericalEngine::Value<true, SphericalEngine::FULL, 3>
244 (_c, f, x, y, z, _a, gradx, grady, gradz);
247 v = SphericalEngine::Value<true, SphericalEngine::SCHMIDT, 3>
248 (_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>
320 #endif // GEOGRAPHICLIB_SPHERICALHARMONIC2_HPP
const SphericalEngine::coeff & Coefficients() const
const SphericalEngine::coeff & Coefficients1() const
Package up coefficients for SphericalEngine.
Namespace for GeographicLib.
const SphericalEngine::coeff & Coefficients2() const
Spherical harmonic series with two corrections to the coefficients.
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)
Header for GeographicLib::CircularEngine class.
Spherical harmonic sums for a circle.
Exception handling for GeographicLib.
Header for GeographicLib::Constants class.
Math::real operator()(real tau1, real tau2, real x, real y, real z) const
CircularEngine Circle(real tau1, real tau2, real p, real z, bool gradp) 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)
Header for GeographicLib::SphericalEngine class.
Math::real operator()(real tau1, real tau2, real x, real y, real z, real &gradx, real &grady, real &gradz) const