]> rtime.felk.cvut.cz Git - hercules2020/kcf.git/blob - src/fft_cufft.h
cufft: Remove unused/unneeded stuff
[hercules2020/kcf.git] / src / fft_cufft.h
1 #ifndef FFT_CUDA_H
2 #define FFT_CUDA_H
3
4
5 #include <cufft.h>
6 #include <cuda_runtime.h>
7 #include <cublas_v2.h>
8
9 #include "fft.h"
10 #include "cuda/cuda_error_check.cuh"
11 #include "pragmas.h"
12
13 struct ThreadCtx;
14
15 class cuFFT : public Fft
16 {
17 public:
18     cuFFT();
19     void init(unsigned width, unsigned height, unsigned num_of_feats, unsigned num_of_scales) override;
20     void set_window(const MatDynMem &window) override;
21     void forward(const MatDynMem &real_input, ComplexMat &complex_result) override;
22     void forward_window(MatDynMem &patch_feats_in, ComplexMat &complex_result, MatDynMem &tmp) override;
23     void inverse(ComplexMat &complex_input, MatDynMem &real_result) override;
24     ~cuFFT() override;
25
26 private:
27     cv::Mat m_window;
28     cufftHandle plan_f, plan_fw, plan_i_features, plan_i_1ch;
29     cublasHandle_t cublas;
30 };
31
32 #endif // FFT_CUDA_H