81 #include "type_parite.h" 89 void _poisangu_pas_prevu(Mtbl_cf* mt,
int l,
double) {
90 cout <<
"Unknwon theta basis in the operator Mtbl_cf::poisson_angu() !" << endl ;
91 cout <<
" basis : " << hex << (mt->base).b[l] << endl ;
99 void _poisangu_t_leg(Mtbl_cf* mt,
int l,
double lambda)
105 if (tb->get_etat() == ETATZERO) {
111 int nr = mt->get_mg()->get_nr(l) ;
112 int nt = mt->get_mg()->get_nt(l) ;
113 int np = mt->get_mg()->get_np(l) ;
115 int np1 = ( np == 1 ) ? 1 : np+1 ;
117 double* tuu = tb->t ;
121 for (j=0 ; j<nt ; j++) {
123 double xl = - ll*(ll+1) + lambda ;
125 if (fabs(xl) < 1.e-14) {
126 for (i=0 ; i<nr ; i++) {
131 for (i=0 ; i<nr ; i++) {
142 for (k=2 ; k<np1 ; k++) {
145 for (j=m/2 ; j<nt ; j++) {
147 double xl = - ll*(ll+1) + lambda ;
149 if (fabs(xl) < 1.e-14) {
150 for (i=0 ; i<nr ; i++) {
155 for (i=0 ; i<nr ; i++) {
170 void _poisangu_t_leg_p(Mtbl_cf* mt,
int l,
double lambda)
176 if (tb->get_etat() == ETATZERO) {
182 int nr = mt->get_mg()->get_nr(l) ;
183 int nt = mt->get_mg()->get_nt(l) ;
184 int np = mt->get_mg()->get_np(l) ;
186 int np1 = ( np == 1 ) ? 1 : np+1 ;
188 double* tuu = tb->t ;
192 for (j=0 ; j<nt ; j++) {
194 double xl = - ll*(ll+1) + lambda ;
196 if (fabs(xl) < 1.e-14) {
197 for (i=0 ; i<nr ; i++) {
202 for (i=0 ; i<nr ; i++) {
213 for (k=2 ; k<np1 ; k++) {
216 for (j=m/2 ; j<nt ; j++) {
217 int ll = 2*j + (m%2) ;
218 double xl = - ll*(ll+1) + lambda ;
220 if (fabs(xl) < 1.e-14) {
221 for (i=0 ; i<nr ; i++) {
226 for (i=0 ; i<nr ; i++) {
241 void _poisangu_t_leg_pp(Mtbl_cf* mt,
int l,
double lambda)
247 if (tb->get_etat() == ETATZERO) {
253 int nr = mt->get_mg()->get_nr(l) ;
254 int nt = mt->get_mg()->get_nt(l) ;
255 int np = mt->get_mg()->get_np(l) ;
257 int np1 = ( np == 1 ) ? 1 : np+1 ;
259 double* tuu = tb->t ;
263 for (j=0 ; j<nt ; j++) {
265 double xl = - ll*(ll+1) + lambda ;
267 if (fabs(xl) < 1.e-14) {
268 for (i=0 ; i<nr ; i++) {
273 for (i=0 ; i<nr ; i++) {
284 for (k=2 ; k<np1 ; k++) {
287 for (j=m/2 ; j<nt ; j++) {
289 double xl = - ll*(ll+1) + lambda ;
291 if (fabs(xl) < 1.e-14) {
292 for (i=0 ; i<nr ; i++) {
297 for (i=0 ; i<nr ; i++) {
312 void _poisangu_t_leg_i(Mtbl_cf* mt,
int l,
double lambda)
318 if (tb->get_etat() == ETATZERO) {
324 int nr = mt->get_mg()->get_nr(l) ;
325 int nt = mt->get_mg()->get_nt(l) ;
326 int np = mt->get_mg()->get_np(l) ;
328 int np1 = ( np == 1 ) ? 1 : np+1 ;
330 double* tuu = tb->t ;
334 for (j=0 ; j<nt-1 ; j++) {
336 double xl = - ll*(ll+1) + lambda ;
338 if (fabs(xl) < 1.e-14) {
339 for (i=0 ; i<nr ; i++) {
344 for (i=0 ; i<nr ; i++) {
356 for (k=2 ; k<np1 ; k++) {
358 tuu += ((m+1)/2)*nr ;
359 for (j=(m+1)/2 ; j<nt-1 ; j++) {
360 int ll = 2*j + ((m+1)%2) ;
361 double xl = - ll*(ll+1) + lambda ;
363 if (fabs(xl) < 1.e-14) {
364 for (i=0 ; i<nr ; i++) {
369 for (i=0 ; i<nr ; i++) {
385 void _poisangu_t_leg_ip(Mtbl_cf* mt,
int l,
double lambda)
391 if (tb->get_etat() == ETATZERO) {
397 int nr = mt->get_mg()->get_nr(l) ;
398 int nt = mt->get_mg()->get_nt(l) ;
399 int np = mt->get_mg()->get_np(l) ;
401 int np1 = ( np == 1 ) ? 1 : np+1 ;
403 double* tuu = tb->t ;
407 for (j=0 ; j<nt-1 ; j++) {
409 double xl = - ll*(ll+1) + lambda ;
411 if (fabs(xl) < 1.e-14) {
412 for (i=0 ; i<nr ; i++) {
417 for (i=0 ; i<nr ; i++) {
429 for (k=2 ; k<np1 ; k++) {
432 for (j=m/2 ; j<nt-1 ; j++) {
434 double xl = - ll*(ll+1) + lambda ;
436 if (fabs(xl) < 1.e-14) {
437 for (i=0 ; i<nr ; i++) {
442 for (i=0 ; i<nr ; i++) {
452 assert (tuu == tb->t + (np+1)*nt*nr) ;
461 void _poisangu_t_leg_pi(Mtbl_cf* mt,
int l,
double lambda)
467 if (tb->get_etat() == ETATZERO) {
473 int nr = mt->get_mg()->get_nr(l) ;
474 int nt = mt->get_mg()->get_nt(l) ;
475 int np = mt->get_mg()->get_np(l) ;
477 double* tuu = tb->t ;
482 for (j=0 ; j<nt-1 ; j++) {
484 double xl = - ll*(ll+1) + lambda ;
486 if (fabs(xl) < 1.e-14) {
487 for (i=0 ; i<nr ; i++) {
492 for (i=0 ; i<nr ; i++) {
510 for (j=0 ; j<nt-1 ; j++) {
512 double xl = - ll*(ll+1) + lambda ;
514 if (fabs(xl) < 1.e-14) {
515 for (i=0 ; i<nr ; i++) {
520 for (i=0 ; i<nr ; i++) {
530 for (k=3 ; k<np+1 ; k++) {
531 int m = (k%2 == 0) ? k-1 : k ;
533 for (j=(m-1)/2 ; j<nt-1 ; j++) {
535 double xl = - ll*(ll+1) + lambda ;
537 if (fabs(xl) < 1.e-14) {
538 for (i=0 ; i<nr ; i++) {
543 for (i=0 ; i<nr ; i++) {
553 assert (tuu == tb->t + (np+1)*nt*nr) ;
562 void _poisangu_t_leg_ii(Mtbl_cf* mt,
int l,
double lambda)
568 if (tb->get_etat() == ETATZERO) {
574 int nr = mt->get_mg()->get_nr(l) ;
575 int nt = mt->get_mg()->get_nt(l) ;
576 int np = mt->get_mg()->get_np(l) ;
578 double* tuu = tb->t ;
583 for (j=0 ; j<nt-1 ; j++) {
585 double xl = - ll*(ll+1) + lambda ;
587 if (fabs(xl) < 1.e-14) {
588 for (i=0 ; i<nr ; i++) {
593 for (i=0 ; i<nr ; i++) {
611 for (j=0 ; j<nt-1 ; j++) {
613 double xl = - ll*(ll+1) + lambda ;
615 if (fabs(xl) < 1.e-14) {
616 for (i=0 ; i<nr ; i++) {
621 for (i=0 ; i<nr ; i++) {
631 for (k=3 ; k<np+1 ; k++) {
632 int m = (k%2 == 0) ? k-1 : k ;
634 for (j=(m+1)/2 ; j<nt-1 ; j++) {
636 double xl = - ll*(ll+1) + lambda ;
638 if (fabs(xl) < 1.e-14) {
639 for (i=0 ; i<nr ; i++) {
644 for (i=0 ; i<nr ; i++) {
654 assert (tuu == tb->t + (np+1)*nt*nr) ;
663 void _poisangu_t_leg_mp(Mtbl_cf* mt,
int l,
double lambda)
669 if (tb->get_etat() == ETATZERO) {
675 int nr = mt->get_mg()->get_nr(l) ;
676 int nt = mt->get_mg()->get_nt(l) ;
677 int np = mt->get_mg()->get_np(l) ;
679 int np1 = ( np == 1 ) ? 1 : np+1 ;
681 double* tuu = tb->t ;
685 for (j=0 ; j<nt ; j++) {
687 double xl = - ll*(ll+1) + lambda ;
689 if (fabs(xl) < 1.e-14) {
690 for (i=0 ; i<nr ; i++) {
695 for (i=0 ; i<nr ; i++) {
706 for (k=2 ; k<np1 ; k++) {
709 for (j=m ; j<nt ; j++) {
711 double xl = - ll*(ll+1) + lambda ;
713 if (fabs(xl) < 1.e-14) {
714 for (i=0 ; i<nr ; i++) {
719 for (i=0 ; i<nr ; i++) {
734 void _poisangu_t_leg_mi(Mtbl_cf* mt,
int l,
double lambda)
740 if (tb->get_etat() == ETATZERO) {
746 int nr = mt->get_mg()->get_nr(l) ;
747 int nt = mt->get_mg()->get_nt(l) ;
748 int np = mt->get_mg()->get_np(l) ;
750 int np1 = ( np == 1 ) ? 1 : np+1 ;
752 double* tuu = tb->t ;
756 for (j=0 ; j<nt-1 ; j++) {
758 double xl = - ll*(ll+1) + lambda ;
760 if (fabs(xl) < 1.e-14) {
761 for (i=0 ; i<nr ; i++) {
766 for (i=0 ; i<nr ; i++) {
778 for (k=2 ; k<np1 ; k++) {
779 int m = 2*((k-1)/2) + 1 ;
781 for (j=m ; j<nt-1 ; j++) {
783 double xl = - ll*(ll+1) + lambda ;
785 if (fabs(xl) < 1.e-14) {
786 for (i=0 ; i<nr ; i++) {
791 for (i=0 ; i<nr ; i++) {