5#include <gsl/gsl_sf_legendre.h>
48 throw std::runtime_error(
"Dimensionality error in SphericalHarmonicExpansion");
62 std::vector< std::vector<double> >
Plm(LMAX+1);
63 for (
int m=0;m<=
int(LMAX);m++) {
64 Plm[m].resize(LMAX+1);
69 std::complex<double>
P=0.0;
70 std::complex<double>
I(0,1.0);
71 for (
unsigned int l=0;l<=LMAX;l++) {
72 for (
int m=0;m<=
int(l);m++) {
79 stream <<
"Non-finite Pn(x=" << x <<
")";
80 throw std::runtime_error(
stream.str());
95 throw std::runtime_error(
"Non-finite return value in SphericalHarmonicExpansion");
#define FUNCTION_OBJECT_IMP(classname)
unsigned int getLMax() const
Clockwork(SphericalHarmonicExpansion::Type type, const SphericalHarmonicCoefficientSet &coefficients)
SphericalHarmonicCoefficientSet coefficients
SphericalHarmonicExpansion::Type type
SphericalHarmonicExpansion(Type type, const SphericalHarmonicCoefficientSet &coefficients)
SphericalHarmonicCoefficientSet & coefficientSet()
virtual ~SphericalHarmonicExpansion()
virtual double operator()(double argument) const override