133 #include "type_parite.h" 138 void ylm_pasprevu(
const int*,
const double*,
double*) ;
143 static void (*chbase_t[
MAX_BASE])(
const int*,
const double*,
146 static int premier_appel = 1 ;
150 if (premier_appel==1) {
154 chbase_t[i] = ylm_pasprevu ;
192 if (
etat == ETATZERO) {
193 for (
int l=0 ; l<nzone ; l++) {
197 int vbase_t_tra = vbase_t >>
TRA_T ;
198 base.
b[l] = ( vbase_p | nouv_base_t[vbase_t_tra] ) | vbase_r ;
204 assert(
etat != ETATNONDEF) ;
212 for (
int l=0; l<nzone; l++) {
226 int vbase_t_tra = vbase_t >>
TRA_T ;
229 (vbase_t ==
T_COS) ) ;
231 (vbase_t ==
T_SIN) ) ;
234 base.
b[l] = ( vbase_p | nouv_base_t[vbase_t_tra] ) | vbase_r ;
243 if (cf->
get_etat() == ETATZERO)
continue ;
250 double* resu =
new double [cf->
get_taille()] ;
257 ylm_pasprevu(deg, (cf->
t), resu ) ;
259 chbase_t[vbase_t_tra](deg, (cf->
t), resu ) ;
276 void ylm_pasprevu(
const int* ,
const double*,
double* ) {
279 "Valeur::ylm: change of basis not implemented yet !" #define T_LEG
fct. de Legendre associees
Mtbl_cf * c_cf
Coefficients of the spectral expansion of the function.
#define T_LEG_MP
fct. de Legendre associees avec m pair
int get_np(int l) const
Returns the number of points in the azimuthal direction ( ) in domain no. l.
void coef() const
Computes the coeffcients of *this.
Cmp sqrt(const Cmp &)
Square root.
#define T_LEG_PI
fct. de Legendre associees paires avec m impair
#define T_LEG_MI
fct. de Legendre associees avec m impair
void ylm()
Computes the coefficients of *this.
#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
int get_etat() const
Gives the logical state.
#define T_SIN
dev. sin seulement
const Mg3d * get_mg() const
Returns the Mg3d on which the this is defined.
#define T_LEG_I
fct. de Legendre associees impaires
#define T_COS_I
dev. cos seulement, harmoniques impaires
#define T_COS_P
dev. cos seulement, harmoniques paires
#define MSQ_T
Extraction de l'info sur Theta.
#define T_COSSIN_C
dev. cos-sin alternes, cos pour m=0
Base_val base
Bases on which the spectral expansion is performed.
double * t
The array of double.
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 get_nzone() const
Returns the number of domains.
#define T_LEG_IP
fct. de Legendre associees impaires avec m pair
int get_nr(int l) const
Returns the number of points in the radial direction ( ) in domain no. l.
#define T_LEG_P
fct. de Legendre associees paires
#define NONDEF
base inconnue
#define T_COSSIN_CI
cos impair-sin pair alternes, cos pour m=0
int get_taille() const
Gives the total size (ie dim.taille)
Base_val base
Bases of the spectral expansions.
int etat
Logical state (ETATNONDEF , ETATQCQ or ETATZERO ).
#define P_COSSIN_I
dev. sur Phi = 2*phi, freq. impaires
int get_nt(int l) const
Returns the number of points in the co-latitude direction ( ) in domain no. l.
#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_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
Tbl ** t
Array (size nzone ) of pointers on the Tbl 's which contain the spectral coefficients in each domain...
#define T_LEG_PP
fct. de Legendre associees paires avec m pair