-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathNUFFT3D.h
49 lines (44 loc) · 900 Bytes
/
NUFFT3D.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#ifndef NUFFT3D_H
#define NUFFT3D_H
#include "MathOps.h"
#include <complex>
#include <fftw3.h>
#include <malloc.h>
#include <vector>
using namespace std;
class NUFFT3D
{
private:
complex<float> *f;
int N;
int OF;
int N2;
float *wx;
float *wy;
float *wz;
int P;
int prechopX;
int prechopY;
int prechopZ;
int postchopX;
int postchopY;
int postchopZ;
int offsetX;
int offsetY;
int offsetZ;
int W;
int L;
fftwf_plan fwdPlan;
fftwf_plan adjPlan;
float *LUT;
void buildLUT();
void getScalingFunction();
float *q;
public:
NUFFT3D(int, int, float *, float *, float *, int, int, int, int, int, int, int, int, int, int, int, int);
~NUFFT3D();
static void init(int);
void fwd(complex<float> *, complex<float> *, float *, float *, float *);
void adj(complex<float> *, complex<float> *, vector<vector<vector<int>>> &, vector<vector<int>> &, float *, float *, float *);
};
#endif