140 void chb_legpp_cosp(
const int* deg ,
const double* cfi,
double* cfo) {
152 double* som =
new double[nr] ;
155 double* bb = mat_legpp_cosp(np, nt) ;
162 const double* cc = cfi ;
180 for (j=0; j<nt; j++) {
183 for (i=0; i<nr; i++) {
187 for (l=m/2; l<nt; l++) {
189 double bmjl = bb[nt*j + l] ;
190 for (i=0; i<nr; i++) {
191 som[i] += bmjl * cc[nr*l + i] ;
195 for (i=0; i<nr; i++) {
205 for (i=ntnr; i<3*ntnr; i++) {
223 for (m=0; m < np + 1 ; m+=2) {
225 for (k2=0; k2 < 2; k2++) {
227 if ( (k == 1) || (k == np+1) ) {
229 for (j=0; j<nt; j++) {
230 for (i=0; i<nr; i++) {
240 for (j=0; j<nt; j++) {
243 for (i=0; i<nr; i++) {
247 for (l=m/2; l<nt; l++) {
249 double bmjl = bb[nt*j + l] ;
250 for (i=0; i<nr; i++) {
251 som[i] += bmjl * cc[nr*l + i] ;
255 for (i=0; i<nr; i++) {
277 assert(resu == cfo + (np+2)*ntnr) ;