examples/example-SphericalHarmonic2.cpp
Go to the documentation of this file.
1 // Example of using the GeographicLib::SphericalHarmonic2 class
2 
3 #include <iostream>
4 #include <exception>
5 #include <vector>
7 
8 using namespace std;
9 using namespace GeographicLib;
10 
11 int main() {
12  try {
13  int N = 3, N1 = 2, N2 = 1; // The maxium degrees
14  double ca[] = {10, 9, 8, 7, 6, 5, 4, 3, 2, 1}; // cosine coefficients
15  vector<double> C(ca, ca + (N + 1) * (N + 2) / 2);
16  double sa[] = {6, 5, 4, 3, 2, 1}; // sine coefficients
17  vector<double> S(sa, sa + N * (N + 1) / 2);
18  double cb[] = {1, 2, 3, 4, 5, 6};
19  vector<double> C1(cb, cb + (N1 + 1) * (N1 + 2) / 2);
20  double sb[] = {3, 2, 1};
21  vector<double> S1(sb, sb + N1 * (N1 + 1) / 2);
22  double cc[] = {2, 1};
23  vector<double> C2(cc, cc + (N2 + 1));
24  vector<double> S2;
25  double a = 1;
26  SphericalHarmonic2 h(C, S, N, N, N, C1, S1, N1, N1, N1,
27  C2, S2, N2, N2, 0, a);
28  double tau1 = 0.1, tau2 = 0.05, x = 2, y = 3, z = 1;
29  double v, vx, vy, vz;
30  v = h(tau1, tau2, x, y, z, vx, vy, vz);
31  cout << v << " " << vx << " " << vy << " " << vz << "\n";
32  }
33  catch (const exception& e) {
34  cerr << "Caught exception: " << e.what() << "\n";
35  return 1;
36  }
37 }
StridedVectorType vy(make_vector(y, *n, std::abs(*incy)))
Scalar * y
Symmetric< 2 > S2
Definition: testGroup.cpp:80
Definition: BFloat16.h:88
#define N
Definition: gksort.c:12
DiscreteKey S(1, 2)
StridedVectorType vx(make_vector(x, *n, std::abs(*incx)))
Array< int, Dynamic, 1 > v
Namespace for GeographicLib.
Array< double, 1, 3 > e(1./3., 0.5, 2.)
Spherical harmonic series with two corrections to the coefficients.
Matrix< Scalar, Dynamic, Dynamic > C
Definition: bench_gemm.cpp:50
const double h
Header for GeographicLib::SphericalHarmonic2 class.
set noclip points set clip one set noclip two set bar set border lt lw set xdata set ydata set zdata set x2data set y2data set boxwidth set dummy x


gtsam
Author(s):
autogenerated on Tue Jul 4 2023 02:34:13