COMPASS  5.4.4
End-to-end AO simulation tool using GPU acceleration
sutra_controller.h File Reference
#include <carma_cublas.h>
#include <carma_host_obj.h>
#include <sutra_centroider.h>
#include <sutra_dm.h>
#include <sutra_utils.h>
#include <sutra_wfs.h>
#include <mutex>
#include <tuple>
#include <deque>
Include dependency graph for sutra_controller.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  SutraController< Tcomp, Tout >
 this class provides the controller features to COMPASS More...
 

Functions

template<typename Tcomp , typename Tout >
std::enable_if< std::is_same< Tcomp, Tout >::value, void >::type init_voltage_impl (CarmaObj< Tout > *&volts, CarmaObj< Tcomp > *comClipped)
 
template<typename Tcomp , typename Tout >
std::enable_if<!std::is_same< Tcomp, Tout >::value, void >::type init_voltage_impl (CarmaObj< Tout > *&volts, CarmaObj< Tcomp > *comClipped)
 
template<typename Tin , typename Tout , std::enable_if_t< std::is_same< Tin, Tout >::value, bool > = true>
void convert_to_voltage (Tin *d_idata, Tout *d_odata, int N, float volt_min, float volt_max, uint16_t val_max, CarmaDevice *device, cudaStream_t stream)
 
int shift_buf (float *d_data, int offset, int N, CarmaDevice *device)
 
int fill_filtmat (float *filter, int nactu, int N, CarmaDevice *device)
 
int TT_filt (float *mat, int n, CarmaDevice *device)
 
int fill_cmat (float *cmat, float *wtt, float *Mtt, int nactu, int nslopes, CarmaDevice *device)
 
int do_statmat (float *statcov, long dim, float *xpos, float *ypos, float norm, CarmaDevice *device)
 
template<class T >
int get_pupphase (T *odata, float *idata, int *indx_pup, int Nphi, CarmaDevice *device)
 
int compute_Hcor_gpu (float *o_data, int nrow, int ncol, float Fs, float gmin, float gmax, float delay, CarmaDevice *device)
 
int absnormfft (cuFloatComplex *idata, float *odata, int N, float norm, CarmaDevice *device)
 
int adjust_csr_index (int *rowind, int *NNZ, int *nact, int nact_tot, int row_off, CarmaDevice *device)
 

Function Documentation

◆ absnormfft()

int absnormfft ( cuFloatComplex *  idata,
float *  odata,
int  N,
float  norm,
CarmaDevice device 
)

◆ adjust_csr_index()

int adjust_csr_index ( int *  rowind,
int *  NNZ,
int *  nact,
int  nact_tot,
int  row_off,
CarmaDevice device 
)

◆ compute_Hcor_gpu()

int compute_Hcor_gpu ( float *  o_data,
int  nrow,
int  ncol,
float  Fs,
float  gmin,
float  gmax,
float  delay,
CarmaDevice device 
)

◆ convert_to_voltage()

template<typename Tin , typename Tout , std::enable_if_t< std::is_same< Tin, Tout >::value, bool > = true>
void convert_to_voltage ( Tin *  d_idata,
Tout *  d_odata,
int  N,
float  volt_min,
float  volt_max,
uint16_t  val_max,
CarmaDevice device,
cudaStream_t  stream 
)

Definition at line 155 of file sutra_controller.h.

◆ do_statmat()

int do_statmat ( float *  statcov,
long  dim,
float *  xpos,
float *  ypos,
float  norm,
CarmaDevice device 
)

◆ fill_cmat()

int fill_cmat ( float *  cmat,
float *  wtt,
float *  Mtt,
int  nactu,
int  nslopes,
CarmaDevice device 
)

◆ fill_filtmat()

int fill_filtmat ( float *  filter,
int  nactu,
int  N,
CarmaDevice device 
)

◆ get_pupphase()

template<class T >
int get_pupphase ( T *  odata,
float *  idata,
int *  indx_pup,
int  Nphi,
CarmaDevice device 
)

◆ init_voltage_impl() [1/2]

template<typename Tcomp , typename Tout >
std::enable_if<std::is_same<Tcomp, Tout>::value, void>::type init_voltage_impl ( CarmaObj< Tout > *&  volts,
CarmaObj< Tcomp > *  comClipped 
)

Definition at line 37 of file sutra_controller.h.

◆ init_voltage_impl() [2/2]

template<typename Tcomp , typename Tout >
std::enable_if<!std::is_same<Tcomp, Tout>::value, void>::type init_voltage_impl ( CarmaObj< Tout > *&  volts,
CarmaObj< Tcomp > *  comClipped 
)

Definition at line 43 of file sutra_controller.h.

Here is the call graph for this function:

◆ shift_buf()

int shift_buf ( float *  d_data,
int  offset,
int  N,
CarmaDevice device 
)

◆ TT_filt()

int TT_filt ( float *  mat,
int  n,
CarmaDevice device 
)