| 
    mxlib
    
   c++ tools for analyzing astronomical data and other tasks by Jared R. Males. [git repo] 
   | 
 
Tools for modeling wavefront propagation
Classes | |
| class | mx::wfp::fraunhoferPropagator< _wavefrontT > | 
| Class to perform Fraunhofer propagation between pupil and focal planes.  More... | |
| class | mx::wfp::fraunhoferPropagator< _wavefrontT, 1 > | 
| Class to perform Fraunhofer propagation between pupil and focal planes using a GPU.  More... | |
Modules | |
| Point Spread Functions | |
| Coronagraphs | |
| Adaptive Optics | |
| Wavefront Propagation Files | |
Files | |
| file | fraunhoferPropagator.hpp | 
| Declares and defines a class for Fraunhofer propagation of optical wavefronts.  | |
| file | fraunhoferPropagatorCuda.hpp | 
| Declares and defines a class for Fraunhofer propagation of optical wavefronts with Cuda.  | |
| file | imagingArray.hpp | 
| Declares and defines a class for managing images.  | |
| file | imagingUtils.hpp | 
| Utilities for modeling image formation.  | |
Functions | |
| template<typename realT > | |
| realT | mx::wfp::fftPlateScale (size_t pixels, realT metersPerPixel, realT lambda) | 
| Calculate the angular plate scale (radians per pixel) of an image after propagation by FFT.   | |
| template<class arrayT > | |
| int | mx::wfp::circularPupil (arrayT &m, typename arrayT::Scalar eps=0, typename arrayT::Scalar rad=0, typename arrayT::Scalar overscan=0) | 
| Fill in an Eigen-like array with a circular pupil mask.   | |
| template<typename arrayOutT , typename arrayInT > | |
| void | mx::wfp::makeComplexPupil (arrayOutT &complexPupil, const arrayInT &realPupil, int wavefrontSizePixels) | 
| Create a complex pupil plane wavefront from a real amplitude mask.   | |
| template<typename arrayOutT , typename arrayInT > | |
| void | mx::wfp::makeComplexPupil (arrayOutT &complexWavefront, const arrayInT &realAmplitude, const arrayInT &realPhase, int wavefrontSizePixels) | 
| Create a complex wavefront from a real amplitude and a real phase.   | |
| template<typename wavefrontT > | |
| void | mx::wfp::tiltWavefront (wavefrontT &complexWavefront, typename wavefrontT::Scalar::value_type xTilt, typename wavefrontT::Scalar::value_type yTilt) | 
| Apply a tilt to a wavefront.   | |
| int mx::wfp::circularPupil | ( | arrayT & | m, | 
| typename arrayT::Scalar | eps = 0,  | 
        ||
| typename arrayT::Scalar | rad = 0,  | 
        ||
| typename arrayT::Scalar | overscan = 0  | 
        ||
| ) | 
Fill in an Eigen-like array with a circular pupil mask.
Sets any pixel which is at rad <= r < rad+(1.0/overscan) pixels to rho = 1,
| 0 | on success | 
| -1 | on error | 
| m | [in.out] is the allocated Array. Dimensions are used to create the pupil. | |
| [in] | eps | [optional] is the central obscuration. 0-1, default is 0. | 
| [in] | rad | [optional] is the desired radius. If rad <= 0, then the maximum radius based on dimensions of m is used. Default is 0. | 
| [in] | overscan | [optional] overscan in fractional pixels, to include partial pixels on the edge. Default is 0. | 
Definition at line 71 of file imagingUtils.hpp.
References MXE_INVALIDARG, and mxError.
Referenced by mx::AO::sim::pywfsSlopeReconstructor< _floatT >::calcMask(), mx::AO::circularPupil(), mx::wfp::lyotCoronagraph< _realT, _fpmaskFloatT >::makeFocalMask(), mx::wfp::lyotCoronagraph< _realT, _fpmaskFloatT >::optimizeAPLCMC(), and mx::wfp::lyotCoronagraph< _realT, _fpmaskFloatT >::optimizeAPLCMC().
| realT mx::wfp::fftPlateScale | ( | size_t | pixels, | 
| realT | metersPerPixel, | ||
| realT | lambda | ||
| ) | 
Calculate the angular plate scale (radians per pixel) of an image after propagation by FFT.
| realT | a real floating point type | 
| [in] | pixels | the linear dimension of the FFT (including 0 pad, etc.) | 
| [in] | metersPerPixel | the scale of the input wavefront [m/pix] | 
| [in] | lambda | the wavelength of the wavefront [m] | 
Definition at line 53 of file imagingUtils.hpp.
| void mx::wfp::makeComplexPupil | ( | arrayOutT & | complexPupil, | 
| const arrayInT & | realPupil, | ||
| int | wavefrontSizePixels | ||
| ) | 
Create a complex pupil plane wavefront from a real amplitude mask.
The input real amplitude mask is placed in the center of a 0-padded complex array.
| [out] | complexPupil | the complex pupil plane wavefront | 
| [in] | realPupil | a real amplitude mask. | 
| [in] | wavefrontSizePixels | the desired size of the ouput wavefront, should be at least as big as realPupil | 
Definition at line 186 of file imagingUtils.hpp.
Referenced by mx::wfp::lyotCoronagraph< _realT, _fpmaskFloatT >::optimizeAPLCMC(), and mx::wfp::lyotCoronagraph< _realT, _fpmaskFloatT >::optimizeAPLCMC().
| void mx::wfp::makeComplexPupil | ( | arrayOutT & | complexWavefront, | 
| const arrayInT & | realAmplitude, | ||
| const arrayInT & | realPhase, | ||
| int | wavefrontSizePixels | ||
| ) | 
Create a complex wavefront from a real amplitude and a real phase.
The wavefront is placed in the center of a 0-padded complex array.
| [out] | complexWavefront | the complex pupil plane wavefront | 
| [in] | realAmplitude | is the real-valued amplitude. | 
| [in] | realPhase | is the real-valued phase in radians, same size as realAmplitude | 
| [in] | wavefrontSizePixels | the desired size of the ouput wavefront, should be at least as big as the real arrays | 
Definition at line 217 of file imagingUtils.hpp.
| void mx::wfp::tiltWavefront | ( | wavefrontT & | complexWavefront, | 
| typename wavefrontT::Scalar::value_type | xTilt, | ||
| typename wavefrontT::Scalar::value_type | yTilt | ||
| ) | 
Apply a tilt to a wavefront.
| complexWavefront | [in.out] the complex wavefront to tilt, will be modified on output | 
| xTilt | [input] the amount of tilt in the x direction, in pixels | 
| yTilt | [input] the amount of tilt in the y direction, in pixels | 
Definition at line 248 of file imagingUtils.hpp.
References mx::math::six_fifths().