90 void _ssint_pas_prevu(Tbl * tb,
int& base) {
91 cout <<
"ssint pas prevu..." << endl ;
92 cout <<
"Tbl: " << tb <<
" base: " << base << endl ;
101 void _ssint_t_cos(Tbl* tb,
int & b)
105 if (tb->get_etat() == ETATZERO) {
106 int base_r = b &
MSQ_R ;
107 int base_p = b &
MSQ_P ;
116 b = base_r | base_p |
T_SIN ;
123 assert(tb->get_etat() == ETATQCQ) ;
126 int nr = (tb->dim).dim[0] ;
127 int nt = (tb->dim).dim[1] ;
128 int np = (tb->dim).dim[2] ;
132 double* somP =
new double [nr] ;
133 double* somN =
new double [nr] ;
136 double* xo =
new double[(tb->dim).taille] ;
139 for (
int i=0; i<(tb->dim).taille; i++) {
159 for (
int i=0 ; i<nr ; i++) {
166 for (
int j=nt-2 ; j >0 ; j--) {
172 for (
int i=0 ; i<nr ; i++ ) {
173 if(l==1) somN[i] += cx * xci[i] ;
174 else somP[i] += cx * xci[i] ;
175 xco[i] = somN[i]*(1-l)+somP[i]*l ;
181 for (
int i=0 ; i<nr ; i++) {
194 for (
int k=2 ; k<np+1 ; k++) {
203 for (
int i=0 ; i<nr ; i++) {
210 for (
int j=nt-2 ; j >= 0 ; j--) {
216 for (
int i=0 ; i<nr ; i++ ) {
217 if(l==1) somN[i] += -2 * xci[i] ;
218 else somP[i] += -2 * xci[i] ;
219 xco[i] = somN[i]*(1-l)+somP[i]*l ;
222 for (
int i=0 ; i<nr ; i++) {
241 int base_r = b &
MSQ_R ;
242 int base_p = b &
MSQ_P ;
251 b = base_r | base_p |
T_SIN ;
260 void _ssint_t_sin(Tbl* tb,
int & b)
265 if (tb->get_etat() == ETATZERO) {
266 int base_r = b &
MSQ_R ;
267 int base_p = b &
MSQ_P ;
276 b = base_r | base_p |
T_COS ;
283 assert(tb->get_etat() == ETATQCQ) ;
286 int nr = (tb->dim).dim[0] ;
287 int nt = (tb->dim).dim[1] ;
288 int np = (tb->dim).dim[2] ;
292 double* somP =
new double [nr] ;
293 double* somN =
new double [nr] ;
296 double* xo =
new double[(tb->dim).taille] ;
299 for (
int i=0; i<(tb->dim).taille; i++) {
316 for (
int i=0 ; i<nr ; i++) {
323 for (
int j=nt-2 ; j >= 0 ; j--) {
329 for (
int i=0 ; i<nr ; i++ ) {
330 if(l==1) somN[i] += 2 * xci[i] ;
331 else somP[i] += 2 * xci[i] ;
332 xco[i] = somN[i]*(1-l)+somP[i]*l ;
335 for (
int i=0 ; i<nr ; i++) {
347 for (
int k=2 ; k<np+1 ; k++) {
355 for (
int i=0 ; i<nr ; i++) {
362 for (
int j=nt-2 ; j >= 0 ; j--) {
368 for (
int i=0 ; i<nr ; i++ ) {
369 if(l==1) somN[i] += 2 * xci[i] ;
370 else somP[i] += 2 * xci[i] ;
371 xco[i] = somN[i]*(1-l)+somP[i]*l ;
376 for (
int i=0 ; i<nr ; i++) {
396 int base_r = b &
MSQ_R ;
397 int base_p = b &
MSQ_P ;
406 b = base_r | base_p |
T_COS ;
414 void _ssint_t_cos_p(Tbl* tb,
int & b)
418 if (tb->get_etat() == ETATZERO) {
419 int base_r = b &
MSQ_R ;
420 int base_p = b &
MSQ_P ;
421 b = base_r | base_p |
T_SIN_I ;
426 assert(tb->get_etat() == ETATQCQ) ;
429 int nr = (tb->dim).dim[0] ;
430 int nt = (tb->dim).dim[1] ;
431 int np = (tb->dim).dim[2] ;
448 double* som =
new double [nr] ;
451 double* xo =
new double[(tb->dim).taille] ;
454 for (
int i=0; i<(tb->dim).taille; i++) {
471 for (
int i=0 ; i<nr ; i++) {
477 for (
int j=nt-2 ; j >= 0 ; j--) {
482 for (
int i=0 ; i<nr ; i++ ) {
497 for (
int k=2 ; k<np+1 ; k++) {
505 for (
int i=0 ; i<nr ; i++) {
511 for (
int j=nt-2 ; j >= 0 ; j--) {
516 for (
int i=0 ; i<nr ; i++ ) {
535 int base_r = b &
MSQ_R ;
536 int base_p = b &
MSQ_P ;
537 b = base_r | base_p |
T_SIN_I ;
544 void _ssint_t_sin_p(Tbl* tb,
int & b)
549 if (tb->get_etat() == ETATZERO) {
550 int base_r = b &
MSQ_R ;
551 int base_p = b &
MSQ_P ;
552 b = base_r | base_p |
T_COS_I ;
557 assert(tb->get_etat() == ETATQCQ) ;
560 int nr = (tb->dim).dim[0] ;
561 int nt = (tb->dim).dim[1] ;
562 int np = (tb->dim).dim[2] ;
566 double* som =
new double [nr] ;
569 double* xo =
new double[(tb->dim).taille] ;
572 for (
int i=0; i<(tb->dim).taille; i++) {
589 for (
int i=0 ; i<nr ; i++) {
595 for (
int i=0 ; i<nr ; i++) xco[i] = 0 ;
599 for (
int j=nt-2 ; j >= 1 ; j--) {
604 for (
int i=0 ; i<nr ; i++ ) {
619 for (
int k=2 ; k<np+1 ; k++) {
627 for (
int i=0 ; i<nr ; i++) {
632 for (
int i=0 ; i<nr ; i++) xco[i] = 0 ;
635 for (
int j=nt-2 ; j >= 1 ; j--) {
640 for (
int i=0 ; i<nr ; i++ ) {
659 int base_r = b &
MSQ_R ;
660 int base_p = b &
MSQ_P ;
661 b = base_r | base_p |
T_COS_I ;
668 void _ssint_t_sin_i(Tbl* tb,
int & b)
673 if (tb->get_etat() == ETATZERO) {
674 int base_r = b &
MSQ_R ;
675 int base_p = b &
MSQ_P ;
676 b = base_r | base_p |
T_COS_P ;
681 assert(tb->get_etat() == ETATQCQ) ;
684 int nr = (tb->dim).dim[0] ;
685 int nt = (tb->dim).dim[1] ;
686 int np = (tb->dim).dim[2] ;
690 double* som =
new double [nr] ;
693 double* xo =
new double[(tb->dim).taille] ;
696 for (
int i=0; i<(tb->dim).taille; i++) {
714 for (
int i=0 ; i<nr ; i++) {
720 for (
int j=nt-2 ; j >= 0 ; j--) {
725 for (
int i=0 ; i<nr ; i++ ) {
731 for (
int i=0 ; i<nr ; i++) {
743 for (
int k=2 ; k<np+1 ; k++) {
751 for (
int i=0 ; i<nr ; i++) {
757 for (
int j=nt-2 ; j >= 0 ; j--) {
762 for (
int i=0 ; i<nr ; i++ ) {
768 for (
int i=0 ; i<nr ; i++) {
785 int base_r = b &
MSQ_R ;
786 int base_p = b &
MSQ_P ;
787 b = base_r | base_p |
T_COS_P ;
793 void _ssint_t_cos_i(Tbl* tb,
int & b)
797 if (tb->get_etat() == ETATZERO) {
798 int base_r = b &
MSQ_R ;
799 int base_p = b &
MSQ_P ;
800 b = base_r | base_p |
T_SIN_P ;
805 assert(tb->get_etat() == ETATQCQ) ;
808 int nr = (tb->dim).dim[0] ;
809 int nt = (tb->dim).dim[1] ;
810 int np = (tb->dim).dim[2] ;
814 double* som =
new double [nr] ;
817 double* xo =
new double[(tb->dim).taille] ;
820 for (
int i=0; i<(tb->dim).taille; i++) {
837 for (
int i=0 ; i<nr ; i++) {
843 for (
int j=nt-1 ; j >= 0 ; j--) {
847 for (
int i=0 ; i<nr ; i++ ) {
863 for (
int k=2 ; k<np+1 ; k++) {
871 for (
int i=0 ; i<nr ; i++) {
877 for (
int j=nt-1 ; j >= 0 ; j--) {
881 for (
int i=0 ; i<nr ; i++ ) {
901 int base_r = b &
MSQ_R ;
902 int base_p = b &
MSQ_P ;
903 b = base_r | base_p |
T_SIN_P ;
909 void _ssint_t_cossin_cp(Tbl* tb,
int & b)
913 if (tb->get_etat() == ETATZERO) {
914 int base_r = b &
MSQ_R ;
915 int base_p = b &
MSQ_P ;
921 assert(tb->get_etat() == ETATQCQ) ;
924 int nr = (tb->dim).dim[0] ;
925 int nt = (tb->dim).dim[1] ;
926 int np = (tb->dim).dim[2] ;
930 double* som =
new double [nr] ;
933 double* xo =
new double[(tb->dim).taille] ;
936 for (
int i=0; i<(tb->dim).taille; i++) {
957 for (
int i=0 ; i<nr ; i++) {
963 for (
int j=nt-2 ; j >= 0 ; j--) {
968 for (
int i=0 ; i<nr ; i++ ) {
969 som[i] += cx * xci[i] ;
985 for (
int k=2 ; k<np+1 ; k++) {
1001 for (
int i=0 ; i<nr ; i++) {
1007 for (
int j=nt-2 ; j >= 0 ; j--) {
1012 for (
int i=0 ; i<nr ; i++ ) {
1013 som[i] += cx * xci[i] ;
1019 for (
int i=0 ; i<nr ; i++) {
1039 int base_r = b &
MSQ_R ;
1040 int base_p = b &
MSQ_P ;
1047 void _ssint_t_cossin_ci(Tbl* tb,
int & b)
1050 if (tb->get_etat() == ETATZERO) {
1051 int base_r = b &
MSQ_R ;
1052 int base_p = b &
MSQ_P ;
1058 assert(tb->get_etat() == ETATQCQ) ;
1061 int nr = (tb->dim).dim[0] ;
1062 int nt = (tb->dim).dim[1] ;
1063 int np = (tb->dim).dim[2] ;
1067 double* som =
new double [nr] ;
1070 double* xo =
new double[(tb->dim).taille] ;
1073 for (
int i=0; i<(tb->dim).taille; i++) {
1078 double* xi = tb->t ;
1089 xco += nr * (nt-1) ;
1092 for (
int i=0 ; i<nr ; i++) {
1098 for (
int j=nt-1 ; j >= 0 ; j--) {
1102 for (
int i=0 ; i<nr ; i++ ) {
1103 som[i] -= 2*xci[i] ;
1118 for (
int k=2 ; k<np+1 ; k++) {
1126 xco += nr * (nt-1) ;
1129 for (
int i=0 ; i<nr ; i++) {
1135 for (
int j=nt-1 ; j >= 0 ; j--) {
1139 for (
int i=0 ; i<nr ; i++ ) {
1140 som[i] -= 2*xci[i] ;
1154 xci += nr * (nt-1) ;
1155 xco += nr * (nt-1) ;
1158 for (
int i=0 ; i<nr ; i++) {
1163 for (
int i=0 ; i<nr ; i++) xco[i] = 0 ;
1166 for (
int j=nt-2 ; j >= 1 ; j--) {
1171 for (
int i=0 ; i<nr ; i++ ) {
1172 som[i] += 2*xci[i] ;
1192 int base_r = b &
MSQ_R ;
1193 int base_p = b &
MSQ_P ;
1200 void _ssint_t_cossin_si(Tbl* tb,
int & b)
1203 if (tb->get_etat() == ETATZERO) {
1204 int base_r = b &
MSQ_R ;
1205 int base_p = b &
MSQ_P ;
1211 assert(tb->get_etat() == ETATQCQ) ;
1214 int nr = (tb->dim).dim[0] ;
1215 int nt = (tb->dim).dim[1] ;
1216 int np = (tb->dim).dim[2] ;
1220 double* som =
new double [nr] ;
1223 double* xo =
new double[(tb->dim).taille] ;
1226 for (
int i=0; i<(tb->dim).taille; i++) {
1231 double* xi = tb->t ;
1243 xci += nr * (nt-1) ;
1245 xco += nr * (nt-1) ;
1249 for (
int i=0 ; i<nr ; i++) {
1255 for (
int j=nt-2 ; j >= 0 ; j--) {
1260 for (
int i=0 ; i<nr ; i++ ) {
1261 som[i] += cx * xci[i] ;
1266 for (
int i=0 ; i<nr ; i++) {
1278 for (
int k=2 ; k<np+1 ; k++) {
1288 xci += nr * (nt-1) ;
1291 xco += nr * (nt-1) ;
1294 for (
int i=0 ; i<nr ; i++) {
1300 for (
int j=nt-2 ; j >= 0 ; j--) {
1305 for (
int i=0 ; i<nr ; i++ ) {
1306 som[i] += cx * xci[i] ;
1312 for (
int i=0 ; i<nr ; i++) {
1333 int base_r = b &
MSQ_R ;
1334 int base_p = b &
MSQ_P ;
1342 void _ssint_t_cossin_sp(Tbl* tb,
int & b)
1345 if (tb->get_etat() == ETATZERO) {
1346 int base_r = b &
MSQ_R ;
1347 int base_p = b &
MSQ_P ;
1353 assert(tb->get_etat() == ETATQCQ) ;
1356 int nr = (tb->dim).dim[0] ;
1357 int nt = (tb->dim).dim[1] ;
1358 int np = (tb->dim).dim[2] ;
1362 double* som =
new double [nr] ;
1365 double* xo =
new double[(tb->dim).taille] ;
1368 for (
int i=0; i<(tb->dim).taille; i++) {
1373 double* xi = tb->t ;
1385 xci += nr * (nt-1) ;
1387 xco += nr * (nt-1) ;
1391 for (
int i=0 ; i<nr ; i++) {
1396 for (
int i=0 ; i<nr ; i++) xco[i] = 0 ;
1399 for (
int j=nt-2 ; j >= 1 ; j--) {
1404 for (
int i=0 ; i<nr ; i++ ) {
1405 som[i] += cx * xci[i] ;
1417 for (
int k=2 ; k<np+1 ; k++) {
1425 xco += nr * (nt-1) ;
1428 for (
int i=0 ; i<nr ; i++) {
1434 for (
int j=nt-1 ; j >= 0 ; j--) {
1438 for (
int i=0 ; i<nr ; i++ ) {
1439 som[i] -= 2*xci[i] ;
1453 xci += nr * (nt-1) ;
1454 xco += nr * (nt-1) ;
1457 for (
int i=0 ; i<nr ; i++) {
1462 for (
int i=0 ; i<nr ; i++) xco[i] = 0 ;
1465 for (
int j=nt-2 ; j >= 1 ; j--) {
1470 for (
int i=0 ; i<nr ; i++ ) {
1471 som[i] += 2*xci[i] ;
1491 int base_r = b &
MSQ_R ;
1492 int base_p = b &
MSQ_P ;
1501 void _ssint_t_cossin_c(Tbl* tb,
int & b)
1506 if (tb->get_etat() == ETATZERO) {
1507 int base_r = b &
MSQ_R ;
1508 int base_p = b &
MSQ_P ;
1524 assert(tb->get_etat() == ETATQCQ) ;
1527 int nr = (tb->dim).dim[0] ;
1528 int nt = (tb->dim).dim[1] ;
1529 int np = (tb->dim).dim[2] ;
1533 double* somP =
new double [nr] ;
1534 double* somN =
new double [nr] ;
1537 double* xo =
new double[(tb->dim).taille] ;
1540 for (
int i=0; i<(tb->dim).taille; i++) {
1545 double* xi = tb->t ;
1556 xci += nr * (nt-1) ;
1558 xco += nr * (nt-1) ;
1561 for (
int i=0 ; i<nr ; i++) {
1568 for (
int j=nt-2 ; j >0 ; j--) {
1574 for (
int i=0 ; i<nr ; i++ ) {
1575 if(l==1) somN[i] += cx * xci[i] ;
1576 else somP[i] += cx * xci[i] ;
1577 xco[i] = somN[i]*(1-l)+somP[i]*l ;
1583 for (
int i=0 ; i<nr ; i++) {
1596 for (
int k=2 ; k<np+1 ; k++) {
1609 xco += nr * (nt-1) ;
1610 xci += nr * (nt-1) ;
1613 for (
int i=0 ; i<nr ; i++) {
1620 for (
int j=nt-2 ; j >= 0 ; j--) {
1626 for (
int i=0 ; i<nr ; i++ ) {
1627 if(l==1) somN[i] += cx * xci[i] ;
1628 else somP[i] += cx * xci[i] ;
1629 xco[i] = somN[i]*(1-l)+somP[i]*l ;
1634 for (
int i=0 ; i<nr ; i++) {
1654 int base_r = b &
MSQ_R ;
1655 int base_p = b &
MSQ_P ;
1673 void _ssint_t_cossin_s(Tbl* tb,
int & b)
1678 if (tb->get_etat() == ETATZERO) {
1679 int base_r = b &
MSQ_R ;
1680 int base_p = b &
MSQ_P ;
1696 assert(tb->get_etat() == ETATQCQ) ;
1699 int nr = (tb->dim).dim[0] ;
1700 int nt = (tb->dim).dim[1] ;
1701 int np = (tb->dim).dim[2] ;
1705 double* somP =
new double [nr] ;
1706 double* somN =
new double [nr] ;
1709 double* xo =
new double[(tb->dim).taille] ;
1712 for (
int i=0; i<(tb->dim).taille; i++) {
1717 double* xi = tb->t ;
1728 xci += nr * (nt-1) ;
1730 xco += nr * (nt-1) ;
1733 for (
int i=0 ; i<nr ; i++) {
1740 for (
int j=nt-2 ; j >= 0 ; j--) {
1746 for (
int i=0 ; i<nr ; i++ ) {
1747 if(l==1) somN[i] += cx * xci[i] ;
1748 else somP[i] += cx * xci[i] ;
1749 xco[i] = somN[i]*(1-l)+somP[i]*l ;
1752 for (
int i=0 ; i<nr ; i++) {
1764 for (
int k=2 ; k<np+1 ; k++) {
1770 xci += nr * (nt-1) ;
1774 xci += nr * (nt-1) ;
1777 xco += nr * (nt-1) ;
1780 for (
int i=0 ; i<nr ; i++) {
1787 for (
int j=nt-2 ; j >= 0 ; j--) {
1793 for (
int i=0 ; i<nr ; i++ ) {
1794 if(l==1) somN[i] += cx * xci[i] ;
1795 else somP[i] += cx * xci[i] ;
1796 xco[i] = somN[i]*(1-l)+somP[i]*l ;
1801 for (
int i=0 ; i<nr ; i++) {
1821 int base_r = b &
MSQ_R ;
1822 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