25char op_ssint_C[] =
"$Header: /cvsroot/Lorene/C++/Source/Non_class_members/Operators/op_ssint.C,v 1.8 2014/10/13 08:53:26 j_novak Exp $" ;
84void _ssint_pas_prevu(Tbl * tb,
int& base) {
85 cout <<
"ssint pas prevu..." << endl ;
86 cout <<
"Tbl: " << tb <<
" base: " << base << endl ;
95void _ssint_t_cos(Tbl* tb,
int & b)
99 if (tb->get_etat() == ETATZERO) {
100 int base_r = b &
MSQ_R ;
101 int base_p = b &
MSQ_P ;
110 b = base_r | base_p |
T_SIN ;
117 assert(tb->get_etat() == ETATQCQ) ;
120 int nr = (tb->dim).dim[0] ;
121 int nt = (tb->dim).dim[1] ;
122 int np = (tb->dim).dim[2] ;
126 double* somP =
new double [nr] ;
127 double* somN =
new double [nr] ;
130 double* xo =
new double[(tb->dim).taille] ;
133 for (
int i=0; i<(tb->dim).taille; i++) {
153 for (
int i=0 ; i<nr ; i++) {
160 for (
int j=nt-2 ; j >0 ; j--) {
166 for (
int i=0 ; i<nr ; i++ ) {
167 if(l==1) somN[i] += cx * xci[i] ;
168 else somP[i] += cx * xci[i] ;
169 xco[i] = somN[i]*(1-l)+somP[i]*l ;
175 for (
int i=0 ; i<nr ; i++) {
188 for (
int k=2 ; k<np+1 ; k++) {
197 for (
int i=0 ; i<nr ; i++) {
204 for (
int j=nt-2 ; j >= 0 ; j--) {
210 for (
int i=0 ; i<nr ; i++ ) {
211 if(l==1) somN[i] += -2 * xci[i] ;
212 else somP[i] += -2 * xci[i] ;
213 xco[i] = somN[i]*(1-l)+somP[i]*l ;
216 for (
int i=0 ; i<nr ; i++) {
235 int base_r = b &
MSQ_R ;
236 int base_p = b &
MSQ_P ;
245 b = base_r | base_p |
T_SIN ;
254void _ssint_t_sin(Tbl* tb,
int & b)
259 if (tb->get_etat() == ETATZERO) {
260 int base_r = b &
MSQ_R ;
261 int base_p = b &
MSQ_P ;
270 b = base_r | base_p |
T_COS ;
277 assert(tb->get_etat() == ETATQCQ) ;
280 int nr = (tb->dim).dim[0] ;
281 int nt = (tb->dim).dim[1] ;
282 int np = (tb->dim).dim[2] ;
286 double* somP =
new double [nr] ;
287 double* somN =
new double [nr] ;
290 double* xo =
new double[(tb->dim).taille] ;
293 for (
int i=0; i<(tb->dim).taille; i++) {
310 for (
int i=0 ; i<nr ; i++) {
317 for (
int j=nt-2 ; j >= 0 ; j--) {
323 for (
int i=0 ; i<nr ; i++ ) {
324 if(l==1) somN[i] += 2 * xci[i] ;
325 else somP[i] += 2 * xci[i] ;
326 xco[i] = somN[i]*(1-l)+somP[i]*l ;
329 for (
int i=0 ; i<nr ; i++) {
341 for (
int k=2 ; k<np+1 ; k++) {
349 for (
int i=0 ; i<nr ; i++) {
356 for (
int j=nt-2 ; j >= 0 ; j--) {
362 for (
int i=0 ; i<nr ; i++ ) {
363 if(l==1) somN[i] += 2 * xci[i] ;
364 else somP[i] += 2 * xci[i] ;
365 xco[i] = somN[i]*(1-l)+somP[i]*l ;
370 for (
int i=0 ; i<nr ; i++) {
390 int base_r = b &
MSQ_R ;
391 int base_p = b &
MSQ_P ;
400 b = base_r | base_p |
T_COS ;
408void _ssint_t_cos_p(Tbl* tb,
int & b)
412 if (tb->get_etat() == ETATZERO) {
413 int base_r = b &
MSQ_R ;
414 int base_p = b &
MSQ_P ;
415 b = base_r | base_p |
T_SIN_I ;
420 assert(tb->get_etat() == ETATQCQ) ;
423 int nr = (tb->dim).dim[0] ;
424 int nt = (tb->dim).dim[1] ;
425 int np = (tb->dim).dim[2] ;
429 double* som =
new double [nr] ;
432 double* xo =
new double[(tb->dim).taille] ;
435 for (
int i=0; i<(tb->dim).taille; i++) {
452 for (
int i=0 ; i<nr ; i++) {
458 for (
int j=nt-2 ; j >= 0 ; j--) {
463 for (
int i=0 ; i<nr ; i++ ) {
478 for (
int k=2 ; k<np+1 ; k++) {
486 for (
int i=0 ; i<nr ; i++) {
492 for (
int j=nt-2 ; j >= 0 ; j--) {
497 for (
int i=0 ; i<nr ; i++ ) {
516 int base_r = b &
MSQ_R ;
517 int base_p = b &
MSQ_P ;
518 b = base_r | base_p |
T_SIN_I ;
525void _ssint_t_sin_p(Tbl* tb,
int & b)
530 if (tb->get_etat() == ETATZERO) {
531 int base_r = b &
MSQ_R ;
532 int base_p = b &
MSQ_P ;
533 b = base_r | base_p |
T_COS_I ;
538 assert(tb->get_etat() == ETATQCQ) ;
541 int nr = (tb->dim).dim[0] ;
542 int nt = (tb->dim).dim[1] ;
543 int np = (tb->dim).dim[2] ;
547 double* som =
new double [nr] ;
550 double* xo =
new double[(tb->dim).taille] ;
553 for (
int i=0; i<(tb->dim).taille; i++) {
570 for (
int i=0 ; i<nr ; i++) {
576 for (
int i=0 ; i<nr ; i++) xco[i] = 0 ;
580 for (
int j=nt-2 ; j >= 1 ; j--) {
585 for (
int i=0 ; i<nr ; i++ ) {
600 for (
int k=2 ; k<np+1 ; k++) {
608 for (
int i=0 ; i<nr ; i++) {
613 for (
int i=0 ; i<nr ; i++) xco[i] = 0 ;
616 for (
int j=nt-2 ; j >= 1 ; j--) {
621 for (
int i=0 ; i<nr ; i++ ) {
640 int base_r = b &
MSQ_R ;
641 int base_p = b &
MSQ_P ;
642 b = base_r | base_p |
T_COS_I ;
649void _ssint_t_sin_i(Tbl* tb,
int & b)
654 if (tb->get_etat() == ETATZERO) {
655 int base_r = b &
MSQ_R ;
656 int base_p = b &
MSQ_P ;
657 b = base_r | base_p |
T_COS_P ;
662 assert(tb->get_etat() == ETATQCQ) ;
665 int nr = (tb->dim).dim[0] ;
666 int nt = (tb->dim).dim[1] ;
667 int np = (tb->dim).dim[2] ;
671 double* som =
new double [nr] ;
674 double* xo =
new double[(tb->dim).taille] ;
677 for (
int i=0; i<(tb->dim).taille; i++) {
695 for (
int i=0 ; i<nr ; i++) {
701 for (
int j=nt-2 ; j >= 0 ; j--) {
706 for (
int i=0 ; i<nr ; i++ ) {
712 for (
int i=0 ; i<nr ; i++) {
724 for (
int k=2 ; k<np+1 ; k++) {
732 for (
int i=0 ; i<nr ; i++) {
738 for (
int j=nt-2 ; j >= 0 ; j--) {
743 for (
int i=0 ; i<nr ; i++ ) {
749 for (
int i=0 ; i<nr ; i++) {
766 int base_r = b &
MSQ_R ;
767 int base_p = b &
MSQ_P ;
768 b = base_r | base_p |
T_COS_P ;
774void _ssint_t_cos_i(Tbl* tb,
int & b)
778 if (tb->get_etat() == ETATZERO) {
779 int base_r = b &
MSQ_R ;
780 int base_p = b &
MSQ_P ;
781 b = base_r | base_p |
T_SIN_P ;
786 assert(tb->get_etat() == ETATQCQ) ;
789 int nr = (tb->dim).dim[0] ;
790 int nt = (tb->dim).dim[1] ;
791 int np = (tb->dim).dim[2] ;
795 double* som =
new double [nr] ;
798 double* xo =
new double[(tb->dim).taille] ;
801 for (
int i=0; i<(tb->dim).taille; i++) {
818 for (
int i=0 ; i<nr ; i++) {
824 for (
int j=nt-1 ; j >= 0 ; j--) {
828 for (
int i=0 ; i<nr ; i++ ) {
844 for (
int k=2 ; k<np+1 ; k++) {
852 for (
int i=0 ; i<nr ; i++) {
858 for (
int j=nt-1 ; j >= 0 ; j--) {
862 for (
int i=0 ; i<nr ; i++ ) {
882 int base_r = b &
MSQ_R ;
883 int base_p = b &
MSQ_P ;
884 b = base_r | base_p |
T_SIN_P ;
890void _ssint_t_cossin_cp(Tbl* tb,
int & b)
894 if (tb->get_etat() == ETATZERO) {
895 int base_r = b &
MSQ_R ;
896 int base_p = b &
MSQ_P ;
902 assert(tb->get_etat() == ETATQCQ) ;
905 int nr = (tb->dim).dim[0] ;
906 int nt = (tb->dim).dim[1] ;
907 int np = (tb->dim).dim[2] ;
911 double* som =
new double [nr] ;
914 double* xo =
new double[(tb->dim).taille] ;
917 for (
int i=0; i<(tb->dim).taille; i++) {
938 for (
int i=0 ; i<nr ; i++) {
944 for (
int j=nt-2 ; j >= 0 ; j--) {
949 for (
int i=0 ; i<nr ; i++ ) {
950 som[i] += cx * xci[i] ;
966 for (
int k=2 ; k<np+1 ; k++) {
982 for (
int i=0 ; i<nr ; i++) {
988 for (
int j=nt-2 ; j >= 0 ; j--) {
993 for (
int i=0 ; i<nr ; i++ ) {
994 som[i] += cx * xci[i] ;
1000 for (
int i=0 ; i<nr ; i++) {
1020 int base_r = b &
MSQ_R ;
1021 int base_p = b &
MSQ_P ;
1028void _ssint_t_cossin_ci(Tbl* tb,
int & b)
1031 if (tb->get_etat() == ETATZERO) {
1032 int base_r = b &
MSQ_R ;
1033 int base_p = b &
MSQ_P ;
1039 assert(tb->get_etat() == ETATQCQ) ;
1042 int nr = (tb->dim).dim[0] ;
1043 int nt = (tb->dim).dim[1] ;
1044 int np = (tb->dim).dim[2] ;
1048 double* som =
new double [nr] ;
1051 double* xo =
new double[(tb->dim).taille] ;
1054 for (
int i=0; i<(tb->dim).taille; i++) {
1059 double* xi = tb->t ;
1070 xco += nr * (nt-1) ;
1073 for (
int i=0 ; i<nr ; i++) {
1079 for (
int j=nt-1 ; j >= 0 ; j--) {
1083 for (
int i=0 ; i<nr ; i++ ) {
1084 som[i] -= 2*xci[i] ;
1099 for (
int k=2 ; k<np+1 ; k++) {
1107 xco += nr * (nt-1) ;
1110 for (
int i=0 ; i<nr ; i++) {
1116 for (
int j=nt-1 ; j >= 0 ; j--) {
1120 for (
int i=0 ; i<nr ; i++ ) {
1121 som[i] -= 2*xci[i] ;
1135 xci += nr * (nt-1) ;
1136 xco += nr * (nt-1) ;
1139 for (
int i=0 ; i<nr ; i++) {
1144 for (
int i=0 ; i<nr ; i++) xco[i] = 0 ;
1147 for (
int j=nt-2 ; j >= 1 ; j--) {
1152 for (
int i=0 ; i<nr ; i++ ) {
1153 som[i] += 2*xci[i] ;
1173 int base_r = b &
MSQ_R ;
1174 int base_p = b &
MSQ_P ;
1181void _ssint_t_cossin_si(Tbl* tb,
int & b)
1184 if (tb->get_etat() == ETATZERO) {
1185 int base_r = b &
MSQ_R ;
1186 int base_p = b &
MSQ_P ;
1192 assert(tb->get_etat() == ETATQCQ) ;
1195 int nr = (tb->dim).dim[0] ;
1196 int nt = (tb->dim).dim[1] ;
1197 int np = (tb->dim).dim[2] ;
1201 double* som =
new double [nr] ;
1204 double* xo =
new double[(tb->dim).taille] ;
1207 for (
int i=0; i<(tb->dim).taille; i++) {
1212 double* xi = tb->t ;
1224 xci += nr * (nt-1) ;
1226 xco += nr * (nt-1) ;
1230 for (
int i=0 ; i<nr ; i++) {
1236 for (
int j=nt-2 ; j >= 0 ; j--) {
1241 for (
int i=0 ; i<nr ; i++ ) {
1242 som[i] += cx * xci[i] ;
1247 for (
int i=0 ; i<nr ; i++) {
1259 for (
int k=2 ; k<np+1 ; k++) {
1269 xci += nr * (nt-1) ;
1272 xco += nr * (nt-1) ;
1275 for (
int i=0 ; i<nr ; i++) {
1281 for (
int j=nt-2 ; j >= 0 ; j--) {
1286 for (
int i=0 ; i<nr ; i++ ) {
1287 som[i] += cx * xci[i] ;
1293 for (
int i=0 ; i<nr ; i++) {
1314 int base_r = b &
MSQ_R ;
1315 int base_p = b &
MSQ_P ;
1323void _ssint_t_cossin_sp(Tbl* tb,
int & b)
1326 if (tb->get_etat() == ETATZERO) {
1327 int base_r = b &
MSQ_R ;
1328 int base_p = b &
MSQ_P ;
1334 assert(tb->get_etat() == ETATQCQ) ;
1337 int nr = (tb->dim).dim[0] ;
1338 int nt = (tb->dim).dim[1] ;
1339 int np = (tb->dim).dim[2] ;
1343 double* som =
new double [nr] ;
1346 double* xo =
new double[(tb->dim).taille] ;
1349 for (
int i=0; i<(tb->dim).taille; i++) {
1354 double* xi = tb->t ;
1366 xci += nr * (nt-1) ;
1368 xco += nr * (nt-1) ;
1372 for (
int i=0 ; i<nr ; i++) {
1377 for (
int i=0 ; i<nr ; i++) xco[i] = 0 ;
1380 for (
int j=nt-2 ; j >= 1 ; j--) {
1385 for (
int i=0 ; i<nr ; i++ ) {
1386 som[i] += cx * xci[i] ;
1398 for (
int k=2 ; k<np+1 ; k++) {
1406 xco += nr * (nt-1) ;
1409 for (
int i=0 ; i<nr ; i++) {
1415 for (
int j=nt-1 ; j >= 0 ; j--) {
1419 for (
int i=0 ; i<nr ; i++ ) {
1420 som[i] -= 2*xci[i] ;
1434 xci += nr * (nt-1) ;
1435 xco += nr * (nt-1) ;
1438 for (
int i=0 ; i<nr ; i++) {
1443 for (
int i=0 ; i<nr ; i++) xco[i] = 0 ;
1446 for (
int j=nt-2 ; j >= 1 ; j--) {
1451 for (
int i=0 ; i<nr ; i++ ) {
1452 som[i] += 2*xci[i] ;
1472 int base_r = b &
MSQ_R ;
1473 int base_p = b &
MSQ_P ;
1482void _ssint_t_cossin_c(Tbl* tb,
int & b)
1487 if (tb->get_etat() == ETATZERO) {
1488 int base_r = b &
MSQ_R ;
1489 int base_p = b &
MSQ_P ;
1505 assert(tb->get_etat() == ETATQCQ) ;
1508 int nr = (tb->dim).dim[0] ;
1509 int nt = (tb->dim).dim[1] ;
1510 int np = (tb->dim).dim[2] ;
1514 double* somP =
new double [nr] ;
1515 double* somN =
new double [nr] ;
1518 double* xo =
new double[(tb->dim).taille] ;
1521 for (
int i=0; i<(tb->dim).taille; i++) {
1526 double* xi = tb->t ;
1537 xci += nr * (nt-1) ;
1539 xco += nr * (nt-1) ;
1542 for (
int i=0 ; i<nr ; i++) {
1549 for (
int j=nt-2 ; j >0 ; j--) {
1555 for (
int i=0 ; i<nr ; i++ ) {
1556 if(l==1) somN[i] += cx * xci[i] ;
1557 else somP[i] += cx * xci[i] ;
1558 xco[i] = somN[i]*(1-l)+somP[i]*l ;
1564 for (
int i=0 ; i<nr ; i++) {
1577 for (
int k=2 ; k<np+1 ; k++) {
1590 xco += nr * (nt-1) ;
1591 xci += nr * (nt-1) ;
1594 for (
int i=0 ; i<nr ; i++) {
1601 for (
int j=nt-2 ; j >= 0 ; j--) {
1607 for (
int i=0 ; i<nr ; i++ ) {
1608 if(l==1) somN[i] += cx * xci[i] ;
1609 else somP[i] += cx * xci[i] ;
1610 xco[i] = somN[i]*(1-l)+somP[i]*l ;
1615 for (
int i=0 ; i<nr ; i++) {
1635 int base_r = b &
MSQ_R ;
1636 int base_p = b &
MSQ_P ;
1654void _ssint_t_cossin_s(Tbl* tb,
int & b)
1659 if (tb->get_etat() == ETATZERO) {
1660 int base_r = b &
MSQ_R ;
1661 int base_p = b &
MSQ_P ;
1677 assert(tb->get_etat() == ETATQCQ) ;
1680 int nr = (tb->dim).dim[0] ;
1681 int nt = (tb->dim).dim[1] ;
1682 int np = (tb->dim).dim[2] ;
1686 double* somP =
new double [nr] ;
1687 double* somN =
new double [nr] ;
1690 double* xo =
new double[(tb->dim).taille] ;
1693 for (
int i=0; i<(tb->dim).taille; i++) {
1698 double* xi = tb->t ;
1709 xci += nr * (nt-1) ;
1711 xco += nr * (nt-1) ;
1714 for (
int i=0 ; i<nr ; i++) {
1721 for (
int j=nt-2 ; j >= 0 ; j--) {
1727 for (
int i=0 ; i<nr ; i++ ) {
1728 if(l==1) somN[i] += cx * xci[i] ;
1729 else somP[i] += cx * xci[i] ;
1730 xco[i] = somN[i]*(1-l)+somP[i]*l ;
1733 for (
int i=0 ; i<nr ; i++) {
1745 for (
int k=2 ; k<np+1 ; k++) {
1751 xci += nr * (nt-1) ;
1755 xci += nr * (nt-1) ;
1758 xco += nr * (nt-1) ;
1761 for (
int i=0 ; i<nr ; i++) {
1768 for (
int j=nt-2 ; j >= 0 ; j--) {
1774 for (
int i=0 ; i<nr ; i++ ) {
1775 if(l==1) somN[i] += cx * xci[i] ;
1776 else somP[i] += cx * xci[i] ;
1777 xco[i] = somN[i]*(1-l)+somP[i]*l ;
1782 for (
int i=0 ; i<nr ; i++) {
1802 int base_r = b &
MSQ_R ;
1803 int base_p = b &
MSQ_P ;
#define T_COSSIN_SP
sin pair-cos impair alternes, sin pour m=0
#define T_SIN_P
dev. sin seulement, harmoniques paires
#define MSQ_R
Extraction de l'info sur R.
#define T_COSSIN_S
dev. cos-sin alternes, sin pour m=0
#define T_COSSIN_SI
sin impair-cos pair alternes, sin pour m=0
#define R_CHEBPI_I
Cheb. pair-impair suivant l impair pour l=0.
#define T_COS_P
dev. cos seulement, harmoniques paires
#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_COS
dev. cos seulement
#define MSQ_P
Extraction de l'info sur Phi.
#define T_SIN
dev. sin seulement
#define T_COS_I
dev. cos seulement, harmoniques impaires
#define T_COSSIN_C
dev. cos-sin alternes, cos pour m=0
#define R_CHEBPI_P
Cheb. pair-impair suivant l pair pour l=0.