92 void _sx_pas_prevu(Tbl * tb,
int& base) {
93 cout <<
"sx pas prevu..." << endl ;
94 cout <<
"Tbl: " << tb <<
" base: " << base << endl ;
103 void _sx_identite(Tbl* ,
int& ) {
111 void _sx_r_chebp(Tbl* tb,
int& base)
114 if (tb->get_etat() == ETATZERO) {
115 int base_t = base &
MSQ_T ;
116 int base_p = base &
MSQ_P ;
117 base = base_p | base_t |
R_CHEBI ;
122 int nr = (tb->dim).dim[0] ;
123 int nt = (tb->dim).dim[1] ;
124 int np = (tb->dim).dim[2] ;
128 double* xo =
new double [tb->get_taille()];
131 for (
int i=0; i<tb->get_taille(); i++) {
140 int borne_phi = np + 1 ;
145 for (
int k=0 ; k< borne_phi ; k++)
151 for (
int j=0 ; j<nt ; j++) {
158 for (
int i=0 ; i<nr-1 ; i++) {
159 val_ori += sgn*xci[i] ;
163 xci[nr-1] = sgn*val_ori ;
167 som = 2 * sgn * xci[nr-1] ;
169 for (
int i = nr-3 ; i >= 0 ; i-- ) {
171 som += 2 * sgn * xci[i+1] ;
174 for (
int i=0 ; i<nr ; i+=2) {
189 int base_t = base &
MSQ_T ;
190 int base_p = base &
MSQ_P ;
191 base = base_p | base_t |
R_CHEBI ;
199 void _sx_r_chebi(Tbl* tb,
int& base)
203 if (tb->get_etat() == ETATZERO) {
204 int base_t = base &
MSQ_T ;
205 int base_p = base &
MSQ_P ;
206 base = base_p | base_t |
R_CHEBP ;
211 int nr = (tb->dim).dim[0] ;
212 int nt = (tb->dim).dim[1] ;
213 int np = (tb->dim).dim[2] ;
217 double* xo =
new double [tb->get_taille()];
220 for (
int i=0; i<tb->get_taille(); i++) {
229 int borne_phi = np + 1 ;
234 for (
int k=0 ; k< borne_phi ; k++)
240 for (
int j=0 ; j<nt ; j++) {
245 som = 2 * sgn * xci[nr-2] ;
247 for (
int i = nr-3 ; i >= 0 ; i-- ) {
249 som += 2 * sgn * xci[i] ;
252 for (
int i=0 ; i<nr ; i+=2) {
268 int base_t = base &
MSQ_T ;
269 int base_p = base &
MSQ_P ;
270 base = base_p | base_t |
R_CHEBP ;
277 void _sx_r_chebpim_p(Tbl* tb,
int& base)
281 if (tb->get_etat() == ETATZERO) {
282 int base_t = base &
MSQ_T ;
283 int base_p = base &
MSQ_P ;
289 int nr = (tb->dim).dim[0] ;
290 int nt = (tb->dim).dim[1] ;
291 int np = (tb->dim).dim[2] ;
295 double* xo =
new double [tb->get_taille()];
298 for (
int i=0; i<tb->get_taille(); i++) {
314 for (
int k=0 ; k<np+1 ; k += 4) {
316 auxiliaire = (k==np) ? 1 : 2 ;
317 for (
int kmod=0 ; kmod<auxiliaire ; kmod++) {
322 if ((k==0) && (kmod == 1)) {
328 for (
int j=0 ; j<nt ; j++) {
334 som = 2 * sgn * xci[nr-1] ;
336 for (
int i = nr-3 ; i >= 0 ; i-- ) {
338 som += 2 * sgn * xci[i+1] ;
341 for (
int i=0 ; i<nr ; i+=2) {
356 for (
int k=2 ; k<np+1 ; k += 4) {
358 auxiliaire = (k==np) ? 1 : 2 ;
359 for (
int kmod=0 ; kmod<auxiliaire ; kmod++) {
360 for (
int j=0 ; j<nt ; j++) {
366 som = 2 * sgn * xci[nr-2] ;
368 for (
int i = nr-3 ; i >= 0 ; i-- ) {
370 som += 2 * sgn * xci[i] ;
373 for (
int i=0 ; i<nr ; i+=2) {
392 int base_t = base &
MSQ_T ;
393 int base_p = base &
MSQ_P ;
401 void _sx_r_chebpim_i(Tbl* tb,
int& base)
405 if (tb->get_etat() == ETATZERO) {
406 int base_t = base &
MSQ_T ;
407 int base_p = base &
MSQ_P ;
413 int nr = (tb->dim).dim[0] ;
414 int nt = (tb->dim).dim[1] ;
415 int np = (tb->dim).dim[2] ;
419 double* xo =
new double [tb->get_taille()];
422 for (
int i=0; i<tb->get_taille(); i++) {
438 for (
int k=0 ; k<np+1 ; k += 4) {
440 auxiliaire = (k==np) ? 1 : 2 ;
441 for (
int kmod=0 ; kmod<auxiliaire ; kmod++) {
446 if ((k==0) && (kmod == 1)) {
452 for (
int j=0 ; j<nt ; j++) {
458 som = 2 * sgn * xci[nr-2] ;
460 for (
int i = nr-3 ; i >= 0 ; i-- ) {
462 som += 2 * sgn * xci[i] ;
465 for (
int i=0 ; i<nr ; i+=2) {
481 for (
int k=2 ; k<np+1 ; k += 4) {
483 auxiliaire = (k==np) ? 1 : 2 ;
484 for (
int kmod=0 ; kmod<auxiliaire ; kmod++) {
485 for (
int j=0 ; j<nt ; j++) {
492 som = 2 * sgn * xci[nr-1] ;
494 for (i = nr-3 ; i >= 0 ; i-- ) {
496 som += 2 * sgn * xci[i+1] ;
499 for (i=0 ; i<nr ; i+=2) {
517 int base_t = base &
MSQ_T ;
518 int base_p = base &
MSQ_P ;
526 void _sx_r_chebpi_p(Tbl* tb,
int& base)
529 if (tb->get_etat() == ETATZERO) {
530 int base_t = base &
MSQ_T ;
531 int base_p = base &
MSQ_P ;
537 int nr = (tb->dim).dim[0] ;
538 int nt = (tb->dim).dim[1] ;
539 int np = (tb->dim).dim[2] ;
543 double* xo =
new double [tb->get_taille()];
546 for (
int i=0; i<tb->get_taille(); i++) {
555 int borne_phi = np + 1 ;
560 for (
int k=0 ; k< borne_phi ; k++)
566 for (
int j=0 ; j<nt ; j++) {
573 som = 2 * sgn * xci[nr-1] ;
575 for (
int i = nr-3 ; i >= 0 ; i-- ) {
577 som += 2 * sgn * xci[i+1] ;
580 for (
int i=0 ; i<nr ; i+=2) {
588 som = 2 * sgn * xci[nr-2] ;
590 for (
int i = nr-3 ; i >= 0 ; i-- ) {
592 som += 2 * sgn * xci[i] ;
595 for (
int i=0 ; i<nr ; i+=2) {
611 int base_t = base &
MSQ_T ;
612 int base_p = base &
MSQ_P ;
621 void _sx_r_chebpi_i(Tbl* tb,
int& base)
625 if (tb->get_etat() == ETATZERO) {
626 int base_t = base &
MSQ_T ;
627 int base_p = base &
MSQ_P ;
633 int nr = (tb->dim).dim[0] ;
634 int nt = (tb->dim).dim[1] ;
635 int np = (tb->dim).dim[2] ;
639 double* xo =
new double [tb->get_taille()];
642 for (
int i=0; i<tb->get_taille(); i++) {
651 int borne_phi = np + 1 ;
656 for (
int k=0 ; k< borne_phi ; k++)
662 for (
int j=0 ; j<nt ; j++) {
669 som = 2 * sgn * xci[nr-1] ;
671 for (
int i = nr-3 ; i >= 0 ; i-- ) {
673 som += 2 * sgn * xci[i+1] ;
676 for (
int i=0 ; i<nr ; i+=2) {
684 som = 2 * sgn * xci[nr-2] ;
686 for (
int i = nr-3 ; i >= 0 ; i-- ) {
688 som += 2 * sgn * xci[i] ;
691 for (
int i=0 ; i<nr ; i+=2) {
707 int base_t = base &
MSQ_T ;
708 int base_p = base &
MSQ_P ;
716 void _sx_r_legp(Tbl* tb,
int& base)
720 if (tb->get_etat() == ETATZERO) {
721 int base_t = base &
MSQ_T ;
722 int base_p = base &
MSQ_P ;
723 base = base_p | base_t |
R_LEGI ;
728 int nr = (tb->dim).dim[0] ;
729 int nt = (tb->dim).dim[1] ;
730 int np = (tb->dim).dim[2] ;
734 double* xo =
new double [tb->get_taille()];
737 for (
int i=0; i<tb->get_taille(); i++) {
746 int borne_phi = np + 1 ;
751 for (
int k=0 ; k< borne_phi ; k++)
757 for (
int j=0 ; j<nt ; j++) {
762 for (
int i=nr - 2; i>=0; i--) {
764 xco[i] = double(4*i+3)/double(2*i+2)*som ;
765 som *= -double(2*i+1)/double(2*i+2) ;
779 int base_t = base &
MSQ_T ;
780 int base_p = base &
MSQ_P ;
781 base = base_p | base_t |
R_LEGI ;
789 void _sx_r_legi(Tbl* tb,
int& base)
793 if (tb->get_etat() == ETATZERO) {
794 int base_t = base &
MSQ_T ;
795 int base_p = base &
MSQ_P ;
796 base = base_p | base_t |
R_LEGP ;
801 int nr = (tb->dim).dim[0] ;
802 int nt = (tb->dim).dim[1] ;
803 int np = (tb->dim).dim[2] ;
807 double* xo =
new double [tb->get_taille()];
810 for (
int i=0; i<tb->get_taille(); i++) {
819 int borne_phi = np + 1 ;
824 for (
int k=0 ; k< borne_phi ; k++)
830 for (
int j=0 ; j<nt ; j++) {
834 for (
int i = nr-2 ; i >= 0 ; i-- ) {
836 xco[i] = double(4*i+1)/double(2*i+1)*som ;
837 som *= -double(2*i)/double(2*i+1) ;
851 int base_t = base &
MSQ_T ;
852 int base_p = base &
MSQ_P ;
853 base = base_p | base_t |
R_LEGP ;
#define R_CHEBPI_I
Cheb. pair-impair suivant l impair pour l=0.
#define MSQ_P
Extraction de l'info sur Phi.
#define R_LEGP
base de Legendre paire (rare) seulement
#define R_LEGI
base de Legendre impaire (rare) seulement
#define R_CHEBI
base de Cheb. impaire (rare) seulement
#define R_CHEBP
base de Cheb. paire (rare) seulement
#define MSQ_T
Extraction de l'info sur Theta.
#define R_CHEBPIM_I
Cheb. pair-impair suivant m, impair pour m=0.
#define R_CHEBPIM_P
Cheb. pair-impair suivant m, pair pour m=0.
#define R_CHEBPI_P
Cheb. pair-impair suivant l pair pour l=0.