mirror of
https://bitbucket.org/cosmicvoids/vide_public.git
synced 2025-07-05 07:41:11 +00:00
Imported healpix tree
This commit is contained in:
parent
4182c30485
commit
4bfb62f177
136 changed files with 26534 additions and 0 deletions
125
external/healpix/Healpix_cxx/alm_powspec_tools.h
vendored
Normal file
125
external/healpix/Healpix_cxx/alm_powspec_tools.h
vendored
Normal file
|
@ -0,0 +1,125 @@
|
|||
/*
|
||||
* This file is part of Healpix_cxx.
|
||||
*
|
||||
* Healpix_cxx is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* Healpix_cxx is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with Healpix_cxx; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*
|
||||
* For more information about HEALPix, see http://healpix.jpl.nasa.gov
|
||||
*/
|
||||
|
||||
/*
|
||||
* Healpix_cxx is being developed at the Max-Planck-Institut fuer Astrophysik
|
||||
* and financially supported by the Deutsches Zentrum fuer Luft- und Raumfahrt
|
||||
* (DLR).
|
||||
*/
|
||||
|
||||
/*! \file alm_powspec_tools.h
|
||||
* Copyright (C) 2003, 2004, 2005 Max-Planck-Society
|
||||
* \author Martin Reinecke
|
||||
*/
|
||||
|
||||
#ifndef PLANCK_ALM_POWSPEC_TOOLS_H
|
||||
#define PLANCK_ALM_POWSPEC_TOOLS_H
|
||||
|
||||
#include "xcomplex.h"
|
||||
|
||||
template<typename T> class Alm;
|
||||
class PowSpec;
|
||||
class planck_rng;
|
||||
class rotmatrix;
|
||||
|
||||
/*! \defgroup alm_ps_group Conversions between a_lm and power spectra */
|
||||
/*! \{ */
|
||||
|
||||
/*! Creates a Gaussian realisation of the input power spectrum \a powspec,
|
||||
using the random number generator \a rng, and returns the result
|
||||
in \a alm. */
|
||||
template<typename T> void create_alm (const PowSpec &powspec,
|
||||
Alm<xcomplex<T> > &alm, planck_rng &rng);
|
||||
|
||||
/*! Creates a Gaussian realisation of the polarised input power spectrum
|
||||
\a powspec, using the random number generator \a rng, and returns the
|
||||
result in \a almT, \a almG and \a almC. */
|
||||
template<typename T> void create_alm_pol
|
||||
(const PowSpec &powspec,
|
||||
Alm<xcomplex<T> > &almT,
|
||||
Alm<xcomplex<T> > &almG,
|
||||
Alm<xcomplex<T> > &almC,
|
||||
planck_rng &rng);
|
||||
|
||||
/*! Returns the unpolarised power spectrum of \a alm in \a powspec. */
|
||||
template<typename T> void extract_powspec
|
||||
(const Alm<xcomplex<T> > &alm, PowSpec &powspec);
|
||||
/*! Returns the cross power spectrum of \a alm1 and \a alm2 in \a powspec. */
|
||||
template<typename T> void extract_crosspowspec
|
||||
(const Alm<xcomplex<T> > &alm1,
|
||||
const Alm<xcomplex<T> > &alm2, PowSpec &powspec);
|
||||
/*! Returns the polarised power spectrum of \a almT, \a almG and \a almC
|
||||
in \a powspec. */
|
||||
template<typename T> void extract_powspec
|
||||
(const Alm<xcomplex<T> > &almT,
|
||||
const Alm<xcomplex<T> > &almG,
|
||||
const Alm<xcomplex<T> > &almC,
|
||||
PowSpec &powspec);
|
||||
|
||||
/*! \} */
|
||||
|
||||
/*! Applies a convolution with a Gaussian beam with an FWHM of
|
||||
\a fwhm (in radian) to \a alm.
|
||||
\note If \a fwhm<0, a deconvolution with \a -fwhm is performed.
|
||||
\relates Alm */
|
||||
template<typename T> void smoothWithGauss
|
||||
(Alm<xcomplex<T> > &alm, double fwhm);
|
||||
/*! Applies a convolution with a Gaussian beam with an FWHM of
|
||||
\a fwhm (in radian) to \a almT, \a almG and \a almC.
|
||||
\note If \a fwhm<0, a deconvolution with \a -fwhm is performed.
|
||||
\relates Alm */
|
||||
template<typename T> void smoothWithGauss
|
||||
(Alm<xcomplex<T> > &almT,
|
||||
Alm<xcomplex<T> > &almG,
|
||||
Alm<xcomplex<T> > &almC,
|
||||
double fwhm);
|
||||
|
||||
/*! Rotates \a alm through the Euler angles \a psi, \a theta and \a phi.
|
||||
The Euler angle convention is right handed, rotations are active.
|
||||
- \a psi is the first rotation about the z-axis (vertical)
|
||||
- then \a theta about the ORIGINAL (unrotated) y-axis
|
||||
- then \a phi about the ORIGINAL (unrotated) z-axis (vertical)
|
||||
\relates Alm */
|
||||
template<typename T> void rotate_alm (Alm<xcomplex<T> > &alm,
|
||||
double psi, double theta, double phi);
|
||||
|
||||
/*! Rotates \a almT, \a almG and \a almC through the Euler angles
|
||||
\a psi, \a theta and \a phi.
|
||||
The Euler angle convention is right handed, rotations are active.
|
||||
- \a psi is the first rotation about the z-axis (vertical)
|
||||
- then \a theta about the ORIGINAL (unrotated) y-axis
|
||||
- then \a phi about the ORIGINAL (unrotated) z-axis (vertical)
|
||||
\relates Alm */
|
||||
template<typename T> void rotate_alm (Alm<xcomplex<T> > &almT,
|
||||
Alm<xcomplex<T> > &almG, Alm<xcomplex<T> > &almC,
|
||||
double psi, double theta, double phi);
|
||||
|
||||
/*! Rotates \a alm through the rotation matrix \a mat.
|
||||
\relates Alm */
|
||||
template<typename T> void rotate_alm (Alm<xcomplex<T> > &alm,
|
||||
const rotmatrix &mat);
|
||||
|
||||
/*! Rotates \a almT, \a almG and \a almC through the rotation matrix \a mat.
|
||||
\relates Alm */
|
||||
template<typename T> void rotate_alm (Alm<xcomplex<T> > &almT,
|
||||
Alm<xcomplex<T> > &almG, Alm<xcomplex<T> > &almC,
|
||||
const rotmatrix &mat);
|
||||
|
||||
#endif
|
Loading…
Add table
Add a link
Reference in a new issue