% -*- mode: Noweb; noweb-code-mode: c-mode -*- @ \index{pyramid} \section{The files} \label{sec:files} \subsection{Header} \label{sec:header} <>= #ifndef __PYRAMID__ #define __PYRAMID__ #include "imaging.h" #include "centroiding.h" struct pyramid { <> void setup(int N_PX_PUPIL, int _N_PUPIL_SAMPLING_, float _modulation_, int _modulation_sampling_, float _alpha_, int N_GS); void cleanup(void); }; #endif // __PYRAMID__ @ \subsection{Source} \label{sec:source} <>= #include "pyramid.h" <> <> @ \section{Parameters} \label{sec:parameters} \index{pyramid!pyramid} The parameters of the [[pyramid]] structure are: \begin{itemize} \item the pupil sampling with the pyramid <>= int N_PX_LENSLET; @ \item the linear number of equivalent subaperture <>= int N_SIDE_LENSLET; @ \item the pyramid modulation amplitude in units of $\lambda/D$ <>= float modulation; @ \item the number of point sampling the circular modulation <>= int modulation_sampling; @ \item the pyramid detector <>= imaging camera; @ \item the slopes container <>= //centroiding data; @ \item the pyramid vertex angle <>= float alpha; @ \end{itemize} \section{Functions} \label{sec:functions} \subsection{Setup \& Cleanup} \label{sec:setup--cleanup} \index{pyramid!pyramid!setup} <>= void pyramid::setup(int N_SIDE_LENSLET_, int _N_PX_LENSLET_, float _modulation_, int _modulation_sampling_, float _alpha_, int N_GS) { N_PX_LENSLET = _N_PX_LENSLET_; N_SIDE_LENSLET = N_SIDE_LENSLET_; modulation = _modulation_; modulation_sampling = _modulation_sampling_; alpha = _alpha_; camera.setup(N_PX_LENSLET-1,1,4,N_PX_LENSLET*4,N_PX_LENSLET/N_SIDE_LENSLET,N_GS); //data.setup(N_SIDE_LENSLET*2, N_GS); } @ \index{pyramid!pyramid!cleanup} <>= void pyramid::cleanup(void) { INFO("@(CEO)>pyramid: freeing memory!\n"); INFO(" |-"); camera.cleanup(); INFO(" |-"); //data.cleanup(); } @ \subsection{Input/Output} \label{sec:inputoutput} \section{Tests} \label{sec:tests}