17 #ifndef _SUTRA_CONTROLLER_GENERIC_H_
18 #define _SUTRA_CONTROLLER_GENERIC_H_
23 template <
typename Tcomp,
typename Tout>
50 int *idx_dms,
int ndm,
int *idx_centro,
int ncentro,
int nstates);
71 template <
typename Q = Tcomp>
72 typename std::enable_if<!std::is_same<Q, half>::value,
int>::type
73 fill_cmatPadded_impl() {
76 template <
typename Q = Tcomp>
77 typename std::enable_if<std::is_same<Q, half>::value,
int>::type
78 fill_cmatPadded_impl();
82 void pad_cmat(T *idata,
int m,
int n, T *odata,
int m2,
int n2,
this class provides the context in which CarmaObj are created
this class provides the controller features to COMPASS
this class provides the controller_generic features to COMPASS
std::vector< CarmaObj< Tcomp > * > d_cmat_ngpu
int set_leaky_factor(Tcomp factor)
std::vector< cudaStream_t > streams
sutra_controller_generic(CarmaContext *context, long nslope, long nactu, float delay, SutraDms *dms, int *idx_dms, int ndm, int *idx_centro, int ncentro, int nstates)
cudaEvent_t start_mvm_event
~sutra_controller_generic()
CarmaObj< Tcomp > * d_matE
int comp_com()
!!! YOU MUST set d_centroids before calling it!!!!
CarmaObj< Tcomp > * d_compbuff2
std::vector< CarmaObj< Tcomp > * > d_centroids_ngpu
sutra_controller_generic(const sutra_controller_generic &controller)
int set_modal_gains(float *gain)
CarmaObj< Tcomp > * d_compbuff
CarmaObj< Tcomp > * d_cmatPadded
int set_cmat(float *cmat)
CarmaObj< Tcomp > * d_cmat
std::vector< int > P2Pdevices
std::vector< cudaEvent_t > events
CarmaObj< Tcomp > * d_decayFactor
int set_decayFactor(float *decayFactor)
int set_commandlaw(string law)
int set_imat(float *imat)
CarmaObj< Tcomp > * d_olmeas
CarmaObj< Tcomp > * d_imat
std::vector< CarmaObj< Tcomp > * > d_err_ngpu
CarmaObj< Tcomp > * d_gain
int set_matE(float *matE)
void pad_cmat(T *idata, int m, int n, T *odata, int m2, int n2, CarmaDevice *device)