32 #ifndef PLANCK_ALM_POWSPEC_TOOLS_H 33 #define PLANCK_ALM_POWSPEC_TOOLS_H 37 template<
typename T>
class Alm;
49 Alm<xcomplex<T> > &alm, planck_rng &rng);
56 Alm<xcomplex<T> > &almT,
57 Alm<xcomplex<T> > &almG,
58 Alm<xcomplex<T> > &almC,
63 (
const Alm<xcomplex<T> > &alm,
PowSpec &powspec);
66 (
const Alm<xcomplex<T> > &alm1,
67 const Alm<xcomplex<T> > &alm2,
PowSpec &powspec);
71 (
const Alm<xcomplex<T> > &almT,
72 const Alm<xcomplex<T> > &almG,
73 const Alm<xcomplex<T> > &almC,
83 (
Alm<xcomplex<T> > &alm,
double fwhm);
89 (
Alm<xcomplex<T> > &almT,
90 Alm<xcomplex<T> > &almG,
91 Alm<xcomplex<T> > &almC,
98 (
Alm<xcomplex<T> > &alm,
int lmin,
int lmax);
101 (
Alm<xcomplex<T> > &almT,
Alm<xcomplex<T> > &almG,
Alm<xcomplex<T> > &almC,
115 template<
typename T>
void rotate_alm (
Alm<xcomplex<T> > &alm,
116 double psi,
double theta,
double phi);
125 template<
typename T>
void rotate_alm (
Alm<xcomplex<T> > &almT,
126 Alm<xcomplex<T> > &almG,
Alm<xcomplex<T> > &almC,
127 double psi,
double theta,
double phi);
131 template<
typename T>
void rotate_alm (
Alm<xcomplex<T> > &alm,
132 const rotmatrix &mat);
136 template<
typename T>
void rotate_alm (
Alm<xcomplex<T> > &almT,
137 Alm<xcomplex<T> > &almG,
Alm<xcomplex<T> > &almC,
138 const rotmatrix &mat);
void create_alm_pol(const PowSpec &powspec, Alm< xcomplex< T > > &almT, Alm< xcomplex< T > > &almG, Alm< xcomplex< T > > &almC, planck_rng &rng)
void applyCosineWindow(Alm< xcomplex< T > > &alm, int lmin, int lmax)
void extract_powspec(const Alm< xcomplex< T > > &alm, PowSpec &powspec)
void smoothWithGauss(Alm< xcomplex< T > > &alm, double fwhm)
void extract_crosspowspec(const Alm< xcomplex< T > > &alm1, const Alm< xcomplex< T > > &alm2, PowSpec &powspec)
void rotate_alm(Alm< xcomplex< T > > &alm, double psi, double theta, double phi)
void create_alm(const PowSpec &powspec, Alm< xcomplex< T > > &alm, planck_rng &rng)