 |
COMPASS
5.0.0
End-to-end AO simulation tool using GPU acceleration
|
Go to the documentation of this file.
45 #include <sutra_centroider_bpcog.h>
59 template <
typename Tin,
typename T,
typename Tout>
69 float scale,
bool filter_TT,
long device,
73 float scale,
bool filter_TT,
long device,
77 float delay,
long device, std::string typec,
78 SutraDms *dms =
nullptr,
int *idx_dms =
nullptr,
79 int ndm = 0,
int *idx_centro =
nullptr,
int ncentro = 0,
80 int Nphi = 0,
bool wfs_direction =
false,
int nstates = 0);
109 template <
typename Q = T>
110 typename std::enable_if<std::is_same<Q, float>::value,
int>::type
111 do_imat_impl(
int ncntrl,
SutraDms *ydm, std::true_type);
112 int do_imat_impl(
int ncntrl,
SutraDms *ydm, std::false_type);
114 template <
typename Q = T>
115 typename std::enable_if<std::is_same<Q, float>::value,
int>::type
116 do_imat_basis_impl(
int ncntrl,
SutraDms *ydm,
int nModes, T *m2v,
117 T *pushAmpl, std::true_type);
118 int do_imat_basis_impl(
int ncntrl,
SutraDms *ydm,
int nModes, T *m2v,
119 T *pushAmpl, std::false_type);
120 template <
typename Q = T>
121 typename std::enable_if<std::is_same<Q, float>::value,
int>::type
122 do_imat_geom_impl(
int ncntrl,
SutraDms *ydm,
int type, std::true_type);
123 int do_imat_geom_impl(
int ncntrl,
SutraDms *ydm,
int type, std::false_type);
125 template <
typename Q = T>
126 typename std::enable_if<std::is_same<Q, float>::value,
int>::type
127 do_centroids_geom_impl(
int ncntrl, std::true_type);
128 int do_centroids_geom_impl(
int ncntrl, std::false_type);
130 template <
typename Q = T>
131 typename std::enable_if<!std::is_same<Q, half>::value,
int>::type
132 add_centroider_impl(
CarmaContext *context,
long nvalid,
float offset,
133 float scale,
bool filter_TT,
long device,
134 std::string typec,
SutraWfs *wfs, std::false_type);
135 int add_centroider_impl(
CarmaContext *context,
long nvalid,
float offset,
136 float scale,
bool filter_TT,
long device,
137 std::string typec,
SutraWfs *wfs, std::true_type);
139 template <
typename Q = T>
140 typename std::enable_if<!std::is_same<Q, half>::value,
int>::type
143 int nvalid,
int nslope,
int nactu,
float delay,
144 long device, std::string typec,
SutraDms *dms,
145 int *idx_dms,
int ndm,
int *idx_centro,
int ncentro,
146 int Nphi,
bool wfs_direction,
int nstates,
150 int nvalid,
int nslope,
int nactu,
float delay,
151 long device, std::string typec,
SutraDms *dms,
152 int *idx_dms,
int ndm,
int *idx_centro,
int ncentro,
153 int Nphi,
bool wfs_direction,
int nstates,
157 #endif // _SUTRA_RTC_H_
int comp_voltage(int ncntrl)
int comp_images_imat(SutraDms *ydm)
int do_centroids_geom(int ncntrl)
vector< SutraCentroider< Tin, T > * > d_centro
int add_controller(CarmaContext *context, int nvalid, int nslope, int nactu, float delay, long device, std::string typec, SutraDms *dms=nullptr, int *idx_dms=nullptr, int ndm=0, int *idx_centro=nullptr, int ncentro=0, int Nphi=0, bool wfs_direction=false, int nstates=0)
int set_centroids_ref(float *centroids_ref)
this class provides the wfs features to COMPASS
int remove_ref(int ncntrl)
int do_centroids(int ncntrl)
int remove_centroider(int ncentro)
int apply_control(int ncntrl, bool compVoltage=true)
this class provides the context in which CarmaObj are created
int remove_controller(int ncontrol)
int add_centroider(CarmaContext *context, long nvalid, float offset, float scale, bool filter_TT, long device, std::string typec)
int do_clipping(int ncntrl)
int do_calibrate_img(int ncntrl)
int do_imat(int ncntrl, SutraDms *ydms)
vector< SutraController< T, Tout > * > d_control
int do_control(int ncntrl)
int do_centroids(int ncntrl, bool noise)
this class provides the rtc features to COMPASS
int add_centroider(CarmaContext *context, long nvalid, float offset, float scale, bool filter_TT, long device, std::string typec, SutraWfs *wfs)
int do_imat_basis(int ncntrl, SutraDms *ydm, int nModes, T *m2v, T *pushAmpl)
int do_centroids_ref(int ncntrl)
int do_imat_geom(int ncntrl, SutraDms *ydm, int type)