SphericalHarmonic returns the value of Plm(theta,phi)
where theta and phi are defined in terms of a standard
spherical coordinate system
(phi measures angle (x,y,z) makes with z axis.) The algorithm is taken
from Messiah's Quantum Mechanics, but readers should note that Messiah
defines theta and phi in opposite order from this implementation.
The java version of this code uses the factorial routines
in MathLib. Functions are
provided for the C++ class. This class should be used in
conjunction with AssocLegendre.