ceo 0.1.0

CUDA Engined Optics
Documentation
#ifndef __BTBT_H__
#define __BTBT_H__

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

#ifndef __ATMOSPHERE_H__
#include "atmosphere.h"
#endif

//#define BTBT_DEBUG

struct BTBT {

  int M, N, MT, MT2, NT, NT2, NU, NU2, NDFT, HALF_NDFT, NU_TOTAL, NF, NF2, ind_size, cov_size;
  char *mask;
  float2 *d__cov, *d__b, *d__c;
  float *d__alpha, *d__beta, n_full, n_comp, b_full, b_comp, cov_eval_et;
  unsigned int *d__mu, *d__xi;
  cufftHandle raster_plan, MVM_input_plan, MVM_output_plan;
  #ifdef BTBT_DEBUG
  float2 *cov;
  unsigned int *mu, *xi;
  #endif
  /* cublasHandle_t handle; */
  /* cuComplex **Aptr, **Bptr, **Cptr; */

  void setup(int n_x);

  void setup(int M_, int N_, int NT_, float *d__cov_);
  void setup(int M_, int N_, int MT_, int NT_, float *d__cov_);

  void cleanup(void);

  void info(void);

  void MVM(float *y, float *x);
  void MVM_i(float *y, float *x);
  void MVM_ii(float *y, float *x);
  void MVM_iii(float *y, float *x);
  void MVM_iv(float *y, float *x);
  void MVM_v(float *y, float *x);

};
#endif // __BTBT_H__