1/*! \mainpage HEALPix C++ documentation
2  <ul>
3  <li>\ref components "Programming interface"
4  <li>\ref uselib "How to use the library in your own codes"
5  <li>\ref facilities "Facilities"
6  </ul>
7 */
8
9/*! \page components Code components
10
11  Classes:
12   - Healpix_Base contains all functionality related to the HEALPix
13     pixelisation which does not require actual map data.
14   - Healpix_Base2 is analogous to Healpix_Base, but allows for much
15     higher resolutions.
16   - Healpix_Map is derived from Healpix_Base and implements
17     additional functionality like change of the ordering scheme, up- and
18     degrading and interpolation.
19   - Alm is used to store spherical harmonic coefficients.
20   - PowSpec is used to store \f$C_l\f$ coefficients.
21
22  Conversions between different data types:
23   - \ref alm_healpix_group "HEALPix maps <-> a_lm".
24   - \ref alm_ps_group "power spectra <-> a_lm".
25
26  FITS I/O:
27   - for \ref healpix_map_fitsio_group "HEALPix Maps"
28   - for \ref alm_fitsio_group "spherical harmonic coefficients"
29   - for \ref powspec_fitsio_group "power spectra"
30*/
31
32/*! \page uselib Using Healpix C++ in your own codes
33
34  In order to use the Healpix library in your own C++ codes, you have to do two
35  things:
36   - \c #include the appropriate header files in your sources. From this
37     documentation it should be evident which ones you have to include for a
38     specific task.
39   - Specify the required libraries when linking your executable. For this
40     release of the software, this should be (order is important!):
41     \verbatim-lhealpix_cxx -lcxxsupport -lsharp -lfftpack -lc_utils -lcfitsio\endverbatim
42*/
43
44/*! \page facilities HEALPix C++ facilities
45
46  \section syn_alm_cxx
47    This program reads a set of \f$C_l\f$ from disk and converts it to
48    a set of \f$a_{lm}\f$.
49
50    \verbinclude syn_alm_cxx.par.txt
51
52  \section alm2map_cxx
53    This program reads a set of \f$a_{lm}\f$ from disk and converts them to
54    a HEALPix map.
55
56    \verbinclude alm2map_cxx.par.txt
57
58  \section anafast_cxx
59    This program performs harmonic analysis of a HEALPix map up to a
60    user-specified maximum spherical harmonic order \f$l_{\mbox{max}}\f$.
61    The integrals are computed on the whole sphere.
62    Scalar, or scalar and tensor, spherical harmonic coefficients are evaluated
63    from the map(s) if the input provides, respectively, only the temperature,
64    or temperature and polarisation maps.
65    The total operation count scales as  \f${\cal {O}}(N_{\mbox{pix}}^{3/2})\f$
66    with a prefactor depending on \f$l_{\mbox{max}}\f$.
67
68    Anafast_cxx reads a file containing the map(s) and produces a file
69    containing the temperature power spectrum \f$C^T_l\f$ and, if requested,
70    also the polarisation power spectra \f$C^E_l\f$, \f$C^B_l\f$ and
71    \f$C^{T\times E}_l\f$. The \f$a_{lm}\f$ coefficients computed during the
72    execution also can be written to a file if requested.
73
74    Anafast_cxx executes an approximate, discrete point-set quadrature on
75    a sphere sampled at the HEALPix pixel centers.
76    Spherical harmonic transforms are computed using recurrence relations for
77    Legendre polynomials on co-latitude (\f$\vartheta\f$) and Fast Fourier
78    transforms on longitude (\f$\varphi\f$).
79
80    Anafast permits two execution options which allow a significant
81    improvement of accuracy of the approximate quadrature performed by
82    this facility:
83
84    - An improved analysis using the provided ring weights, which correct the
85      quadrature on latitude, and/or
86    - An iterative scheme using in succession several backward and forward
87      harmonic transforms of the maps.
88
89    \verbinclude anafast_cxx.par.txt
90
91  \section map2tga
92    This program reads in a HEALPix sky map in FITS format and generates an
93    image in TGA format. map2tga allows the selection of the projection
94    scheme (Mollweide or Gnomonic for small patches of the sky), color
95    table, color bar inclusion, linear or log scaling, maximum and
96    minimum range for the plot and plot-title. The facility provides
97    a command-line interface, but can also read a parameter file.
98
99    \verbinclude map2tga.par.txt
100
101  \section alice3
102    This program visualizes spin-2 fields of the sphere using the line integral
103    convolution (LIC) technique.<br> It was originally written by David Larson and
104    has later been adjusted to output Healpix maps instead of image files.
105
106    \verbinclude alice3_usage.txt
107
108  \section rotalm_cxx
109    Performs a coordinate transformation on a set of \f$a_{lm}\f$.
110
111    \verbatim
112Usage: rotalm_cxx <infile> <outfile> <itransform> <pol>
113Transform 1: Equatorial (2000) -> Galactic   (2000)
114          2: Galactic   (2000) -> Equatorial (2000)
115          3: Equatorial (2000) -> Ecliptic   (2000)
116          4: Ecliptic   (2000) -> Equatorial (2000)
117          5: Ecliptic   (2000) -> Galactic   (2000)
118          6: Galactic   (2000) -> Ecliptic   (2000)
119          7: Equatorial (1950) -> Galactic   (1950)
120          8: Galactic   (1950) -> Equatorial (1950)
121          9: Equatorial (1950) -> Ecliptic   (1950)
122         10: Ecliptic   (1950) -> Equatorial (1950)
123         11: Ecliptic   (1950) -> Galactic   (1950)
124         12: Galactic   (1950) -> Ecliptic   (1950)
125    \endverbatim
126
127  \section mult_alm
128    This program reads a set of (unpolarised or polarised) \f$a_{lm}\f$,
129    removes pixel window functions and/or Gaussian beams, applies different
130    pixel window functions or Gaussian beams, and outputs the result.
131
132    \verbinclude mult_alm.par.txt
133
134  \section smoothing_cxx
135    This program reads a (unpolarised or polarised) HEALPix map, converts it
136    to \f$a_{lm}\f$, performs a smoothing operation with a Gaussian beam,
137    converts the \f$a_{lm}\f$ back to a map and outputs the result.
138
139    \verbinclude smoothing_cxx.par.txt
140
141  \section calc_powspec
142    This program reads one or two sets of \f$a_{lm}\f$, extracts the
143    (unpolarised or polarised) power spectrum or the unpolarised cross power
144    spectrum, and outputs the result.
145
146    \verbatim Usage: calc_powspec <almfile1> [<almfile2>] <powspec_file>\endverbatim
147
148  \section median_filter_cxx
149    This program inputs a HEALPix map, runs a median filter with the desired
150    radius on it and saves the result to another file.
151
152    \verbatim Usage: median_filter_cxx <input map> <output map> <radius in arcmin>\endverbatim
153*/
154