ceo 0.1.0

CUDA Engined Optics
Documentation
#ifndef __GBTBT_H__
#define __GBTBT_H__

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

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

//#define GBTBT_DEBUG

struct GBTBT {

  int M, N, NT, NT2, NDFT, HALF_NDFT, NU_TOTAL, NF, NF2, 
    ind_size, cov_size, MT2_TOTAL, MT_size, MAX_MT;
  int *MT, *MT2, *NU, *NU2, *CS_MT2, *d__MT, *d__MT2, 
    *d__NU, *d__NU2, *d__CS_MT2;
  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 GBTBT_DEBUG
  float2 *cov;
  unsigned int *mu, *xi;
  #endif

  void setup(int n_x);

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

  void cleanup(void);

  void info(void);

  void MVM(float *y, float *x);

};
#endif // __GBTBT_H__