molecular
Classes | Functions
molecular::util::SphericalHarmonics Namespace Reference

Classes

struct  Sample
 

Functions

double AssociatedLegendrePolynomial (int l, int m, double x)
 
double Factorial (int x)
 Fast factorial function using a precomputed table. More...
 
double ShRenormalisation (int l, int m)
 
double SphericalHarmonic (int l, int m, double theta, double phi)
 
Vector3d UnitVectorFromSphericalCoords (double theta, double phi)
 
template<int numBands>
std::vector< Sample< numBands > > SetupSphericalSamples (unsigned int samplesCount=100)
 Generate samples that are uniformly distributed on a sphere. More...
 
template std::vector< Sample< 3 > > SetupSphericalSamples< 3 > (unsigned int samplesCount)
 
template std::vector< Sample< 4 > > SetupSphericalSamples< 4 > (unsigned int samplesCount)
 
template<typename T >
void OptRotateBand1 (T dst[3], const T src[3], T m00, T m01, T m02, T m10, T m11, T m12, T m20, T m21, T m22)
 
template<typename T >
void OptRotateBand2 (T dst[5], const T x[5], T m00, T m01, T m02, T m10, T m11, T m12, T m20, T m21, T m22)
 
template<typename T >
void RotateOrder3 (T dst[9], const T src[9], const T mat[3][3])
 Rotate spherical harmonics coefficients by a rotation matrix. More...
 
template void RotateOrder3 (double dst[9], const double src[9], const double mat[3][3])
 
template void RotateOrder3 (float dst[9], const float src[9], const float mat[3][3])
 
void RotateOrder3 (float dst[9], const float src[9], const Matrix3 &mat)
 Rotate spherical harmonics coefficients by a rotation matrix. More...
 
template<int numBands, typename PolarFunction >
Vector< numBands *numBands, double > ProjectPolarFunction (PolarFunction func, const std::vector< Sample< numBands >> &samples)
 

Function Documentation

double molecular::util::SphericalHarmonics::AssociatedLegendrePolynomial ( int  l,
int  m,
double  x 
)
double molecular::util::SphericalHarmonics::Factorial ( int  x)

Fast factorial function using a precomputed table.

template<typename T >
void molecular::util::SphericalHarmonics::OptRotateBand1 ( dst[3],
const T  src[3],
m00,
m01,
m02,
m10,
m11,
m12,
m20,
m21,
m22 
)
template<typename T >
void molecular::util::SphericalHarmonics::OptRotateBand2 ( dst[5],
const T  x[5],
m00,
m01,
m02,
m10,
m11,
m12,
m20,
m21,
m22 
)
template<int numBands, typename PolarFunction >
Vector<numBands * numBands, double> molecular::util::SphericalHarmonics::ProjectPolarFunction ( PolarFunction  func,
const std::vector< Sample< numBands >> &  samples 
)
template<typename T >
void molecular::util::SphericalHarmonics::RotateOrder3 ( dst[9],
const T  src[9],
const T  mat[3][3] 
)

Rotate spherical harmonics coefficients by a rotation matrix.

template void molecular::util::SphericalHarmonics::RotateOrder3 ( double  dst[9],
const double  src[9],
const double  mat[3][3] 
)
template void molecular::util::SphericalHarmonics::RotateOrder3 ( float  dst[9],
const float  src[9],
const float  mat[3][3] 
)
void molecular::util::SphericalHarmonics::RotateOrder3 ( float  dst[9],
const float  src[9],
const Matrix3 mat 
)

Rotate spherical harmonics coefficients by a rotation matrix.

template<int numBands>
std::vector< Sample< numBands > > molecular::util::SphericalHarmonics::SetupSphericalSamples ( unsigned int  samplesCount)

Generate samples that are uniformly distributed on a sphere.

template std::vector< Sample< 3 > > molecular::util::SphericalHarmonics::SetupSphericalSamples< 3 > ( unsigned int  samplesCount)
template std::vector< Sample< 4 > > molecular::util::SphericalHarmonics::SetupSphericalSamples< 4 > ( unsigned int  samplesCount)
double molecular::util::SphericalHarmonics::ShRenormalisation ( int  l,
int  m 
)
double molecular::util::SphericalHarmonics::SphericalHarmonic ( int  l,
int  m,
double  theta,
double  phi 
)
Vector3d molecular::util::SphericalHarmonics::UnitVectorFromSphericalCoords ( double  theta,
double  phi 
)