144 void chb_legp_cossincp(
const int* deg ,
const double* cfi,
double* cfo) {
146 int ip, k2, l, j, i, m ;
156 double* som =
new double[nr] ;
159 double* bb = mat_legp_cossincp(np, nt) ;
166 const double* cc = cfi ;
184 for (j=0; j<nt; j++) {
187 for (i=0; i<nr; i++) {
191 for (l=m/2; l<nt; l++) {
193 double bmjl = bb[nt*j + l] ;
194 for (i=0; i<nr; i++) {
195 som[i] += bmjl * cc[nr*l + i] ;
199 for (i=0; i<nr; i++) {
209 for (i=0; i<2*ntnr; i++) {
233 for (ip=0; ip < np/4 + 1 ; ip++) {
240 for (k2=0; k2 < 2; k2++) {
242 if ( (k == 1) || (k == np+1) ) {
244 for (j=0; j<nt; j++) {
245 for (i=0; i<nr; i++) {
255 for (j=0; j<nt; j++) {
258 for (i=0; i<nr; i++) {
262 for (l=m/2; l<nt; l++) {
264 double bmjl = bb[nt*j + l] ;
265 for (i=0; i<nr; i++) {
266 som[i] += bmjl * cc[nr*l + i] ;
270 for (i=0; i<nr; i++) {
293 for (k2=0; k2 < 2; k2++) {
297 for (j=0; j<nt; j++) {
298 for (i=0; i<nr; i++) {
309 for (j=0; j<nt-1; j++) {
312 for (i=0; i<nr; i++) {
316 for (l=(m-1)/2; l<nt-1; l++) {
317 double bmjl = bb[nt*j + l] ;
318 for (i=0; i<nr; i++) {
319 som[i] += bmjl * cc[nr*l + i] ;
323 for (i=0; i<nr; i++) {
331 for (i=0; i<nr; i++) {