 |
COMPASS
5.0.0
End-to-end AO simulation tool using GPU acceleration
|
Go to the documentation of this file.
42 #ifndef _SUTRA_GAMORA_H_
43 #define _SUTRA_GAMORA_H_
87 int nmodes,
int niter,
float *IFvalue,
int *IFrowind,
88 int *IFcolind,
int IFnz,
float *
d_TT,
float *pupil,
int size,
89 int Npts,
float scale,
float *Btt,
float *covmodes);
98 std::vector<CarmaObj<cuFloatComplex> *> d_amplipup_ngpu;
99 std::vector<CarmaObj<cuFloatComplex> *> d_newmodek_ngpu;
100 std::vector<CarmaObj<float> *> d_Btt_ngpu;
101 std::vector<CarmaObj<float> *> d_covmodes_ngpu;
102 std::vector<CarmaObj<float> *> d_term1_ngpu;
103 std::vector<CarmaObj<float> *> d_term2_ngpu;
104 std::vector<CarmaSparseObj<float> *> d_IF_ngpu;
105 std::vector<CarmaObj<float> *> d_TT_ngpu;
106 std::vector<CarmaObj<float> *> d_phase_ngpu;
107 std::vector<CarmaObj<int> *> d_wherephase_ngpu;
108 std::vector<CarmaObj<cuFloatComplex> *> d_pupfft_ngpu;
109 std::vector<CarmaObj<cuFloatComplex> *> d_Dphi_ngpu;
113 float scale,
int Npts,
int nx,
int Nx,
int puponly,
115 int cumulpsf(
float *d_odata, cuFloatComplex *d_idata,
int N,
117 int abs2complex(cuFloatComplex *d_odata, cuFloatComplex *d_idata,
int N,
120 int fill_mask(
float *d_odata,
float *d_idata,
int N,
int norm,
122 int modulus2(
float *d_odata, cuFloatComplex *d_idata,
int N,
124 int pow2(cuFloatComplex *d_odata, cuFloatComplex *d_idata,
int N,
127 cuFloatComplex *d_pupfft,
int N,
CarmaDevice *device);
128 int add2Dphi(cuFloatComplex *d_odata,
float *d_term1,
float *d_term2,
float e,
131 float *d_mask,
float scale,
int N,
CarmaDevice *device);
132 int ifftscale(cuFloatComplex *d_odata,
float scale,
int N,
int pow2(cuFloatComplex *d_odata, cuFloatComplex *d_idata, int N, CarmaDevice *device)
CarmaSparseObj< float > * d_IF
CarmaObj< float > * d_Btt
int add2Dphi(cuFloatComplex *d_odata, float *d_term1, float *d_term2, float e, int N, CarmaDevice *device)
int abs2complex(cuFloatComplex *d_odata, cuFloatComplex *d_idata, int N, CarmaDevice *device)
this class provides the gamora features to COMPASS
CarmaObj< float > * d_covmodes
CarmaObj< float > * d_psf
CarmaObj< cuFloatComplex > * d_amplipup
void compute_Dphi_on_mode_k(int k)
SutraGamora(CarmaContext *context, int device, char *type, int nactus, int nmodes, int niter, float *IFvalue, int *IFrowind, int *IFcolind, int IFnz, float *d_TT, float *pupil, int size, int Npts, float scale, float *Btt, float *covmodes)
CarmaObj< float > * d_term2
CarmaObj< int > * d_wherephase
int cumulpsf(float *d_odata, cuFloatComplex *d_idata, int N, CarmaDevice *device)
int real(float *d_odata, cuFloatComplex *d_idata, int N, CarmaDevice *device)
int psf_rec_roket(float *err)
int fill_mask(float *d_odata, float *d_idata, int N, int norm, CarmaDevice *device)
CarmaContext * current_context
int fill_term1(float *d_odata, cuFloatComplex *d_idata, cuFloatComplex *d_pupfft, int N, CarmaDevice *device)
CarmaObj< float > * d_err
CarmaObj< cuFloatComplex > * d_newmodek
CarmaObj< cuFloatComplex > * d_pupfft
this class provides the context in which CarmaObj are created
int ifftscale(cuFloatComplex *d_odata, float scale, int N, CarmaDevice *device)
CarmaObj< float > * d_otftel
CarmaObj< float > * d_term1
int fill_amplipup(cuFloatComplex *amplipup, float *phase, int *wherephase, float scale, int Npts, int nx, int Nx, int puponly, CarmaDevice *device)
CarmaObj< float > * d_eigenvals
CarmaHostObj< float > * h_eigenvals
int computeOTFvii(float *d_otfVii, cuFloatComplex *d_Dphi, float *d_otftel, float *d_mask, float scale, int N, CarmaDevice *device)
CarmaObj< cuFloatComplex > * d_Dphi
CarmaObj< float > * d_mask
CarmaObj< float > * d_otfVii
CarmaObj< float > * d_phase
int modulus2(float *d_odata, cuFloatComplex *d_idata, int N, CarmaDevice *device)