90 assert (
etat != ETATNONDEF) ;
97 cout <<
"Le mapping doit etre affine" << endl ;
101 int nz = map->get_mg()->get_nzone() ;
102 int nr = map->get_mg()->get_nr (nz-1) ;
103 int nt = map->get_mg()->get_nt (nz-1) ;
104 int np = map->get_mg()->get_np (nz-1) ;
107 double r_cont = -1./2./alpha ;
110 Tbl coef (nbre+2*lmax, nr) ;
113 int* deg =
new int[3] ;
114 deg[0] = 1 ; deg[1] = 1 ; deg[2] = nr ;
115 double* auxi =
new double[nr] ;
117 for (
int conte=0 ; conte<nbre+2*lmax ; conte++) {
118 for (
int i=0 ; i<nr ; i++)
119 auxi[i] =
pow(-1-
cos(M_PI*i/(nr-1)), (conte+puis)) ;
121 cfrcheb(deg, deg, auxi, deg, auxi) ;
122 for (
int i=0 ; i<nr ; i++)
123 coef.
set(conte, i) = auxi[i]*
pow (alpha, conte+puis) ;
128 Tbl valeurs (nbre, nt, np+1) ;
131 Cmp courant (*
this) ;
132 double* res_val =
new double[1] ;
134 for (
int conte=0 ; conte<nbre ; conte++) {
141 for (
int k=0 ; k<np+1 ; k++)
142 for (
int j=0 ; j<nt ; j++)
143 if (nullite_plm(j, nt, k, np, courant.
va.
base) == 1) {
145 for (
int i=0 ; i<nr ; i++)
146 auxi[i] = (*courant.
va.
c_cf)(nz-2, k, j, i) ;
150 som_r_cheb (auxi, nr, 1, 1, 1, res_val) ;
153 cout <<
"Cas non prevu dans raccord_zec" << endl ;
157 valeurs.
set(conte, k, j) = res_val[0] ;
159 Cmp copie (courant) ;
161 courant = copie.
dsdr() ;
171 va.c_cf->t[nz-1]->annule_hard() ;
172 va.set_etat_cf_qcq() ;
175 int base_r, l_quant, m_quant ;
176 for (
int k=0 ; k<np+1 ; k++)
177 for (
int j=0 ; j<nt ; j++)
178 if (nullite_plm(j, nt, k, np,
va.base) == 1) {
180 donne_lm (nz, nz-1, j, k, base, m_quant, l_quant, base_r) ;
187 for (
int col=0 ; col<nbre ; col++)
188 for (
int lig=0 ; lig<nbre ; lig++) {
190 int facteur = (lig%2==0) ? 1 : -1 ;
191 for (
int conte=0 ; conte<lig ; conte++)
192 facteur *= puis+col+conte+2*l_quant ;
193 systeme.
set(lig, col) = facteur/
pow(r_cont, puis+col+lig+2*l_quant) ;
199 Tbl sec_membre (nbre) ;
201 for (
int conte=0 ; conte<nbre ; conte++)
202 sec_membre.
set(conte) = valeurs(conte, k, j) ;
206 for (
int conte=0 ; conte<nbre ; conte++)
207 for (
int i=0 ; i<nr ; i++)
208 va.c_cf->set(nz-1, k, j, i)+=
209 inv(conte)*coef(conte+2*l_quant, i) ;
211 else for (
int i=0 ; i<nr ; i++)
212 va.c_cf->set(nz-1, k, j, i)