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
50
51
52
#![allow(non_camel_case_types)]
pub use ffi::fftw_r2r_kind as R2R_KIND;
use std::ops::Neg;
#[repr(i32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum SIGN {
FFTW_FORWARD = -1,
FFTW_BACKWARD = 1,
}
impl Neg for SIGN {
type Output = SIGN;
fn neg(self) -> Self::Output {
match self {
SIGN::FFTW_FORWARD => SIGN::FFTW_BACKWARD,
SIGN::FFTW_BACKWARD => SIGN::FFTW_FORWARD,
}
}
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum FLAG {
FFTW_MEASURE = 0,
FFTW_DESTROY_INPUT = 1 << 0,
FFTW_UNALIGNED = 1 << 1,
FFTW_CONSERVE_MEMORY = 1 << 2,
FFTW_EXHAUSTIVE = 1 << 3,
FFTW_PRESERVE_INPUT = 1 << 4,
FFTW_PATIENT = 1 << 5,
FFTW_ESTIMATE = 1 << 6,
FFTW_WISDOM_ONLY = 1 << 21,
FFTW_ESTIMATE_PATIENT = 1 << 7,
FFTW_BELIEVE_PCOST = 1 << 8,
FFTW_NO_DFT_R2HC = 1 << 9,
FFTW_NO_NONTHREADED = 1 << 10,
FFTW_NO_BUFFERING = 1 << 11,
FFTW_NO_INDIRECT_OP = 1 << 12,
FFTW_ALLOW_LARGE_GENERIC = 1 << 13,
FFTW_NO_RANK_SPLITS = 1 << 14,
FFTW_NO_VRANK_SPLITS = 1 << 15,
FFTW_NO_VRECURSE = 1 << 16,
FFTW_NO_SIMD = 1 << 17,
FFTW_NO_SLOW = 1 << 18,
FFTW_NO_FIXED_RADIX_LARGE_N = 1 << 19,
FFTW_ALLOW_PRUNING = 1 << 20,
}