68 #include "type_parite.h" 76 Matrice _xdsdx_mat_pas_prevu(
int n,
int) {
77 cout <<
"xdsdx_mat pas prevu..." << endl ;
78 cout <<
"n : " << n << endl ;
91 Matrice _xdsdx_mat_r_chebp (
int n,
int) {
92 const int nmax = 200 ;
93 static Matrice* tab[nmax] ;
94 static int nb_dejafait = 0 ;
95 static int nr_dejafait[nmax] ;
100 for (
int conte=0 ; conte<nb_dejafait ; conte ++)
101 if (nr_dejafait[conte] == n)
106 if (nb_dejafait >= nmax) {
107 cout <<
"_laplacien_nul_mat_r_chebp : trop de matrices" << endl ;
112 nr_dejafait[nb_dejafait] = n ;
114 Matrice res(n-1, n-1) ;
117 double* xdsdx =
new double[n] ;
119 for (
int i=0 ; i<n-1 ; i++) {
120 for (
int j=0 ; j<n ; j++)
124 xdsdx_1d (n, &xdsdx,
R_CHEBP) ;
126 for (
int j=0 ; j<n-1 ; j++)
127 res.set(j, i) = xdsdx[j] ;
130 tab[nb_dejafait] =
new Matrice(res) ;
136 return *tab[indice] ;
146 Matrice _xdsdx_mat_r_chebi (
int n,
int l) {
147 const int nmax = 200 ;
148 static Matrice* tab[nmax] ;
149 static int nb_dejafait = 0 ;
150 static int nr_dejafait[nmax] ;
151 static int nl_dejafait[nmax] ;
155 int indic_l = (l == 1) ? 1 : 2 ;
158 for (
int conte=0 ; conte<nb_dejafait ; conte ++)
159 if ((nr_dejafait[conte] == n) && (nl_dejafait[conte] == indic_l))
164 if (nb_dejafait >= nmax) {
165 cout <<
"_laplacien_nul_mat_r_chebp : trop de matrices" << endl ;
170 nr_dejafait[nb_dejafait] = n ;
171 nl_dejafait[nb_dejafait] = indic_l ;
174 int taille = (l==1) ? n : n-1 ;
175 Matrice res(taille, taille) ;
178 double* xdsdx =
new double[n] ;
180 for (
int i=0 ; i<taille ; i++) {
181 for (
int j=0 ; j<n ; j++)
192 xdsdx_1d (n, &xdsdx,
R_CHEBI) ;
194 for (
int j=0 ; j<taille ; j++)
195 res.set(j, i) = xdsdx[j] ;
199 tab[nb_dejafait] =
new Matrice(res) ;
205 return *tab[indice] ;
212 Matrice xdsdx_mat(
int n,
int l,
int base_r)
216 static Matrice (*xdsdx_mat[
MAX_BASE])(int, int) ;
223 xdsdx_mat[i] = _xdsdx_mat_pas_prevu ;
230 Matrice res(xdsdx_mat[base_r](n, l)) ;
#define TRA_R
Translation en R, used for a bitwise shift (in hex)
#define R_CHEBI
base de Cheb. impaire (rare) seulement
#define R_CHEBP
base de Cheb. paire (rare) seulement
#define MAX_BASE
Nombre max. de bases differentes.