117 void chb_sin_legmi(
const int* deg ,
const double* cfi,
double* cfo) {
119 int k2, l, jmin, j, i, m ;
127 assert( cfi != cfo ) ;
130 double* som =
new double[nr] ;
133 double* aa = mat_sin_legmi(np, nt) ;
140 const double* cc = cfi ;
152 for (i=0; i<nr; i++) {
158 for (l=1; l<nt-1; l++) {
159 for (i=0; i<nr; i++) {
165 for (j=jmin; j<nt-1; j++) {
166 double amlj = aa[nt*l + j] ;
167 for (i=0; i<nr; i++) {
168 som[i] += amlj * cc[nr*j + i] ;
172 for (i=0; i<nr; i++) {
180 for (i=0; i<nr; i++) {
188 for (i=0; i<2*ntnr; i++) {
204 for (l=0; l<nt; l++) {
205 for (i=0; i<nr; i++) {
219 for (i=0; i<nr; i++) {
225 for (l=1; l<nt-1; l++) {
226 for (i=0; i<nr; i++) {
232 for (j=jmin; j<nt-1; j++) {
233 double amlj = aa[nt*l + j] ;
234 for (i=0; i<nr; i++) {
235 som[i] += amlj * cc[nr*j + i] ;
239 for (i=0; i<nr; i++) {
247 for (i=0; i<nr; i++) {
262 for (m=3; m < np ; m+=2) {
264 for (k2=0; k2 < 2; k2++) {
265 int lmax = (m<nt-1 ? m : nt -1) ;
266 for (l=0; l<lmax; l++) {
267 for (i=0; i<nr; i++) {
274 for (l=m; l<nt-1; l++) {
275 for (i=0; i<nr; i++) {
281 for (j=jmin; j<nt-1; j++) {
282 double amlj = aa[nt*l + j] ;
283 for (i=0; i<nr; i++) {
284 som[i] += amlj * cc[nr*j + i] ;
288 for (i=0; i<nr; i++) {
296 for (i=0; i<nr; i++) {
316 for (l=0; l<nt; l++) {
317 for (i=0; i<nr; i++) {
325 assert(resu == cfo + (np+2)*ntnr) ;