17 #ifndef _SUTRA_CORONAGRAPH_H_
18 #define _SUTRA_CORONAGRAPH_H_
68 float* amplitude,
float* mask,
int dimx,
int dimy,
CarmaDevice *device);
69 int remove_complex_avg(cuFloatComplex *electric_field, cuFloatComplex sum,
float* mask,
int Nvalid,
this file provides the cublas features to CarmaObj
this class provides the context in which CarmaObj are created
this class provides the coronagraph features to COMPASS
int mft(CarmaObj< cuFloatComplex > *A, CarmaObj< cuFloatComplex > *B, CarmaObj< cuFloatComplex > *Ainput, CarmaObj< cuFloatComplex > *input, CarmaObj< cuFloatComplex > *output, float norm)
CarmaObj< float > * d_pupil
CarmaObj< float > * d_psf_le
virtual int compute_psf(bool accumulate)=0
CarmaObj< cuFloatComplex > * d_electric_field
CarmaObj< float > * d_image_se
CarmaObj< cuFloatComplex > * d_complex_image
std::vector< CarmaObj< float > * > amplitude
int set_amplitude(float *amplitude)
CarmaObj< float > * d_image_le
CarmaObj< float > * d_psf_se
CarmaContext * current_context
std::vector< float > wavelength
int compute_electric_field(int wavelengthIndex)
virtual int compute_image(bool accumulate)=0
virtual ~SutraCoronagraph()=default
SutraCoronagraph(CarmaContext *context, std::string type, SutraSource *d_source, int dimx, int dimy, float *wavelength, int nWavelength, int device)
this class provides the source features to COMPASS
int remove_complex_avg(cuFloatComplex *electric_field, cuFloatComplex sum, float *mask, int Nvalid, int dimx, int dimy, CarmaDevice *device)
int compute_electric_field(cuFloatComplex *electric_field, float *phase_opd, float scale, float *amplitude, float *mask, int dimx, int dimy, CarmaDevice *device)
int accumulate_abs2(cuFloatComplex *img, float *abs2img, int N, CarmaDevice *device)
int apply_mask(cuFloatComplex *electric_field, float *mask, int N, CarmaDevice *device)