120 void chb_cos_legmp(
const int* deg ,
const double* cfi,
double* cfo) {
122 int k2, l, jmin, j, i, m ;
132 double* som =
new double[nr] ;
135 double* aa = mat_cos_legmp(np, nt) ;
142 const double* cc = cfi ;
161 for (l=m; l<nt; l++) {
162 for (i=0; i<nr; i++) {
167 for (j=jmin; j<nt; j++) {
168 double amlj = aa[nt*l + j] ;
169 for (i=0; i<nr; i++) {
170 som[i] += amlj * cc[nr*j + i] ;
174 for (i=0; i<nr; i++) {
184 for (i=ntnr; i<3*ntnr; i++) {
204 for (m=0; m < np + 1 ; m+=2) {
206 for (k2=0; k2 < 2; k2++) {
208 if ( (k == 1) || (k == np+1) ) {
210 for (l=0; l<nt; l++) {
211 for (i=0; i<nr; i++) {
221 int lmax = (m<nt-1 ? m : nt-1) ;
222 for (l=0; l<lmax; l++) {
223 for (i=0; i<nr; i++) {
229 for (l=m; l<nt; l++) {
230 for (i=0; i<nr; i++) {
234 jmin = ( m == 0 ) ? l : 0 ;
235 for (j=jmin; j<nt; j++) {
236 double amlj = aa[nt*l + j] ;
237 for (i=0; i<nr; i++) {
238 som[i] += amlj * cc[nr*j + i] ;
242 for (i=0; i<nr; i++) {
264 assert(resu == cfo + (np+2)*ntnr) ;