87 void _ssint_pas_prevu(Tbl * tb,
int& base) {
88 cout <<
"ssint pas prevu..." << endl ;
89 cout <<
"Tbl: " << tb <<
" base: " << base << endl ;
98 void _ssint_t_cos(Tbl* tb,
int & b)
102 if (tb->get_etat() == ETATZERO) {
103 int base_r = b &
MSQ_R ;
104 int base_p = b &
MSQ_P ;
113 b = base_r | base_p |
T_SIN ;
120 assert(tb->get_etat() == ETATQCQ) ;
123 int nr = (tb->dim).dim[0] ;
124 int nt = (tb->dim).dim[1] ;
125 int np = (tb->dim).dim[2] ;
129 double* somP =
new double [nr] ;
130 double* somN =
new double [nr] ;
133 double* xo =
new double[(tb->dim).taille] ;
136 for (
int i=0; i<(tb->dim).taille; i++) {
156 for (
int i=0 ; i<nr ; i++) {
163 for (
int j=nt-2 ; j >0 ; j--) {
169 for (
int i=0 ; i<nr ; i++ ) {
170 if(l==1) somN[i] += cx * xci[i] ;
171 else somP[i] += cx * xci[i] ;
172 xco[i] = somN[i]*(1-l)+somP[i]*l ;
178 for (
int i=0 ; i<nr ; i++) {
191 for (
int k=2 ; k<np+1 ; k++) {
200 for (
int i=0 ; i<nr ; i++) {
207 for (
int j=nt-2 ; j >= 0 ; j--) {
213 for (
int i=0 ; i<nr ; i++ ) {
214 if(l==1) somN[i] += -2 * xci[i] ;
215 else somP[i] += -2 * xci[i] ;
216 xco[i] = somN[i]*(1-l)+somP[i]*l ;
219 for (
int i=0 ; i<nr ; i++) {
238 int base_r = b &
MSQ_R ;
239 int base_p = b &
MSQ_P ;
248 b = base_r | base_p |
T_SIN ;
257 void _ssint_t_sin(Tbl* tb,
int & b)
262 if (tb->get_etat() == ETATZERO) {
263 int base_r = b &
MSQ_R ;
264 int base_p = b &
MSQ_P ;
273 b = base_r | base_p |
T_COS ;
280 assert(tb->get_etat() == ETATQCQ) ;
283 int nr = (tb->dim).dim[0] ;
284 int nt = (tb->dim).dim[1] ;
285 int np = (tb->dim).dim[2] ;
289 double* somP =
new double [nr] ;
290 double* somN =
new double [nr] ;
293 double* xo =
new double[(tb->dim).taille] ;
296 for (
int i=0; i<(tb->dim).taille; i++) {
313 for (
int i=0 ; i<nr ; i++) {
320 for (
int j=nt-2 ; j >= 0 ; j--) {
326 for (
int i=0 ; i<nr ; i++ ) {
327 if(l==1) somN[i] += 2 * xci[i] ;
328 else somP[i] += 2 * xci[i] ;
329 xco[i] = somN[i]*(1-l)+somP[i]*l ;
332 for (
int i=0 ; i<nr ; i++) {
344 for (
int k=2 ; k<np+1 ; k++) {
352 for (
int i=0 ; i<nr ; i++) {
359 for (
int j=nt-2 ; j >= 0 ; j--) {
365 for (
int i=0 ; i<nr ; i++ ) {
366 if(l==1) somN[i] += 2 * xci[i] ;
367 else somP[i] += 2 * xci[i] ;
368 xco[i] = somN[i]*(1-l)+somP[i]*l ;
373 for (
int i=0 ; i<nr ; i++) {
393 int base_r = b &
MSQ_R ;
394 int base_p = b &
MSQ_P ;
403 b = base_r | base_p |
T_COS ;
411 void _ssint_t_cos_p(Tbl* tb,
int & b)
415 if (tb->get_etat() == ETATZERO) {
416 int base_r = b &
MSQ_R ;
417 int base_p = b &
MSQ_P ;
418 b = base_r | base_p |
T_SIN_I ;
423 assert(tb->get_etat() == ETATQCQ) ;
426 int nr = (tb->dim).dim[0] ;
427 int nt = (tb->dim).dim[1] ;
428 int np = (tb->dim).dim[2] ;
432 double* som =
new double [nr] ;
435 double* xo =
new double[(tb->dim).taille] ;
438 for (
int i=0; i<(tb->dim).taille; i++) {
455 for (
int i=0 ; i<nr ; i++) {
461 for (
int j=nt-2 ; j >= 0 ; j--) {
466 for (
int i=0 ; i<nr ; i++ ) {
481 for (
int k=2 ; k<np+1 ; k++) {
489 for (
int i=0 ; i<nr ; i++) {
495 for (
int j=nt-2 ; j >= 0 ; j--) {
500 for (
int i=0 ; i<nr ; i++ ) {
519 int base_r = b &
MSQ_R ;
520 int base_p = b &
MSQ_P ;
521 b = base_r | base_p |
T_SIN_I ;
528 void _ssint_t_sin_p(Tbl* tb,
int & b)
533 if (tb->get_etat() == ETATZERO) {
534 int base_r = b &
MSQ_R ;
535 int base_p = b &
MSQ_P ;
536 b = base_r | base_p |
T_COS_I ;
541 assert(tb->get_etat() == ETATQCQ) ;
544 int nr = (tb->dim).dim[0] ;
545 int nt = (tb->dim).dim[1] ;
546 int np = (tb->dim).dim[2] ;
550 double* som =
new double [nr] ;
553 double* xo =
new double[(tb->dim).taille] ;
556 for (
int i=0; i<(tb->dim).taille; i++) {
573 for (
int i=0 ; i<nr ; i++) {
579 for (
int i=0 ; i<nr ; i++) xco[i] = 0 ;
583 for (
int j=nt-2 ; j >= 1 ; j--) {
588 for (
int i=0 ; i<nr ; i++ ) {
603 for (
int k=2 ; k<np+1 ; k++) {
611 for (
int i=0 ; i<nr ; i++) {
616 for (
int i=0 ; i<nr ; i++) xco[i] = 0 ;
619 for (
int j=nt-2 ; j >= 1 ; j--) {
624 for (
int i=0 ; i<nr ; i++ ) {
643 int base_r = b &
MSQ_R ;
644 int base_p = b &
MSQ_P ;
645 b = base_r | base_p |
T_COS_I ;
652 void _ssint_t_sin_i(Tbl* tb,
int & b)
657 if (tb->get_etat() == ETATZERO) {
658 int base_r = b &
MSQ_R ;
659 int base_p = b &
MSQ_P ;
660 b = base_r | base_p |
T_COS_P ;
665 assert(tb->get_etat() == ETATQCQ) ;
668 int nr = (tb->dim).dim[0] ;
669 int nt = (tb->dim).dim[1] ;
670 int np = (tb->dim).dim[2] ;
674 double* som =
new double [nr] ;
677 double* xo =
new double[(tb->dim).taille] ;
680 for (
int i=0; i<(tb->dim).taille; i++) {
698 for (
int i=0 ; i<nr ; i++) {
704 for (
int j=nt-2 ; j >= 0 ; j--) {
709 for (
int i=0 ; i<nr ; i++ ) {
715 for (
int i=0 ; i<nr ; i++) {
727 for (
int k=2 ; k<np+1 ; k++) {
735 for (
int i=0 ; i<nr ; i++) {
741 for (
int j=nt-2 ; j >= 0 ; j--) {
746 for (
int i=0 ; i<nr ; i++ ) {
752 for (
int i=0 ; i<nr ; i++) {
769 int base_r = b &
MSQ_R ;
770 int base_p = b &
MSQ_P ;
771 b = base_r | base_p |
T_COS_P ;
777 void _ssint_t_cos_i(Tbl* tb,
int & b)
781 if (tb->get_etat() == ETATZERO) {
782 int base_r = b &
MSQ_R ;
783 int base_p = b &
MSQ_P ;
784 b = base_r | base_p |
T_SIN_P ;
789 assert(tb->get_etat() == ETATQCQ) ;
792 int nr = (tb->dim).dim[0] ;
793 int nt = (tb->dim).dim[1] ;
794 int np = (tb->dim).dim[2] ;
798 double* som =
new double [nr] ;
801 double* xo =
new double[(tb->dim).taille] ;
804 for (
int i=0; i<(tb->dim).taille; i++) {
821 for (
int i=0 ; i<nr ; i++) {
827 for (
int j=nt-1 ; j >= 0 ; j--) {
831 for (
int i=0 ; i<nr ; i++ ) {
847 for (
int k=2 ; k<np+1 ; k++) {
855 for (
int i=0 ; i<nr ; i++) {
861 for (
int j=nt-1 ; j >= 0 ; j--) {
865 for (
int i=0 ; i<nr ; i++ ) {
885 int base_r = b &
MSQ_R ;
886 int base_p = b &
MSQ_P ;
887 b = base_r | base_p |
T_SIN_P ;
893 void _ssint_t_cossin_cp(Tbl* tb,
int & b)
897 if (tb->get_etat() == ETATZERO) {
898 int base_r = b &
MSQ_R ;
899 int base_p = b &
MSQ_P ;
905 assert(tb->get_etat() == ETATQCQ) ;
908 int nr = (tb->dim).dim[0] ;
909 int nt = (tb->dim).dim[1] ;
910 int np = (tb->dim).dim[2] ;
914 double* som =
new double [nr] ;
917 double* xo =
new double[(tb->dim).taille] ;
920 for (
int i=0; i<(tb->dim).taille; i++) {
941 for (
int i=0 ; i<nr ; i++) {
947 for (
int j=nt-2 ; j >= 0 ; j--) {
952 for (
int i=0 ; i<nr ; i++ ) {
953 som[i] += cx * xci[i] ;
969 for (
int k=2 ; k<np+1 ; k++) {
985 for (
int i=0 ; i<nr ; i++) {
991 for (
int j=nt-2 ; j >= 0 ; j--) {
996 for (
int i=0 ; i<nr ; i++ ) {
997 som[i] += cx * xci[i] ;
1003 for (
int i=0 ; i<nr ; i++) {
1023 int base_r = b &
MSQ_R ;
1024 int base_p = b &
MSQ_P ;
1031 void _ssint_t_cossin_ci(Tbl* tb,
int & b)
1034 if (tb->get_etat() == ETATZERO) {
1035 int base_r = b &
MSQ_R ;
1036 int base_p = b &
MSQ_P ;
1042 assert(tb->get_etat() == ETATQCQ) ;
1045 int nr = (tb->dim).dim[0] ;
1046 int nt = (tb->dim).dim[1] ;
1047 int np = (tb->dim).dim[2] ;
1051 double* som =
new double [nr] ;
1054 double* xo =
new double[(tb->dim).taille] ;
1057 for (
int i=0; i<(tb->dim).taille; i++) {
1062 double* xi = tb->t ;
1073 xco += nr * (nt-1) ;
1076 for (
int i=0 ; i<nr ; i++) {
1082 for (
int j=nt-1 ; j >= 0 ; j--) {
1086 for (
int i=0 ; i<nr ; i++ ) {
1087 som[i] -= 2*xci[i] ;
1102 for (
int k=2 ; k<np+1 ; k++) {
1110 xco += nr * (nt-1) ;
1113 for (
int i=0 ; i<nr ; i++) {
1119 for (
int j=nt-1 ; j >= 0 ; j--) {
1123 for (
int i=0 ; i<nr ; i++ ) {
1124 som[i] -= 2*xci[i] ;
1138 xci += nr * (nt-1) ;
1139 xco += nr * (nt-1) ;
1142 for (
int i=0 ; i<nr ; i++) {
1147 for (
int i=0 ; i<nr ; i++) xco[i] = 0 ;
1150 for (
int j=nt-2 ; j >= 1 ; j--) {
1155 for (
int i=0 ; i<nr ; i++ ) {
1156 som[i] += 2*xci[i] ;
1176 int base_r = b &
MSQ_R ;
1177 int base_p = b &
MSQ_P ;
1184 void _ssint_t_cossin_si(Tbl* tb,
int & b)
1187 if (tb->get_etat() == ETATZERO) {
1188 int base_r = b &
MSQ_R ;
1189 int base_p = b &
MSQ_P ;
1195 assert(tb->get_etat() == ETATQCQ) ;
1198 int nr = (tb->dim).dim[0] ;
1199 int nt = (tb->dim).dim[1] ;
1200 int np = (tb->dim).dim[2] ;
1204 double* som =
new double [nr] ;
1207 double* xo =
new double[(tb->dim).taille] ;
1210 for (
int i=0; i<(tb->dim).taille; i++) {
1215 double* xi = tb->t ;
1227 xci += nr * (nt-1) ;
1229 xco += nr * (nt-1) ;
1233 for (
int i=0 ; i<nr ; i++) {
1239 for (
int j=nt-2 ; j >= 0 ; j--) {
1244 for (
int i=0 ; i<nr ; i++ ) {
1245 som[i] += cx * xci[i] ;
1250 for (
int i=0 ; i<nr ; i++) {
1262 for (
int k=2 ; k<np+1 ; k++) {
1272 xci += nr * (nt-1) ;
1275 xco += nr * (nt-1) ;
1278 for (
int i=0 ; i<nr ; i++) {
1284 for (
int j=nt-2 ; j >= 0 ; j--) {
1289 for (
int i=0 ; i<nr ; i++ ) {
1290 som[i] += cx * xci[i] ;
1296 for (
int i=0 ; i<nr ; i++) {
1317 int base_r = b &
MSQ_R ;
1318 int base_p = b &
MSQ_P ;
1326 void _ssint_t_cossin_sp(Tbl* tb,
int & b)
1329 if (tb->get_etat() == ETATZERO) {
1330 int base_r = b &
MSQ_R ;
1331 int base_p = b &
MSQ_P ;
1337 assert(tb->get_etat() == ETATQCQ) ;
1340 int nr = (tb->dim).dim[0] ;
1341 int nt = (tb->dim).dim[1] ;
1342 int np = (tb->dim).dim[2] ;
1346 double* som =
new double [nr] ;
1349 double* xo =
new double[(tb->dim).taille] ;
1352 for (
int i=0; i<(tb->dim).taille; i++) {
1357 double* xi = tb->t ;
1369 xci += nr * (nt-1) ;
1371 xco += nr * (nt-1) ;
1375 for (
int i=0 ; i<nr ; i++) {
1380 for (
int i=0 ; i<nr ; i++) xco[i] = 0 ;
1383 for (
int j=nt-2 ; j >= 1 ; j--) {
1388 for (
int i=0 ; i<nr ; i++ ) {
1389 som[i] += cx * xci[i] ;
1401 for (
int k=2 ; k<np+1 ; k++) {
1409 xco += nr * (nt-1) ;
1412 for (
int i=0 ; i<nr ; i++) {
1418 for (
int j=nt-1 ; j >= 0 ; j--) {
1422 for (
int i=0 ; i<nr ; i++ ) {
1423 som[i] -= 2*xci[i] ;
1437 xci += nr * (nt-1) ;
1438 xco += nr * (nt-1) ;
1441 for (
int i=0 ; i<nr ; i++) {
1446 for (
int i=0 ; i<nr ; i++) xco[i] = 0 ;
1449 for (
int j=nt-2 ; j >= 1 ; j--) {
1454 for (
int i=0 ; i<nr ; i++ ) {
1455 som[i] += 2*xci[i] ;
1475 int base_r = b &
MSQ_R ;
1476 int base_p = b &
MSQ_P ;
1485 void _ssint_t_cossin_c(Tbl* tb,
int & b)
1490 if (tb->get_etat() == ETATZERO) {
1491 int base_r = b &
MSQ_R ;
1492 int base_p = b &
MSQ_P ;
1508 assert(tb->get_etat() == ETATQCQ) ;
1511 int nr = (tb->dim).dim[0] ;
1512 int nt = (tb->dim).dim[1] ;
1513 int np = (tb->dim).dim[2] ;
1517 double* somP =
new double [nr] ;
1518 double* somN =
new double [nr] ;
1521 double* xo =
new double[(tb->dim).taille] ;
1524 for (
int i=0; i<(tb->dim).taille; i++) {
1529 double* xi = tb->t ;
1540 xci += nr * (nt-1) ;
1542 xco += nr * (nt-1) ;
1545 for (
int i=0 ; i<nr ; i++) {
1552 for (
int j=nt-2 ; j >0 ; j--) {
1558 for (
int i=0 ; i<nr ; i++ ) {
1559 if(l==1) somN[i] += cx * xci[i] ;
1560 else somP[i] += cx * xci[i] ;
1561 xco[i] = somN[i]*(1-l)+somP[i]*l ;
1567 for (
int i=0 ; i<nr ; i++) {
1580 for (
int k=2 ; k<np+1 ; k++) {
1593 xco += nr * (nt-1) ;
1594 xci += nr * (nt-1) ;
1597 for (
int i=0 ; i<nr ; i++) {
1604 for (
int j=nt-2 ; j >= 0 ; j--) {
1610 for (
int i=0 ; i<nr ; i++ ) {
1611 if(l==1) somN[i] += cx * xci[i] ;
1612 else somP[i] += cx * xci[i] ;
1613 xco[i] = somN[i]*(1-l)+somP[i]*l ;
1618 for (
int i=0 ; i<nr ; i++) {
1638 int base_r = b &
MSQ_R ;
1639 int base_p = b &
MSQ_P ;
1657 void _ssint_t_cossin_s(Tbl* tb,
int & b)
1662 if (tb->get_etat() == ETATZERO) {
1663 int base_r = b &
MSQ_R ;
1664 int base_p = b &
MSQ_P ;
1680 assert(tb->get_etat() == ETATQCQ) ;
1683 int nr = (tb->dim).dim[0] ;
1684 int nt = (tb->dim).dim[1] ;
1685 int np = (tb->dim).dim[2] ;
1689 double* somP =
new double [nr] ;
1690 double* somN =
new double [nr] ;
1693 double* xo =
new double[(tb->dim).taille] ;
1696 for (
int i=0; i<(tb->dim).taille; i++) {
1701 double* xi = tb->t ;
1712 xci += nr * (nt-1) ;
1714 xco += nr * (nt-1) ;
1717 for (
int i=0 ; i<nr ; i++) {
1724 for (
int j=nt-2 ; j >= 0 ; j--) {
1730 for (
int i=0 ; i<nr ; i++ ) {
1731 if(l==1) somN[i] += cx * xci[i] ;
1732 else somP[i] += cx * xci[i] ;
1733 xco[i] = somN[i]*(1-l)+somP[i]*l ;
1736 for (
int i=0 ; i<nr ; i++) {
1748 for (
int k=2 ; k<np+1 ; k++) {
1754 xci += nr * (nt-1) ;
1758 xci += nr * (nt-1) ;
1761 xco += nr * (nt-1) ;
1764 for (
int i=0 ; i<nr ; i++) {
1771 for (
int j=nt-2 ; j >= 0 ; j--) {
1777 for (
int i=0 ; i<nr ; i++ ) {
1778 if(l==1) somN[i] += cx * xci[i] ;
1779 else somP[i] += cx * xci[i] ;
1780 xco[i] = somN[i]*(1-l)+somP[i]*l ;
1785 for (
int i=0 ; i<nr ; i++) {
1805 int base_r = b &
MSQ_R ;
1806 int base_p = b &
MSQ_P ;
#define R_CHEBPI_I
Cheb. pair-impair suivant l impair pour l=0.
#define MSQ_P
Extraction de l'info sur Phi.
#define T_COS
dev. cos seulement
#define T_COSSIN_SP
sin pair-cos impair alternes, sin pour m=0
#define T_SIN
dev. sin seulement
#define T_COS_I
dev. cos seulement, harmoniques impaires
#define T_COS_P
dev. cos seulement, harmoniques paires
#define T_COSSIN_C
dev. cos-sin alternes, cos pour m=0
#define MSQ_R
Extraction de l'info sur R.
#define T_SIN_P
dev. sin seulement, harmoniques paires
#define T_COSSIN_SI
sin impair-cos pair alternes, sin pour m=0
#define R_CHEBPI_P
Cheb. pair-impair suivant l pair pour l=0.
#define T_COSSIN_CI
cos impair-sin pair alternes, cos pour m=0
#define T_COSSIN_CP
cos pair-sin impair alternes, cos pour m=0
#define T_SIN_I
dev. sin seulement, harmoniques impaires
#define T_COSSIN_S
dev. cos-sin alternes, sin pour m=0