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 ; ++i) {
159 val_ori += sgn*xci[i] ;
162 xci[nr-1] += sgn*val_ori ;
166 som = 2 * sgn * xci[nr-1] ;
168 for (
int i = nr-3 ; i >= 0 ; i-- ) {
170 som += 2 * sgn * xci[i+1] ;
173 for (
int i=0 ; i<nr ; i+=2) {
188 int base_t = base &
MSQ_T ;
189 int base_p = base &
MSQ_P ;
190 base = base_p | base_t |
R_CHEBI ;
198 void _sx_r_chebi(Tbl* tb,
int& base)
202 if (tb->get_etat() == ETATZERO) {
203 int base_t = base &
MSQ_T ;
204 int base_p = base &
MSQ_P ;
205 base = base_p | base_t |
R_CHEBP ;
210 int nr = (tb->dim).dim[0] ;
211 int nt = (tb->dim).dim[1] ;
212 int np = (tb->dim).dim[2] ;
216 double* xo =
new double [tb->get_taille()];
219 for (
int i=0; i<tb->get_taille(); i++) {
228 int borne_phi = np + 1 ;
233 for (
int k=0 ; k< borne_phi ; k++)
239 for (
int j=0 ; j<nt ; j++) {
244 som = 2 * sgn * xci[nr-2] ;
246 for (
int i = nr-3 ; i >= 0 ; i-- ) {
248 som += 2 * sgn * xci[i] ;
251 for (
int i=0 ; i<nr ; i+=2) {
267 int base_t = base &
MSQ_T ;
268 int base_p = base &
MSQ_P ;
269 base = base_p | base_t |
R_CHEBP ;
276 void _sx_r_chebpim_p(Tbl* tb,
int& base)
280 if (tb->get_etat() == ETATZERO) {
281 int base_t = base &
MSQ_T ;
282 int base_p = base &
MSQ_P ;
288 int nr = (tb->dim).dim[0] ;
289 int nt = (tb->dim).dim[1] ;
290 int np = (tb->dim).dim[2] ;
294 double* xo =
new double [tb->get_taille()];
297 for (
int i=0; i<tb->get_taille(); i++) {
313 for (
int k=0 ; k<np+1 ; k += 4) {
315 auxiliaire = (k==np) ? 1 : 2 ;
316 for (
int kmod=0 ; kmod<auxiliaire ; kmod++) {
321 if ((k==0) && (kmod == 1)) {
327 for (
int j=0 ; j<nt ; j++) {
333 som = 2 * sgn * xci[nr-1] ;
335 for (
int i = nr-3 ; i >= 0 ; i-- ) {
337 som += 2 * sgn * xci[i+1] ;
340 for (
int i=0 ; i<nr ; i+=2) {
355 for (
int k=2 ; k<np+1 ; k += 4) {
357 auxiliaire = (k==np) ? 1 : 2 ;
358 for (
int kmod=0 ; kmod<auxiliaire ; kmod++) {
359 for (
int j=0 ; j<nt ; j++) {
365 som = 2 * sgn * xci[nr-2] ;
367 for (
int i = nr-3 ; i >= 0 ; i-- ) {
369 som += 2 * sgn * xci[i] ;
372 for (
int i=0 ; i<nr ; i+=2) {
391 int base_t = base &
MSQ_T ;
392 int base_p = base &
MSQ_P ;
400 void _sx_r_chebpim_i(Tbl* tb,
int& base)
404 if (tb->get_etat() == ETATZERO) {
405 int base_t = base &
MSQ_T ;
406 int base_p = base &
MSQ_P ;
412 int nr = (tb->dim).dim[0] ;
413 int nt = (tb->dim).dim[1] ;
414 int np = (tb->dim).dim[2] ;
418 double* xo =
new double [tb->get_taille()];
421 for (
int i=0; i<tb->get_taille(); i++) {
437 for (
int k=0 ; k<np+1 ; k += 4) {
439 auxiliaire = (k==np) ? 1 : 2 ;
440 for (
int kmod=0 ; kmod<auxiliaire ; kmod++) {
445 if ((k==0) && (kmod == 1)) {
451 for (
int j=0 ; j<nt ; j++) {
457 som = 2 * sgn * xci[nr-2] ;
459 for (
int i = nr-3 ; i >= 0 ; i-- ) {
461 som += 2 * sgn * xci[i] ;
464 for (
int i=0 ; i<nr ; i+=2) {
480 for (
int k=2 ; k<np+1 ; k += 4) {
482 auxiliaire = (k==np) ? 1 : 2 ;
483 for (
int kmod=0 ; kmod<auxiliaire ; kmod++) {
484 for (
int j=0 ; j<nt ; j++) {
491 som = 2 * sgn * xci[nr-1] ;
493 for (i = nr-3 ; i >= 0 ; i-- ) {
495 som += 2 * sgn * xci[i+1] ;
498 for (i=0 ; i<nr ; i+=2) {
516 int base_t = base &
MSQ_T ;
517 int base_p = base &
MSQ_P ;
525 void _sx_r_chebpi_p(Tbl* tb,
int& base)
528 if (tb->get_etat() == ETATZERO) {
529 int base_t = base &
MSQ_T ;
530 int base_p = base &
MSQ_P ;
536 int nr = (tb->dim).dim[0] ;
537 int nt = (tb->dim).dim[1] ;
538 int np = (tb->dim).dim[2] ;
542 double* xo =
new double [tb->get_taille()];
545 for (
int i=0; i<tb->get_taille(); i++) {
554 int borne_phi = np + 1 ;
559 for (
int k=0 ; k< borne_phi ; k++)
565 for (
int j=0 ; j<nt ; j++) {
572 som = 2 * sgn * xci[nr-1] ;
574 for (
int i = nr-3 ; i >= 0 ; i-- ) {
576 som += 2 * sgn * xci[i+1] ;
579 for (
int i=0 ; i<nr ; i+=2) {
587 som = 2 * sgn * xci[nr-2] ;
589 for (
int i = nr-3 ; i >= 0 ; i-- ) {
591 som += 2 * sgn * xci[i] ;
594 for (
int i=0 ; i<nr ; i+=2) {
610 int base_t = base &
MSQ_T ;
611 int base_p = base &
MSQ_P ;
620 void _sx_r_chebpi_i(Tbl* tb,
int& base)
624 if (tb->get_etat() == ETATZERO) {
625 int base_t = base &
MSQ_T ;
626 int base_p = base &
MSQ_P ;
632 int nr = (tb->dim).dim[0] ;
633 int nt = (tb->dim).dim[1] ;
634 int np = (tb->dim).dim[2] ;
638 double* xo =
new double [tb->get_taille()];
641 for (
int i=0; i<tb->get_taille(); i++) {
650 int borne_phi = np + 1 ;
655 for (
int k=0 ; k< borne_phi ; k++)
661 for (
int j=0 ; j<nt ; j++) {
668 som = 2 * sgn * xci[nr-1] ;
670 for (
int i = nr-3 ; i >= 0 ; i-- ) {
672 som += 2 * sgn * xci[i+1] ;
675 for (
int i=0 ; i<nr ; i+=2) {
683 som = 2 * sgn * xci[nr-2] ;
685 for (
int i = nr-3 ; i >= 0 ; i-- ) {
687 som += 2 * sgn * xci[i] ;
690 for (
int i=0 ; i<nr ; i+=2) {
706 int base_t = base &
MSQ_T ;
707 int base_p = base &
MSQ_P ;
715 void _sx_r_legp(Tbl* tb,
int& base)
719 if (tb->get_etat() == ETATZERO) {
720 int base_t = base &
MSQ_T ;
721 int base_p = base &
MSQ_P ;
722 base = base_p | base_t |
R_LEGI ;
727 int nr = (tb->dim).dim[0] ;
728 int nt = (tb->dim).dim[1] ;
729 int np = (tb->dim).dim[2] ;
733 double* xo =
new double [tb->get_taille()];
736 for (
int i=0; i<tb->get_taille(); i++) {
745 int borne_phi = np + 1 ;
750 for (
int k=0 ; k< borne_phi ; k++)
756 for (
int j=0 ; j<nt ; j++) {
761 for (
int i=nr - 2; i>=0; i--) {
763 xco[i] = double(4*i+3)/double(2*i+2)*som ;
764 som *= -double(2*i+1)/double(2*i+2) ;
778 int base_t = base &
MSQ_T ;
779 int base_p = base &
MSQ_P ;
780 base = base_p | base_t |
R_LEGI ;
788 void _sx_r_legi(Tbl* tb,
int& base)
792 if (tb->get_etat() == ETATZERO) {
793 int base_t = base &
MSQ_T ;
794 int base_p = base &
MSQ_P ;
795 base = base_p | base_t |
R_LEGP ;
800 int nr = (tb->dim).dim[0] ;
801 int nt = (tb->dim).dim[1] ;
802 int np = (tb->dim).dim[2] ;
806 double* xo =
new double [tb->get_taille()];
809 for (
int i=0; i<tb->get_taille(); i++) {
818 int borne_phi = np + 1 ;
823 for (
int k=0 ; k< borne_phi ; k++)
829 for (
int j=0 ; j<nt ; j++) {
833 for (
int i = nr-2 ; i >= 0 ; i-- ) {
835 xco[i] = double(4*i+1)/double(2*i+1)*som ;
836 som *= -double(2*i)/double(2*i+1) ;
850 int base_t = base &
MSQ_T ;
851 int base_p = base &
MSQ_P ;
852 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.