142 #include "type_parite.h" 143 #include "base_val.h" 144 #include "utilitaires.h" 155 for (
int i=0 ; i<
nzone ; i++) {
163 for (
int i=0 ; i<
nzone ; i++) {
190 assert( (l>=0) && (l<
nzone) ) ;
192 int base_t =
b[l] &
MSQ_T ;
193 int base_p =
b[l] &
MSQ_P ;
194 b[l] = base_p | base_t | base_r ;
200 for (
int l=0; l<
nzone; l++) {
201 int base_r =
b[l] &
MSQ_R ;
202 int base_p =
b[l] &
MSQ_P ;
203 b[l] = base_p | base_t | base_r ;
209 for (
int l=0; l<
nzone; l++) {
210 int base_r =
b[l] &
MSQ_R ;
211 int base_t =
b[l] &
MSQ_T ;
212 b[l] = base_p | base_t | base_r ;
221 for (
int i=0 ; i<
nzone ; i++) {
241 ostream& operator<<(ostream& o,
const Base_val & bi) {
243 static bool premier_appel = true ;
244 static const char* nom_r[
MAX_BASE] ;
245 static const char* nom_t[
MAX_BASE] ;
250 premier_appel = false ;
253 nom_r[i] =
"UNDEFINED" ;
254 nom_t[i] =
"UNDEFINED" ;
256 nom_p[i/2] =
"UNDEFINED" ;
308 int nzone = bi.
nzone ;
309 o <<
"Bases of spectral expansions: " ;
310 for (
int l=0 ; l<nzone ; l++) {
315 o <<
"Domain #" << l <<
" : r: " << nom_r[base_r]
316 <<
", theta: " << nom_t[base_t]
317 <<
", phi: " << nom_p[base_p] ;
330 for (
int i=0 ; i<
nzone ; i++) {
340 return (*
b == *c2.
b) ;
#define T_LEG
fct. de Legendre associees
void operator=(const Base_val &)
Assignment.
#define MAX_BASE_2
Smaller maximum bases used for phi (and higher dimensions for now)
#define T_LEG_MP
fct. de Legendre associees avec m pair
#define P_COSSIN
dev. standart
void set_base_r(int l, int base_r)
Sets the expansion basis for r ( ) functions in a given domain.
#define T_LEG_PI
fct. de Legendre associees paires avec m impair
#define TRA_P
Translation en Phi, used for a bitwise shift (in hex)
#define R_CHEBPI_I
Cheb. pair-impair suivant l impair pour l=0.
#define T_LEG_MI
fct. de Legendre associees avec m impair
#define TRA_T
Translation en Theta, used for a bitwise shift (in hex)
#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 R_LEGP
base de Legendre paire (rare) seulement
#define R_LEGI
base de Legendre impaire (rare) seulement
void set_base_t(int base_t)
Sets the expansion basis for functions in all domains.
int nzone
Number of domains (zones)
#define R_JACO02
base de Jacobi(0,2) ordinaire (finjac)
#define T_SIN
dev. sin seulement
#define T_CL_COS_P
CL of even cosines.
#define TRA_R
Translation en R, used for a bitwise shift (in hex)
#define T_LEG_I
fct. de Legendre associees impaires
#define T_COS_I
dev. cos seulement, harmoniques impaires
#define T_CL_SIN_P
CL of even sines.
#define R_CHEBI
base de Cheb. impaire (rare) seulement
#define R_CHEBP
base de Cheb. paire (rare) seulement
#define T_COS_P
dev. cos seulement, harmoniques paires
#define T_CL_SIN_I
CL of odd sines.
#define MSQ_T
Extraction de l'info sur Theta.
void sauve(FILE *) const
Save in a file.
#define T_COSSIN_C
dev. cos-sin alternes, cos pour m=0
void set_base_p(int base_p)
Sets the expansion basis for functions in all domains.
int * b
Array (size: nzone ) of the spectral basis in each domain.
#define MSQ_R
Extraction de l'info sur R.
#define T_SIN_P
dev. sin seulement, harmoniques paires
int fwrite_be(const int *aa, int size, int nb, FILE *fich)
Writes integer(s) into a binary file according to the big endian convention.
bool operator==(const Base_val &) const
Comparison operator.
#define T_COSSIN_SI
sin impair-cos pair alternes, sin pour m=0
#define T_LEG_IP
fct. de Legendre associees impaires avec m pair
#define R_CHEBPIM_I
Cheb. pair-impair suivant m, impair pour m=0.
#define R_CHEBPIM_P
Cheb. pair-impair suivant m, pair pour m=0.
int fread_be(int *aa, int size, int nb, FILE *fich)
Reads integer(s) from a binary file according to the big endian convention.
Base_val(int nb_of_domains)
Standard constructor.
Bases of the spectral expansions.
#define T_LEG_P
fct. de Legendre associees paires
#define R_CHEBPI_P
Cheb. pair-impair suivant l pair pour l=0.
#define NONDEF
base inconnue
#define T_COSSIN_CI
cos impair-sin pair alternes, cos pour m=0
void set_base_nondef()
Sets the spectral bases to NONDEF.
#define P_COSSIN_I
dev. sur Phi = 2*phi, freq. impaires
#define R_CHEBU
base de Chebychev ordinaire (fin), dev. en 1/r
#define P_COSSIN_P
dev. sur Phi = 2*phi, freq. paires
#define T_LEG_II
fct. de Legendre associees impaires avec m impair
#define T_CL_COS_I
CL of odd cosines.
#define T_COSSIN_CP
cos pair-sin impair alternes, cos pour m=0
#define MAX_BASE
Nombre max. de bases differentes.
#define T_SIN_I
dev. sin seulement, harmoniques impaires
#define T_LEG_PP
fct. de Legendre associees paires avec m pair
#define T_COSSIN_S
dev. cos-sin alternes, sin pour m=0
#define R_LEG
base de Legendre ordinaire (fin)
#define R_CHEB
base de Chebychev ordinaire (fin)