134 fftw_plan back_fft(
int, Tbl*&) ;
   135 double* cheb_ini(
const int) ;
   138 void circhebp(
const int* deg, 
const int* dimc, 
double* cf, 
   139             const int* dimf, 
double* ff)
   157     cout << 
"circhebp: nr > n3c : nr = " << nr << 
" ,  n3c = "    163     cout << 
"circhebp: nr > n3f : nr = " << nr << 
" ,  n3f = "    169     cout << 
"circhebp: n1c > n1f : n1c = " << n1c << 
" ,  n1f = "    175     cout << 
"circhebp: n2c > n2f : n2c = " << n2c << 
" ,  n2f = "    187     fftw_plan p = back_fft(nm1, pg) ;
   191     double* sinp = cheb_ini(nr);    
   195     int n2n3f = n2f * n3f ;
   196     int n2n3c = n2c * n3c ;
   204     int borne_phi = ( n1c > 1 ) ? n1c-1 : 1 ;
   206     for (j=0; j< borne_phi; j++) {
   210     for (k=0; k<n2c; k++) {
   212         int i0 = n2n3c * j + n3c * k ; 
   213         double* cf0 = cf + i0 ;    
   215         i0 = n2n3f * j + n3f * k ; 
   216         double* ff0 = ff + i0 ;    
   234             for ( i = 3; i < nr; i += 2 ) {
   235             ff0[i] = cf0[i] - c1 ;
   240         double fmoins0 = nm1s2 * c1 + som ;
   245             for ( i = 3; i < nr; i += 2 ) {
   246         g.set(nm1-i/2) = 0.25 * ( ff0[i] - ff0[i-2] ) ;
   258             for (i=1; i<nm1s2; i++) g.set(i) = 0.5 * cf0[2*i] ; 
   259             g.set(nm1s2) = cf0[nm1] ;
   270             for ( i = 1; i < nm1s2 ; i++ ) {
   276         int ixsym = nm1 -  isym ;
   278         double fp = .5 * ( g(i) + g(isym) ) ;
   279         double fm = .5 * ( g(i) - g(isym) ) / sinp[i] ;
   282         ff0[ixsym] = fp - fm ;
   286         ff0[0] = g(0) - fmoins0 ;
   287         ff0[nm1] = g(0) + fmoins0 ;
   288         ff0[nm1s2] = g(nm1s2) ;