113 map<vector<int>, cufftHandle *> ftlgskern_plans,
float xpos,
114 float ypos,
float lambda,
float mag,
float zerop,
long size,
115 float noise,
long seed,
float G,
float thetaML,
float dx,
138 map<vector<int>, cufftHandle *> campli_plans,
139 map<vector<int>, cufftHandle *> fttotim_plans) = 0;
156 float *mask,
float scale,
int *istart,
int *jstart,
157 int *ivalid,
int *jvalid,
int nphase,
int npup,
int Nfft,
159 int fillcamplipup(cuFloatComplex *amplipup, cuFloatComplex *phase,
float *offset,
160 int *istart,
int *jstart,
161 int *ivalid,
int *jvalid,
int nphase,
int N,
int Nfft,
163 int fillfsamplipup(cuFloatComplex *d_odata,
float *idata,
float *mask,
float scale,
165 int indexfill(cuFloatComplex *d_odata, cuFloatComplex *d_idata,
int *indx,
167 int fillbincube(
float *bcube, cuFloatComplex *hrimage,
int *indxpix,
int Nfft,
168 int Npix,
int Nrebin,
int Nsub,
CarmaDevice *device);
170 cuFloatComplex *hrimage,
int *indxpix,
int Nfft,
int Npix,
172 int fillbinimg(
float *bimage,
float *bcube,
int npix,
int nsub,
int Nsub,
173 int *ivalid,
int *jvalid,
bool add,
CarmaDevice *device);
176 int *ivalid,
int *jvalid,
bool add,
CarmaDevice *device);
178 float *bcube,
int npix,
int nsub,
int Nsub,
int *ivalid,
179 int *jvalid,
int nim,
bool add,
CarmaDevice *device);
183 int digitalize(T *camimg,
float *binimg,
float *dark,
float *flat,
184 int max_flux_per_pix,
int max_pix_value,
int N,
CarmaDevice *device);
188 void subap_reduce(
int size,
int threads,
int blocks, T *d_idata, T *d_odata,
193 T *d_idata, T *d_odata);
196 void subap_reduce(
int size,
int threads,
int blocks, T *d_idata, T *d_odata,
204 void subap_reduce(
int size,
int threads,
int blocks, T *d_idata, T *d_odata,
208 void phase_reduce(
int threads,
int blocks, T *d_idata, T *d_odata,
int *indx,
212 void phase_derive(
int size,
int threads,
int blocks,
int n, T *d_idata,
213 T *d_odata,
int *indx, T *mask, T alpha,
float *fluxPerSub);
216 void phase_project(
int nphase,
int nvalid, T *d_idata, T *d_odata,
int *indx,
217 T *d_ttprojmat, T *d_ttprojvec,
CarmaDevice *device);
219 template <
class Tout,
class Tin>
220 void pyr_getpup(Tout *d_odata, Tin *d_idata, Tout *d_offsets, Tin *d_pup,
223 template <
class Tout,
class Tin>
224 void pyr_getpup(Tout *d_odata, Tin *d_idata, Tin *d_pup,
int np,
int N,
225 float lambda,
float cx,
float cy,
CarmaDevice *device);
228 void pyr_rollmod(T *d_odata, T *d_idata, T *d_mask,
float cx,
float cy,
int np,
232 void pyr_fillbin(T *d_odata, T *d_idata,
int nrebin,
int np,
int ns,
int nim,
241 const int rebin,
const bool add,
CarmaDevice *device);
243 template <
class Tin,
class Tout>
244 void pyr_abs2(Tout *d_odata, Tin *d_idata, Tout fact,
int ns,
int nim,
247 template <
class Tout,
class Tin>
256 template <
class Tout,
class Tin>
257 void pyr_abs(Tout *d_odata, Tin *d_idata,
int ns,
int nim,
260 template <
class Tout,
class Tin>
275 void pyr_fact(cuFloatComplex *d_data,
float fact,
int n,
int nim,
277 void pyr_fact(
float *d_data,
float fact1,
float *fact2,
int n,
int nim,
280 template <
class Tin,
class Tout>
281 void roof_abs2(Tout *d_odata, Tin *d_idata, Tout fact,
int ns,
int nim,
289 void roof_rollmod(T *d_odata, T *d_idata, T *d_mask,
float cx,
float cy,
int np,
293 void roof_fillbin(T *d_odata, T *d_idata,
int nrebin,
int np,
int ns,
int nim,
297 float *img,
int *validx,
int *validy,
int Nim,
int Npix,
this file provides tools to CarmaObj
this class provides the context in which CarmaObj are created
this class provides the stream features to CarmaObj
this class provides the atmos features to COMPASS
this class provides the source features to COMPASS
this class provides the telescope features to COMPASS
this class provides the wfs features to COMPASS
CarmaObj< float > * d_ttprojmat
std::vector< CarmaObj< float > * > d_pupil_ngpu
CarmaObj< float > * d_binimg_notnoisy
cufftHandle * fttotim_plan
int slopes_geom(float *slopes, int type=0)
CarmaObj< float > * d_dark
int set_binimg(float *binimg, int nElem)
CarmaObj< float > * d_sincar
CarmaObj< int > * d_hrmap
CarmaObj< float > * d_submask
int set_dark(float *dark, int nElem)
CarmaObj< float > * d_slopes
int load_kernels(float *lgskern)
CarmaObj< float > * d_intensities
CarmaObj< cuFloatComplex > * d_fttotim
cufftHandle * campli_plan
CarmaObj< cuFloatComplex > * d_camplifoc
int sensor_trace(int rst)
CarmaObj< uint16_t > * d_camimg
int set_max_flux_per_pix(int max_flux_per_pix)
CarmaObj< int > * d_validsubsy
CarmaContext * current_context
int sensor_trace(SutraDms *ydm, int rst)
int set_pupil(float *pupil)
int set_max_pix_value(int max_pix_value)
CarmaObj< float > * d_offsets
int set_flat(float *flat, int nElem)
int sensor_trace(SutraAtmos *atmos, SutraDms *ydms)
CarmaObj< float > * d_flat
CarmaObj< float > * d_ttprojvec
int slopes_geom(int type=0)
virtual int allocate_buffers(map< vector< int >, cufftHandle * > campli_plans, map< vector< int >, cufftHandle * > fttotim_plans)=0
CarmaObj< float > * d_binimg
CarmaObj< float > * d_pupil
CarmaObj< cuFloatComplex > * d_camplipup
CarmaHostObj< float > * image_telemetry
int wfs_initgs(CarmaObj< float > *d_lgskern, CarmaObj< cuFloatComplex > *d_ftlgskern, map< vector< int >, cufftHandle * > ftlgskern_plans, float xpos, float ypos, float lambda, float mag, float zerop, long size, float noise, long seed, float G, float thetaML, float dx, float dy)
CarmaObj< cuFloatComplex > * d_ftkernel
CarmaObj< int > * d_phasemap
SutraWfs(CarmaContext *context, SutraTelescope *d_tel, CarmaObj< cuFloatComplex > *d_camplipup, CarmaObj< cuFloatComplex > *d_camplifoc, CarmaObj< cuFloatComplex > *d_fttotim, string type, long nxsub, long nvalid, long npix, long nphase, long nrebin, long nfft, long ntot, long npup, float pdiam, float nphotons, float nphot4imat, int lgs, bool fakecam, int max_flux_per_pix, int max_pix_value, bool is_low_order, bool roket, int device)
virtual int comp_generic()=0
CarmaObj< int > * d_validsubsx
virtual int comp_image(bool noise=true)=0
int set_noise(float noise, long seed)
int set_fakecam(bool fakecam)
CarmaObj< float > * d_fluxPerSub
virtual int define_mpi_rank(int rank, int size)=0
int sensor_trace(SutraAtmos *yatmos)
virtual int fill_binimage(int async)=0
CarmaObj< float > * d_bincube
int pyr_fillbinimg(T *bimage, const T *bcube, const int nxsub, const bool add, CarmaDevice *device)
void phase_reduce(int threads, int blocks, T *d_idata, T *d_odata, int *indx, T alpha)
void roof_rollmod(T *d_odata, T *d_idata, T *d_mask, float cx, float cy, int np, int ns, CarmaDevice *device)
int indexfill(cuFloatComplex *d_odata, cuFloatComplex *d_idata, int *indx, int nx, int Nx, int N, CarmaDevice *device)
void roof_fillbin(T *d_odata, T *d_idata, int nrebin, int np, int ns, int nim, CarmaDevice *device)
void pyr_submask3d(Tout *d_odata, Tin *d_mask, int n, int nim, CarmaDevice *device)
void pyr_abs(Tout *d_odata, Tin *d_idata, int ns, int nim, CarmaDevice *device)
int fillcamplipup(cuFloatComplex *amplipup, float *phase, float *offset, float *mask, float scale, int *istart, int *jstart, int *ivalid, int *jvalid, int nphase, int npup, int Nfft, int Ntot, CarmaDevice *device, int offset_phase)
void pyr_submaskpyr(T *d_odata, T *d_mask, int n, CarmaDevice *device)
int fillbincube_async(CarmaStreams *streams, float *bcube, cuFloatComplex *hrimage, int *indxpix, int Nfft, int Npix, int Nrebin, int Nsub, CarmaDevice *device)
void subap_reduce_async(int threads, int blocks, CarmaStreams *streams, T *d_idata, T *d_odata)
void subap_reduce_new(int size, int threads, int blocks, T *d_idata, T *d_odata, T thresh, CarmaDevice *device)
void phase_derive(int size, int threads, int blocks, int n, T *d_idata, T *d_odata, int *indx, T *mask, T alpha, float *fluxPerSub)
void apply_submask(Tout *d_odata, Tin *d_mask, int n, CarmaDevice *device)
void pyr_fact(T *d_data, T fact, int n, int nim, CarmaDevice *device)
int fillfsamplipup(cuFloatComplex *d_odata, float *idata, float *mask, float scale, int Nfft, int N, CarmaDevice *device)
int fillbinimg_async(CarmaStreams *streams, CarmaObj< float > *bimage, CarmaObj< float > *bcube, int npix, int nsub, int Nsub, int *ivalid, int *jvalid, bool add, CarmaDevice *device)
void subap_reduce(int size, int threads, int blocks, T *d_idata, T *d_odata, CarmaDevice *device)
void roof_intensities(T *d_odata, T *d_idata, int *subindx, int *subindy, int ns, int nvalid, int nim, CarmaDevice *device)
int convolve_cube(cuFloatComplex *d_odata, cuFloatComplex *d_idata, int N, int n, CarmaDevice *device)
void roof_abs2(Tout *d_odata, Tin *d_idata, Tout fact, int ns, int nim, CarmaDevice *device)
void copy_imgin_binimg(float *binimg, int *validsubsx, int *validsubsy, int Nb, float *img, int *validx, int *validy, int Nim, int Npix, CarmaDevice *device)
int fillbinimg(float *bimage, float *bcube, int npix, int nsub, int Nsub, int *ivalid, int *jvalid, bool add, CarmaDevice *device)
void pyr_rollmod(T *d_odata, T *d_idata, T *d_mask, float cx, float cy, int np, int ns, CarmaDevice *device)
void pyr_fillbin(T *d_odata, T *d_idata, int nrebin, int np, int ns, int nim, CarmaDevice *device)
void phase_project(int nphase, int nvalid, T *d_idata, T *d_odata, int *indx, T *d_ttprojmat, T *d_ttprojvec, CarmaDevice *device)
void pyr_getpup(Tout *d_odata, Tin *d_idata, Tout *d_offsets, Tin *d_pup, int np, float lambda, CarmaDevice *device)
void pyr_intensities(T *d_odata, T *d_idata, int *subindx, int *subindy, int ns, int nvalid, int nim, CarmaDevice *device)
int fillbincube(float *bcube, cuFloatComplex *hrimage, int *indxpix, int Nfft, int Npix, int Nrebin, int Nsub, CarmaDevice *device)
void pyr_abs2(Tout *d_odata, Tin *d_idata, Tout fact, int ns, int nim, CarmaDevice *device)
int digitalize(T *camimg, float *binimg, float *dark, float *flat, int max_flux_per_pix, int max_pix_value, int N, CarmaDevice *device)