86 #include "type_parite.h" 91 void basename_t_unknown(
int,
int,
string&) ;
92 void basename_t_cos(
int,
int,
string&) ;
93 void basename_t_sin(
int,
int,
string&) ;
94 void basename_t_cos_p(
int,
int,
string&) ;
95 void basename_t_sin_p(
int,
int,
string&) ;
96 void basename_t_cos_i(
int,
int,
string&) ;
97 void basename_t_sin_i(
int,
int,
string&) ;
98 void basename_t_cossin_cp(
int,
int,
string&) ;
99 void basename_t_cossin_sp(
int,
int,
string&) ;
100 void basename_t_cossin_c(
int,
int,
string&) ;
101 void basename_t_cossin_s(
int,
int,
string&) ;
102 void basename_t_cossin_ci(
int,
int,
string&) ;
103 void basename_t_cossin_si(
int,
int,
string&) ;
104 void basename_t_leg_p(
int,
int,
string&) ;
105 void basename_t_leg(
int,
int,
string&) ;
106 void basename_t_leg_mp(
int,
int,
string&) ;
107 void basename_t_leg_mi(
int,
int,
string&) ;
108 void basename_t_leg_pp(
int,
int,
string&) ;
109 void basename_t_leg_i(
int,
int,
string&) ;
110 void basename_t_leg_ip(
int,
int,
string&) ;
111 void basename_t_leg_pi(
int,
int,
string&) ;
112 void basename_t_leg_ii(
int,
int,
string&) ;
113 void basename_t_cl_cos_p(
int,
int,
string&) ;
114 void basename_t_cl_sin_p(
int,
int,
string&) ;
115 void basename_t_cl_cos_i(
int,
int,
string&) ;
116 void basename_t_cl_sin_i(
int,
int,
string&) ;
126 static void(*vbasename_t[
MAX_BASE])(int, int,
string&) ;
128 static bool first_call = true ;
137 vbasename_t[i] = basename_t_unknown ;
140 vbasename_t[
T_COS >>
TRA_T] = basename_t_cos ;
141 vbasename_t[
T_SIN >>
TRA_T] = basename_t_sin ;
155 vbasename_t[
T_LEG >>
TRA_T] = basename_t_leg ;
171 assert( (l>=0) && (l<
nzone) ) ;
175 vbasename_t[base_t](k, j, name) ;
184 void basename_t_unknown(
int,
int,
string&) {
185 cout <<
"Base_val::name_theta : unknwon basis !" << endl ;
190 void basename_t_cos(
int ,
int j,
string& name) {
195 ostr <<
"cos" << j <<
't' << flush ;
199 void basename_t_sin(
int ,
int j,
string& name) {
204 ostr <<
"sin" << j <<
't' << flush ;
209 void basename_t_cos_p(
int ,
int j,
string& name) {
214 ostr <<
"cos" << 2*j <<
't' << flush ;
219 void basename_t_sin_p(
int ,
int j,
string& name) {
229 ostr <<
"sin" << 2*j <<
't' << flush ;
233 void basename_t_cl_cos_p(
int ,
int j,
string& name) {
238 ostr <<
"cl_cos" << 2*j <<
't' << flush ;
242 void basename_t_cl_sin_p(
int ,
int j,
string& name) {
247 ostr <<
"cl_sin" << 2*j <<
't' << flush ;
251 void basename_t_cos_i(
int ,
int j,
string& name) {
256 ostr <<
"cos" << (2*j + 1) <<
't' << flush ;
260 void basename_t_cl_cos_i(
int ,
int j,
string& name) {
265 ostr <<
"cl_cos" << (2*j + 1) <<
't' << flush ;
269 void basename_t_sin_i(
int ,
int j,
string& name) {
274 ostr <<
"sin" << (2*j + 1) <<
't' << flush ;
278 void basename_t_cl_sin_i(
int ,
int j,
string& name) {
283 ostr <<
"cl_sin" << (2*j + 1) <<
't' << flush ;
288 void basename_t_cossin_cp(
int k,
int j,
string& name) {
304 ostr << xt <<
't' << flush ;
309 void basename_t_cossin_sp(
int k,
int j,
string& name) {
331 ostr << xt <<
't' << flush ;
335 void basename_t_cossin_c(
int k,
int j,
string& name) {
356 ostr << xt <<
't' << flush ;
361 void basename_t_cossin_s(
int k,
int j,
string& name) {
383 ostr << xt <<
't' << flush ;
388 void basename_t_cossin_ci(
int k,
int j,
string& name) {
410 ostr << xt <<
't' << flush ;
415 void basename_t_cossin_si(
int k,
int j,
string& name) {
431 ostr << xt <<
't' << flush ;
435 void basename_t_leg(
int k,
int j,
string& name) {
448 ostr <<
"P_" << j <<
'^' << m << flush ;
452 void basename_t_leg_mp(
int k,
int j,
string& name) {
457 int m = 2 * (k / 2) ;
464 ostr <<
"P_" << j <<
'^' << m << flush ;
468 void basename_t_leg_mi(
int k,
int j,
string& name) {
473 int m = 2 * ((k-1) / 2) + 1 ;
481 ostr <<
"P_" << j <<
'^' << m << flush ;
485 void basename_t_leg_p(
int k,
int j,
string& name) {
497 int xt = (m%2 == 0) ? 2*j : 2*j + 1 ;
499 ostr <<
"P_" << xt <<
'^' << m << flush ;
504 void basename_t_leg_pp(
int k,
int j,
string& name) {
509 int m = 2 * (k / 2) ;
517 ostr <<
"P_" << 2*j <<
'^' << m << flush ;
522 void basename_t_leg_i(
int k,
int j,
string& name) {
534 int xt = (m%2 == 0) ? 2*j + 1 : 2*j ;
536 ostr <<
"P_" << xt <<
'^' << m << flush ;
541 void basename_t_leg_ip(
int k,
int j,
string& name) {
546 int m = 2 * (k / 2) ;
554 ostr <<
"P_" << (2*j + 1) <<
'^' << m << flush ;
559 void basename_t_leg_pi(
int k,
int j,
string& name) {
564 int m = 2 * ((k-1) / 2) + 1 ;
572 ostr <<
"P_" << (2*j + 1) <<
'^' << m << flush ;
577 void basename_t_leg_ii(
int k,
int j,
string& name) {
582 int m = 2 * ((k-1) / 2) + 1 ;
590 ostr <<
"P_" << 2*j <<
'^' << m << flush ;
#define T_LEG
fct. de Legendre associees
#define T_LEG_MP
fct. de Legendre associees avec m pair
#define T_LEG_PI
fct. de Legendre associees paires avec m impair
#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 T_COS
dev. cos seulement
#define T_COSSIN_SP
sin pair-cos impair alternes, sin pour m=0
void name_theta(int l, int k, int j, string &basename) const
Name of the basis function in .
int nzone
Number of domains (zones)
#define T_SIN
dev. sin seulement
#define T_CL_COS_P
CL of even cosines.
#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 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.
#define T_COSSIN_C
dev. cos-sin alternes, cos pour m=0
int * b
Array (size: nzone ) of the spectral basis in each domain.
#define T_SIN_P
dev. sin seulement, harmoniques paires
#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 T_LEG_P
fct. de Legendre associees paires
#define T_COSSIN_CI
cos impair-sin pair alternes, cos pour m=0
#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