32 #ifndef SHARP_YLMGEN_C_H 33 #define SHARP_YLMGEN_C_H 39 enum { sharp_minscale=0, sharp_limscale=1, sharp_maxscale=1 };
40 static const double sharp_fbig=0x1p+800,sharp_fsmall=0x1p-800;
41 static const double sharp_ftol=0x1p-60;
42 static const double sharp_fbighalf=0x1p+400;
44 typedef struct {
double f[2]; } sharp_ylmgen_dbl2;
45 typedef struct {
double f[3]; } sharp_ylmgen_dbl3;
59 sharp_ylmgen_dbl2 *rf;
62 int sinPow, cosPow, preMinus_p, preMinus_m;
65 sharp_ylmgen_dbl3 *fx;
72 double *flm1, *flm2, *inv;
void sharp_Ylmgen_destroy(sharp_Ylmgen_C *gen)
double * sharp_Ylmgen_get_norm(int lmax, int spin)
double * sharp_Ylmgen_get_d1norm(int lmax)
void sharp_Ylmgen_prepare(sharp_Ylmgen_C *gen, int m)
void sharp_Ylmgen_init(sharp_Ylmgen_C *gen, int l_max, int m_max, int spin)