Commit 6735ca6f authored by Jean-Eric Campagne's avatar Jean-Eric Campagne
Browse files

update doc accourding to Tex MacDown settings

parent 7871eeca
......@@ -12,78 +12,75 @@ The original work by **Boris Leistedt** and **Jason D. McEwen** ([see the ArXiv
Mathematics in summary
----------------
Any function \f$f(r,\Omega)\f$ square-integrable on \f$\mathrm{B}^3 = \mathrm{R}^+ \times [0,\pi] \times [0,2\pi)\f$ can be decomposed as:
Any function $f(r,\Omega)$ square-integrable on $\mathrm{B}^3 = \mathrm{R}^+ \times [0,\pi] \times [0,2\pi)$ can be decomposed as:
\f{eqnarray}
$$\begin{eqnarray}
f(r,\Omega) &=& \sum_{n=0}^\infty \sum_{l=0}^{\infty}\sum_{m=-l}^{l}\ f_{lmn}\ K_{lmn}(r,\Omega) \label{eq:FLagfulla}\\
f_{lmn} &=& \int_{\mathrm{B}^3} dr d\Omega\ r^2\ f(r,\Omega)\ K^\ast_{lmn}(r,\Omega)
\label{eq:FLagfullb}
\f}
\end{eqnarray}$$
based on the orthogonality of the set of functions
\f{equation}
$$\begin{equation}
K_{lmn}(r,\Omega) \equiv Y_{l,m}(\Omega)\times {\cal L}_n(r)
\label{eq:FLagOrthoFunc}
\f}
using the spherical harmonic functions \f$Y_{l,m}\f$ and the genralized Laguerre functions \f${\cal L}_n\f$
\end{equation}$$
using the spherical harmonic functions $Y_{l,m}$ and the genralized Laguerre functions ${\cal L}_n$
\f{eqnarray}
$$\begin{eqnarray}
Y_{l,m}(\Omega) &=& \lambda_{lm}(\theta) e^{i m\phi} = \sqrt{\frac{2 l +1}{4 \pi}\frac{(l-m)!}{(l+m)!}}P_l^m({\cos \theta}) e^{i m\phi} \\
{\cal L}_n(r) &=& \sqrt{\frac{n!}{(n+\alpha)!}} e^{-r/2} L_n^{(\alpha)}(r)
\f}
\end{eqnarray}$$
with \f$ L_n^{(\alpha)}(r)\f$ the generalized Laguerre polynomials (notice that by default \f$ \alpha = 2\f$).
with $ L_n^{(\alpha)}(r)$ the generalized Laguerre polynomials (notice that by default $ \alpha = 2$).
For bnad-limited functions the discret sums are truncated with \f$ l <L\f$ and \f$ n < N\f$ (notice the L band-limit definition is not the same used for instance in `libsharp`). Focusing on the radial part only, one gets
\f[
For bnad-limited functions the discret sums are truncated with $ l <L$ and $ n < N$ (notice the L band-limit definition is not the same used for instance in `libsharp`). Focusing on the radial part only, one gets
$$
f(r) = \sum_{n=0}^{N-1} f_n\ {\cal L}_n^{(\alpha)}(r)
\f]
and the r-values are the roots of the generalized Laguerre polynomial of order \f$N\f$ noted \f$r_i\f$ with i in [0,N-1]. From the orthogonality of the Laguerre functions, it yields the Gauss-Laguerre quadrature
\f[
$$
and the r-values are the roots of the generalized Laguerre polynomial of order $N$ noted $r_i$ with $i$ in $[0,N-1]$. From the orthogonality of the Laguerre functions, it yields the Gauss-Laguerre quadrature
$$
f_n = \sum_{i=0}^{N-1} w_i\ f(r_i)\ {\cal L}^{(\alpha)}_n (r_i) \quad\quad n\in \{ 0,\dots, N-1\}
\f]
$$
with the weight
\f[
$$
w_i = \frac{(N + \alpha)!}{N!(N+1)^2}\frac{r_i e^{r_i}}{\left[L^{(\alpha)}_{N+1}(r_i)\right]^2}
\f]
$$
The Spherical Harmonic part is done by `libsharp` and the reader is invited to have a look at the reference mentionned in the introduction.
The combined transformation (spherical and Laguerre) can be summarized by the following schema:
![img def](../fig-schema.png "Schema of global Analysis and Synthesis")
![img def](./fig-schema.png "Schema of global Analysis and Synthesis")
+ **Analysis**:
The analysis process starts by gathering the 3D pixels real values \f$f_{ijk} \equiv f(\theta_i, \phi_j, r_k)\f$
where \f$r_k\f$ (\f$k\in\{0,\dots,N-1\}\f$) are the \f$N\f$ Laguerre zeros of \f$L_N(x)\f$ and \f$(\theta_i, \phi_j)\f$
are the 2D angles defined by a pixelization scheme.
For instance, one can use the ECP Fejer's sum rule with \f$N_\theta = 2L-1\f$ colatitude rings of \f$N_\phi \geq 2L-1\f$ iso-latitude pixels.
The analysis process starts by gathering the 3D pixels real values $f_{ijk} \equiv f(\theta_i, \phi_j, r_k)$ where $r_k$ ($k\in\{0,\dots,N-1\}$) are the $N$ Laguerre zeros of $L_N(x)$ and $(\theta_i, \phi_j)$ are the 2D angles defined by a pixelization scheme. For instance, one can use the ECP Fejer's sum rule with $N_\theta = 2L-1$ colatitude rings of $N_\phi \geq 2L-1$ iso-latitude pixels.
Then, one proceeds as followed
+ for the \f$k\f$th-radial shell, one performs a Spherical Harmonic decomposition using for instance the `map2alm` routine of `libsharp` to get the set of complex coefficients \f$a_{lmk}=a_{lm}(r_k)\f$ with \f$l\in\{0,\dots,L-1\}\f$ and \f$m \in\{0,\dots,l\}\f$ (the notation remind the underlying 2D Spherical Harmonic transform and the usual way to note the resulting coefficients \f$a_{lm}\f$);
+ for each \f$(l,m)\f$, one uses the set of values \f$a_{lmk}\f$ with \f$k\in\{0,\dots,N-1\}\f$ to determine the \f$f_{lmn}\f$ complex coefficients thanks to the following simplified relation
\f[
+ for the $k$th-radial shell, one performs a Spherical Harmonic decomposition using for instance the `map2alm` routine of `libsharp` to get the set of complex coefficients $a_{lmk}=a_{lm}(r_k)$ with $l\in\{0,\dots,L-1\}$ and $m \in\{0,\dots,l\}$ (the notation remind the underlying 2D Spherical Harmonic transform and the usual way to note the resulting coefficients $a_{lm}$);
+ for each $(l,m)$, one uses the set of values $a_{lmk}$ with $k\in\{0,\dots,N-1\}$ to determine the $f_{lmn}$ complex coefficients thanks to the following simplified relation
$$
f_{lmn} = \sum_{k=0}^{N-1}w_k\ a_{lmk}\ {\cal L}_n^{(\alpha)}(r_k) \quad\quad n\in\{0,\dots,N-1\}
\f]
$$
+ **Synthesis**:
The synthesis also proceeds in two steps as the above detailed analysis. The algorithm receives as input the \f$f_{lmn}\f$ complex coefficients
+ to first compute for each \f$(l,m)\f$ couple of indices the intermediate \f$a_{lmk}\f$ complex values obtained from the Inverse Laguerre Transform:
\f[
The synthesis also proceeds in two steps as the above detailed analysis. The algorithm receives as input the $f_{lmn}$ complex coefficients
+ to first compute for each $(l,m)$ couple of indices the intermediate $a_{lmk}$ complex values obtained from the Inverse Laguerre Transform:
$$
a_{lmk} = \sum_{n=0}^{N-1} f_{lmn}\ {\cal L}_n^{(\alpha)}(r_k)
\f]
+ then, thanks to the Inverse Spherical Harmonic Transform, `alm2map` routine of `libsharp`, ones determines the real \f$f_{ijk}\f$ pixel values.
$$
+ then, thanks to the Inverse Spherical Harmonic Transform, `alm2map` routine of `libsharp`, ones determines the real $f_{ijk}$ pixel values.
We take advantage from the Matrix Multiplication writing of the \f$f_{lmn} \leftrightarrow a_{lmk}\f$ passage to use efficient algorithm or even more efficiently the BLAS-like libraries (OpenBLAS for Linux and the native Accelerate framework on Mac OS X).
We take advantage from the Matrix Multiplication writing of the $f_{lmn} \leftrightarrow a_{lmk}$ passage to use efficient algorithm or even more efficiently the BLAS-like libraries (OpenBLAS for Linux and the native Accelerate framework on Mac OS X).
The main classes in brief
------------------------
+ The LagSHT::LaguerreFuncQuad class deals with the computation of the weights and nodes of the Gauss-Laguerre quadrature with special care of the numerical validity of the computation.
+ The LagSHT::LaguerreTransform class implement the radial Laguerre Transformation part in the forward (Analysis) and backward (Synthesis) direction. The class also provides access to the radial pixelization (methods **R2Index** and **Index2R**) as the k-th shell has the radius (in physical units) \f$R_k\f$:
\f[
+ The LagSHT::LaguerreTransform class implement the radial Laguerre Transformation part in the forward (Analysis) and backward (Synthesis) direction. The class also provides access to the radial pixelization (methods **R2Index** and **Index2R**) as the k-th shell has the radius (in physical units) $R_k$:
$$
R_k = R_{max} \times \frac{r_k}{r_{N-1}}
\f]
with \f$r_k\f$ the k-th roots of the Laguerre polynomial of order N.
$$
with $r_k$ the $k$-th roots of the Laguerre polynomial of order $N$.
+ The *lagsht_spheregeom.h* file includes the different 2D-Sphere pixelization schemes available derived from the LagSHT::BaseGeometry class. This class provides access to the pixelization throw the methods **PixIndexSph** and **PixThetaPhi**. The first method provides the pixel index at a given \f$(\theta, \phi)\f$ position, while the second method does the reverse by providing the \f$(\theta, \phi)\f$ position of a given pixel index.
+ The *lagsht_spheregeom.h* file includes the different 2D-Sphere pixelization schemes available derived from the LagSHT::BaseGeometry class. This class provides access to the pixelization throw the methods **PixIndexSph** and **PixThetaPhi**. The first method provides the pixel index at a given $(\theta, \phi)$ position, while the second method does the reverse by providing the $(\theta, \phi)$ position of a given pixel index.
+ The LagSHT::LaguerreSphericalTransform class performs the combinaison of the Laguerre transform and the Spherical Harmonic transform.
\ No newline at end of file
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment