98 double* legendre(
int m,
int nt) {
106 double dt = M_PI / double(2*(nt-1)) ;
111 double* resu =
new double[(lmax-m+1)*nt] ;
114 double* cost =
new double[nt] ;
121 for (j=0; j<nt; j++) {
131 for (j=0; j<nt; j++) {
133 double s =
sin(j*dt) ;
134 for (i=1 ; i<2*m; i+=2) {
155 for (j=0; j<nt; j++) {
156 cost[j] =
cos(j*dt) ;
159 for (j=0; j<nt; j++) {
160 resu[nt+j] = cost[j] * (2.*m+1) * resu[j] ;
167 for (l=m+2; l < lmax+1 ; l++) {
169 int i_lm1 = nt*(l-1-m) ;
170 int i_lm2 = nt*(l-2-m) ;
175 for (j=0; j<nt; j++) {
176 resu[i_l+j] = ( cost[j] * a * resu[i_lm1+j]
177 - b * resu[i_lm2+j] ) / c ;
Cmp cos(const Cmp &)
Cosine.
Cmp sin(const Cmp &)
Sine.