diff options
author | Franz Zotter <fzotter@users.sourceforge.net> | 2009-01-14 10:58:32 +0000 |
---|---|---|
committer | Franz Zotter <fzotter@users.sourceforge.net> | 2009-01-14 10:58:32 +0000 |
commit | 92b9deaf8d7c2a96c3977e1204341d6b6feb1fc1 (patch) | |
tree | 6e17422343f2a63bba88422d02e5d06fdf8d7baf /src/mtx_spherical_harmonics/cmdline/legendre_a_cmd.c | |
parent | 96987170c95a18b779cd2bfc316d88d754db4b8e (diff) |
renamed [mtx_sh] to [mtx_spherical_harmonics].
svn path=/trunk/externals/iem/iemmatrix/; revision=10549
Diffstat (limited to 'src/mtx_spherical_harmonics/cmdline/legendre_a_cmd.c')
-rw-r--r-- | src/mtx_spherical_harmonics/cmdline/legendre_a_cmd.c | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/src/mtx_spherical_harmonics/cmdline/legendre_a_cmd.c b/src/mtx_spherical_harmonics/cmdline/legendre_a_cmd.c new file mode 100644 index 0000000..83845de --- /dev/null +++ b/src/mtx_spherical_harmonics/cmdline/legendre_a_cmd.c @@ -0,0 +1,49 @@ + +/* command line test for legendre_a.c + * Franz Zotter, 2009, see ../LICENSE.txt */ + +#include <stdio.h> + +#include "legendre_a.h" + +int main (int argc, char *argv[]) { + int nmax, l, lc, n, m; + LegendreWorkSpace *wl=0; + double *ptr,*theta; + + if (argc <3) { + printf("legendre_a requires nmax as input argument followed by theta values\n"); + return 0; + } + + nmax=atoi(argv[1]); + l=argc-2; + if ((theta=(double*)calloc(l,sizeof(double)))==0) { + printf("legendre_a could not allocate memory for %d theta-values\n",l); + return 0; + } + if ((wl=legendre_a_alloc(nmax,l))==0) { + printf("legendre_a could not allocate memory for n=%d\n and l=%d\n",nmax,l); + free(theta); + return 0; + } + for (n=0;n<l;n++) { + theta[n]=atof(argv[n+2]); + } + legendre_a(theta,wl); + + ptr=wl->p; + for (lc=0;lc<l;lc++) { + printf("pt %d:\n",lc); + for (n=0;n<=nmax;n++) { + for (m=0;m<=n;m++) { + printf("P[%2d][%2d](%7.4f)=%7.4f\n",n,m,theta[l],*ptr++); + } + } + } + legendre_a_free(wl); + free(theta); + return 1; +} + + |