diff options
Diffstat (limited to 'src/mtx_spherical_harmonics/legendre_a.h')
-rw-r--r-- | src/mtx_spherical_harmonics/legendre_a.h | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/src/mtx_spherical_harmonics/legendre_a.h b/src/mtx_spherical_harmonics/legendre_a.h new file mode 100644 index 0000000..f1d0229 --- /dev/null +++ b/src/mtx_spherical_harmonics/legendre_a.h @@ -0,0 +1,36 @@ +/* + + Evaluates all associated legendre functions + at the angles theta up to the order nmax + using the three-term recurrence of the Legendre functions. + P has dimensions length(theta) x (nmax+1)(nmax+2) + + Implementation by Franz Zotter, Institute of Electronic Music and Acoustics + (IEM), University of Music and Dramatic Arts (KUG), Graz, Austria + http://iem.at/Members/zotter, 2008. + + This code is published under the Gnu General Public License, see + "LICENSE.txt" + +*/ + + +#ifndef _legendre_a_h__ +#define _legendre_a_h__ +#include <math.h> +#include <stdlib.h> + +typedef struct _LegendreWorkSpace_ +{ + size_t nmax; + size_t l; + double *p; +} LegendreWorkSpace; + +LegendreWorkSpace *legendre_a_alloc(const size_t nmax, const size_t l); + +void legendre_a_free(LegendreWorkSpace *wl); + +void legendre_a(double *theta, LegendreWorkSpace *wl); + +#endif |