summaryrefslogtreecommitdiff
path: root/types.hpp
blob: 71556fdcd37d50e7b6449b82c6f0d5b1d4446d55 (plain)
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
#pragma once
#include <complex>
#include <fftw3.h>

using namespace std::complex_literals;

#ifndef QUAD_PRECISION

#define FFTW_PLAN fftw_plan
#define FFTW_ALLOC_COMPLEX fftw_alloc_complex
#define FFTW_IMPORT_WISDOM fftw_import_wisdom_from_filename
#define FFTW_EXPORT_WISDOM fftw_export_wisdom_to_filename
#define FFTW_PLAN_DFT_1D fftw_plan_dft_1d
#define FFTW_DESTROY_PLAN fftw_destroy_plan
#define FFTW_FREE fftw_free
#define FFTW_CLEANUP fftw_cleanup
#define FFTW_EXECUTE fftw_execute
#define FFTW_COMPLEX fftw_complex

using Real = double;

#define II 1i

#else

#define FFTW_PLAN fftwl_plan
#define FFTW_ALLOC_COMPLEX fftwl_alloc_complex
#define FFTW_IMPORT_WISDOM fftwl_import_wisdom_from_filename
#define FFTW_EXPORT_WISDOM fftwl_export_wisdom_to_filename
#define FFTW_PLAN_DFT_1D fftwl_plan_dft_1d
#define FFTW_DESTROY_PLAN fftwl_destroy_plan
#define FFTW_FREE fftwl_free
#define FFTW_CLEANUP fftwl_cleanup
#define FFTW_EXECUTE fftwl_execute
#define FFTW_COMPLEX fftwl_complex

using Real = long double;

#define II 1il

#endif

using Complex = std::complex<Real>;