ceo 0.1.0

CUDA Engined Optics
Documentation
#ifndef __CENTROIDING_H__
#define __CENTROIDING_H__

#ifndef __UTILITIES_H__
#include "utilities.h"
#endif

#ifndef __IMAGING_H__
#include "imaging.h"
#endif

struct centroiding {

  int _N_SIDE_LENSLET_, N_LENSLET, N_SOURCE;
  float *d__c, *d__cx, *d__cy, *d__mass;
  char *lenslet_mask, MASK_SET;
  int n_data, DEV_SHARED_MEM, DEV_MAX_THREADS;
  cublasHandle_t handle;
  cublasStatus_t status;

  void setup(int _N_SIDE_LENSLET, int _N_SOURCE);

  void cleanup(void);
   
  void get_data(imaging *wfs);
  void get_data(float *frame, int N);
  void get_data(float *frame, int N, 
                float cx0, float cy0, float units);
  void get_data(float *frame, int N, 
                float *cx0, float *cy0, float units,
                char *valid_lenset);

  void show_centroids(char *filename);
  void show_flux(char *filename);
  void fried_geometry(mask *dm, mask *pupil, int n, float threshold);
  void filter(float *F);
  void noisify(float stddev);
  void reset(void);
};

#endif  // __CENTROIDING_H__