/* automatically generated by rust-bindgen */ #![allow(dead_code, non_camel_case_types)] extern crate libc; use libc::*; pub static FFTW_FORWARD: c_int = -1; pub static FFTW_BACKWARD: c_int = 1; pub static FFTW_NO_TIMELIMIT: f64 = -1.0; pub static FFTW_MEASURE: c_uint = 0; pub static FFTW_DESTROY_INPUT: c_uint = 1 << 0; pub static FFTW_UNALIGNED: c_uint = 1 << 1; pub static FFTW_CONSERVE_MEMORY: c_uint = 1 << 2; pub static FFTW_EXHAUSTIVE: c_uint = 1 << 3; pub static FFTW_PRESERVE_INPUT: c_uint = 1 << 4; pub static FFTW_PATIENT: c_uint = 1 << 5; pub static FFTW_ESTIMATE: c_uint = 1 << 6; pub static FFTW_WISDOM_ONLY: c_uint = 1 << 21; pub type Enum_fftw_r2r_kind_do_not_use_me = c_uint; pub static FFTW_R2HC: c_uint = 0; pub static FFTW_HC2R: c_uint = 1; pub static FFTW_DHT: c_uint = 2; pub static FFTW_REDFT00: c_uint = 3; pub static FFTW_REDFT01: c_uint = 4; pub static FFTW_REDFT10: c_uint = 5; pub static FFTW_REDFT11: c_uint = 6; pub static FFTW_RODFT00: c_uint = 7; pub static FFTW_RODFT01: c_uint = 8; pub static FFTW_RODFT10: c_uint = 9; pub static FFTW_RODFT11: c_uint = 10; #[repr(C)] pub struct Struct_fftw_iodim_do_not_use_me { pub n: c_int, pub is: c_int, pub os: c_int, } #[repr(C)] pub struct Struct_fftw_iodim64_do_not_use_me { pub n: ptrdiff_t, pub is: ptrdiff_t, pub os: ptrdiff_t, } pub type fftw_write_char_func_do_not_use_me = extern "C" fn(arg1: c_schar, arg2: *mut c_void); pub type fftw_read_char_func_do_not_use_me = extern "C" fn(arg1: *mut c_void) -> c_int; pub type fftw_complex = [c_double; 2]; pub type Struct_fftw_plan_s = c_void; pub type fftw_plan = *mut Struct_fftw_plan_s; pub type fftw_iodim = Struct_fftw_iodim_do_not_use_me; pub type fftw_iodim64 = Struct_fftw_iodim64_do_not_use_me; pub type fftw_r2r_kind = Enum_fftw_r2r_kind_do_not_use_me; pub type fftw_write_char_func = fftw_write_char_func_do_not_use_me; pub type fftw_read_char_func = fftw_read_char_func_do_not_use_me; pub type fftwf_complex = [c_float; 2]; pub type Struct_fftwf_plan_s = c_void; pub type fftwf_plan = *mut Struct_fftwf_plan_s; pub type fftwf_iodim = Struct_fftw_iodim_do_not_use_me; pub type fftwf_iodim64 = Struct_fftw_iodim64_do_not_use_me; pub type fftwf_r2r_kind = Enum_fftw_r2r_kind_do_not_use_me; pub type fftwf_write_char_func = fftw_write_char_func_do_not_use_me; pub type fftwf_read_char_func = fftw_read_char_func_do_not_use_me; pub type fftwl_complex = [c_double; 2]; pub type Struct_fftwl_plan_s = c_void; pub type fftwl_plan = *mut Struct_fftwl_plan_s; pub type fftwl_iodim = Struct_fftw_iodim_do_not_use_me; pub type fftwl_iodim64 = Struct_fftw_iodim64_do_not_use_me; pub type fftwl_r2r_kind = Enum_fftw_r2r_kind_do_not_use_me; pub type fftwl_write_char_func = fftw_write_char_func_do_not_use_me; pub type fftwl_read_char_func = fftw_read_char_func_do_not_use_me; extern "C" { pub static mut fftw_version: c_void; pub static mut fftw_cc: c_void; pub static mut fftw_codelet_optim: c_void; pub static mut fftwf_version: c_void; pub static mut fftwf_cc: c_void; pub static mut fftwf_codelet_optim: c_void; pub static mut fftwl_version: c_void; pub static mut fftwl_cc: c_void; pub static mut fftwl_codelet_optim: c_void; pub fn fftw_execute(p: fftw_plan); pub fn fftw_plan_dft(rank: c_int, n: *mut c_int, _in: *mut fftw_complex, out: *mut fftw_complex, sign: c_int, flags: c_uint) -> fftw_plan; pub fn fftw_plan_dft_1d(n: c_int, _in: *mut fftw_complex, out: *mut fftw_complex, sign: c_int, flags: c_uint) -> fftw_plan; pub fn fftw_plan_dft_2d(n0: c_int, n1: c_int, _in: *mut fftw_complex, out: *mut fftw_complex, sign: c_int, flags: c_uint) -> fftw_plan; pub fn fftw_plan_dft_3d(n0: c_int, n1: c_int, n2: c_int, _in: *mut fftw_complex, out: *mut fftw_complex, sign: c_int, flags: c_uint) -> fftw_plan; pub fn fftw_plan_many_dft(rank: c_int, n: *const c_int, howmany: c_int, _in: *mut fftw_complex, inembed: *const c_int, istride: c_int, idist: c_int, out: *mut fftw_complex, onembed: *const c_int, ostride: c_int, odist: c_int, sign: c_int, flags: c_uint) -> fftw_plan; pub fn fftw_plan_guru_dft(rank: c_int, dims: *const fftw_iodim, howmany_rank: c_int, howmany_dims: *const fftw_iodim, _in: *mut fftw_complex, out: *mut fftw_complex, sign: c_int, flags: c_uint) -> fftw_plan; pub fn fftw_plan_guru_split_dft(rank: c_int, dims: *const fftw_iodim, howmany_rank: c_int, howmany_dims: *const fftw_iodim, ri: *mut c_double, ii: *mut c_double, ro: *mut c_double, io: *mut c_double, flags: c_uint) -> fftw_plan; pub fn fftw_plan_guru64_dft(rank: c_int, dims: *const fftw_iodim64, howmany_rank: c_int, howmany_dims: *const fftw_iodim64, _in: *mut fftw_complex, out: *mut fftw_complex, sign: c_int, flags: c_uint) -> fftw_plan; pub fn fftw_plan_guru64_split_dft(rank: c_int, dims: *const fftw_iodim64, howmany_rank: c_int, howmany_dims: *const fftw_iodim64, ri: *mut c_double, ii: *mut c_double, ro: *mut c_double, io: *mut c_double, flags: c_uint) -> fftw_plan; pub fn fftw_execute_dft(p: fftw_plan, _in: *mut fftw_complex, out: *mut fftw_complex); pub fn fftw_execute_split_dft(p: fftw_plan, ri: *mut c_double, ii: *mut c_double, ro: *mut c_double, io: *mut c_double); pub fn fftw_plan_many_dft_r2c(rank: c_int, n: *const c_int, howmany: c_int, _in: *mut c_double, inembed: *const c_int, istride: c_int, idist: c_int, out: *mut fftw_complex, onembed: *const c_int, ostride: c_int, odist: c_int, flags: c_uint) -> fftw_plan; pub fn fftw_plan_dft_r2c(rank: c_int, n: *const c_int, _in: *mut c_double, out: *mut fftw_complex, flags: c_uint) -> fftw_plan; pub fn fftw_plan_dft_r2c_1d(n: c_int, _in: *mut c_double, out: *mut fftw_complex, flags: c_uint) -> fftw_plan; pub fn fftw_plan_dft_r2c_2d(n0: c_int, n1: c_int, _in: *mut c_double, out: *mut fftw_complex, flags: c_uint) -> fftw_plan; pub fn fftw_plan_dft_r2c_3d(n0: c_int, n1: c_int, n2: c_int, _in: *mut c_double, out: *mut fftw_complex, flags: c_uint) -> fftw_plan; pub fn fftw_plan_many_dft_c2r(rank: c_int, n: *const c_int, howmany: c_int, _in: *mut fftw_complex, inembed: *const c_int, istride: c_int, idist: c_int, out: *mut c_double, onembed: *const c_int, ostride: c_int, odist: c_int, flags: c_uint) -> fftw_plan; pub fn fftw_plan_dft_c2r(rank: c_int, n: *const c_int, _in: *mut fftw_complex, out: *mut c_double, flags: c_uint) -> fftw_plan; pub fn fftw_plan_dft_c2r_1d(n: c_int, _in: *mut fftw_complex, out: *mut c_double, flags: c_uint) -> fftw_plan; pub fn fftw_plan_dft_c2r_2d(n0: c_int, n1: c_int, _in: *mut fftw_complex, out: *mut c_double, flags: c_uint) -> fftw_plan; pub fn fftw_plan_dft_c2r_3d(n0: c_int, n1: c_int, n2: c_int, _in: *mut fftw_complex, out: *mut c_double, flags: c_uint) -> fftw_plan; pub fn fftw_plan_guru_dft_r2c(rank: c_int, dims: *const fftw_iodim, howmany_rank: c_int, howmany_dims: *const fftw_iodim, _in: *mut c_double, out: *mut fftw_complex, flags: c_uint) -> fftw_plan; pub fn fftw_plan_guru_dft_c2r(rank: c_int, dims: *const fftw_iodim, howmany_rank: c_int, howmany_dims: *const fftw_iodim, _in: *mut fftw_complex, out: *mut c_double, flags: c_uint) -> fftw_plan; pub fn fftw_plan_guru_split_dft_r2c(rank: c_int, dims: *const fftw_iodim, howmany_rank: c_int, howmany_dims: *const fftw_iodim, _in: *mut c_double, ro: *mut c_double, io: *mut c_double, flags: c_uint) -> fftw_plan; pub fn fftw_plan_guru_split_dft_c2r(rank: c_int, dims: *const fftw_iodim, howmany_rank: c_int, howmany_dims: *const fftw_iodim, ri: *mut c_double, ii: *mut c_double, out: *mut c_double, flags: c_uint) -> fftw_plan; pub fn fftw_plan_guru64_dft_r2c(rank: c_int, dims: *const fftw_iodim64, howmany_rank: c_int, howmany_dims: *const fftw_iodim64, _in: *mut c_double, out: *mut fftw_complex, flags: c_uint) -> fftw_plan; pub fn fftw_plan_guru64_dft_c2r(rank: c_int, dims: *const fftw_iodim64, howmany_rank: c_int, howmany_dims: *const fftw_iodim64, _in: *mut fftw_complex, out: *mut c_double, flags: c_uint) -> fftw_plan; pub fn fftw_plan_guru64_split_dft_r2c(rank: c_int, dims: *const fftw_iodim64, howmany_rank: c_int, howmany_dims: *const fftw_iodim64, _in: *mut c_double, ro: *mut c_double, io: *mut c_double, flags: c_uint) -> fftw_plan; pub fn fftw_plan_guru64_split_dft_c2r(rank: c_int, dims: *const fftw_iodim64, howmany_rank: c_int, howmany_dims: *const fftw_iodim64, ri: *mut c_double, ii: *mut c_double, out: *mut c_double, flags: c_uint) -> fftw_plan; pub fn fftw_execute_dft_r2c(p: fftw_plan, _in: *mut c_double, out: *mut fftw_complex); pub fn fftw_execute_dft_c2r(p: fftw_plan, _in: *mut fftw_complex, out: *mut c_double); pub fn fftw_execute_split_dft_r2c(p: fftw_plan, _in: *mut c_double, ro: *mut c_double, io: *mut c_double); pub fn fftw_execute_split_dft_c2r(p: fftw_plan, ri: *mut c_double, ii: *mut c_double, out: *mut c_double); pub fn fftw_plan_many_r2r(rank: c_int, n: *const c_int, howmany: c_int, _in: *mut c_double, inembed: *const c_int, istride: c_int, idist: c_int, out: *mut c_double, onembed: *const c_int, ostride: c_int, odist: c_int, kind: *const fftw_r2r_kind, flags: c_uint) -> fftw_plan; pub fn fftw_plan_r2r(rank: c_int, n: *const c_int, _in: *mut c_double, out: *mut c_double, kind: *const fftw_r2r_kind, flags: c_uint) -> fftw_plan; pub fn fftw_plan_r2r_1d(n: c_int, _in: *mut c_double, out: *mut c_double, kind: fftw_r2r_kind, flags: c_uint) -> fftw_plan; pub fn fftw_plan_r2r_2d(n0: c_int, n1: c_int, _in: *mut c_double, out: *mut c_double, kind0: fftw_r2r_kind, kind1: fftw_r2r_kind, flags: c_uint) -> fftw_plan; pub fn fftw_plan_r2r_3d(n0: c_int, n1: c_int, n2: c_int, _in: *mut c_double, out: *mut c_double, kind0: fftw_r2r_kind, kind1: fftw_r2r_kind, kind2: fftw_r2r_kind, flags: c_uint) -> fftw_plan; pub fn fftw_plan_guru_r2r(rank: c_int, dims: *const fftw_iodim, howmany_rank: c_int, howmany_dims: *const fftw_iodim, _in: *mut c_double, out: *mut c_double, kind: *const fftw_r2r_kind, flags: c_uint) -> fftw_plan; pub fn fftw_plan_guru64_r2r(rank: c_int, dims: *const fftw_iodim64, howmany_rank: c_int, howmany_dims: *const fftw_iodim64, _in: *mut c_double, out: *mut c_double, kind: *const fftw_r2r_kind, flags: c_uint) -> fftw_plan; pub fn fftw_execute_r2r(p: fftw_plan, _in: *mut c_double, out: *mut c_double); pub fn fftw_destroy_plan(p: fftw_plan); pub fn fftw_forget_wisdom(); pub fn fftw_cleanup(); pub fn fftw_set_timelimit(t: c_double); pub fn fftw_plan_with_nthreads(nthreads: c_int); pub fn fftw_init_threads() -> c_int; pub fn fftw_cleanup_threads(); pub fn fftw_export_wisdom_to_filename(filename: *const c_schar) -> c_int; pub fn fftw_export_wisdom_to_file(output_file: *mut FILE); pub fn fftw_export_wisdom_to_string() -> *mut c_schar; pub fn fftw_export_wisdom(write_char: fftw_write_char_func, data: *mut c_void); pub fn fftw_import_system_wisdom() -> c_int; pub fn fftw_import_wisdom_from_filename(filename: *const c_schar) -> c_int; pub fn fftw_import_wisdom_from_file(input_file: *mut FILE) -> c_int; pub fn fftw_import_wisdom_from_string(input_string: *const c_schar) -> c_int; pub fn fftw_import_wisdom(read_char: fftw_read_char_func, data: *mut c_void) -> c_int; pub fn fftw_fprint_plan(p: fftw_plan, output_file: *mut FILE); pub fn fftw_print_plan(p: fftw_plan); pub fn fftw_malloc(n: size_t) -> *mut c_void; pub fn fftw_alloc_real(n: size_t) -> *mut c_double; pub fn fftw_alloc_complex(n: size_t) -> *mut fftw_complex; pub fn fftw_free(p: *mut c_void); pub fn fftw_flops(p: fftw_plan, add: *mut c_double, mul: *mut c_double, fmas: *mut c_double); pub fn fftw_estimate_cost(p: fftw_plan) -> c_double; pub fn fftw_cost(p: fftw_plan) -> c_double; pub fn fftwf_execute(p: fftwf_plan); pub fn fftwf_plan_dft(rank: c_int, n: *const c_int, _in: *mut fftwf_complex, out: *mut fftwf_complex, sign: c_int, flags: c_uint) -> fftwf_plan; pub fn fftwf_plan_dft_1d(n: c_int, _in: *mut fftwf_complex, out: *mut fftwf_complex, sign: c_int, flags: c_uint) -> fftwf_plan; pub fn fftwf_plan_dft_2d(n0: c_int, n1: c_int, _in: *mut fftwf_complex, out: *mut fftwf_complex, sign: c_int, flags: c_uint) -> fftwf_plan; pub fn fftwf_plan_dft_3d(n0: c_int, n1: c_int, n2: c_int, _in: *mut fftwf_complex, out: *mut fftwf_complex, sign: c_int, flags: c_uint) -> fftwf_plan; pub fn fftwf_plan_many_dft(rank: c_int, n: *const c_int, howmany: c_int, _in: *mut fftwf_complex, inembed: *const c_int, istride: c_int, idist: c_int, out: *mut fftwf_complex, onembed: *const c_int, ostride: c_int, odist: c_int, sign: c_int, flags: c_uint) -> fftwf_plan; pub fn fftwf_plan_guru_dft(rank: c_int, dims: *const fftwf_iodim, howmany_rank: c_int, howmany_dims: *const fftwf_iodim, _in: *mut fftwf_complex, out: *mut fftwf_complex, sign: c_int, flags: c_uint) -> fftwf_plan; pub fn fftwf_plan_guru_split_dft(rank: c_int, dims: *const fftwf_iodim, howmany_rank: c_int, howmany_dims: *const fftwf_iodim, ri: *mut c_float, ii: *mut c_float, ro: *mut c_float, io: *mut c_float, flags: c_uint) -> fftwf_plan; pub fn fftwf_plan_guru64_dft(rank: c_int, dims: *const fftwf_iodim64, howmany_rank: c_int, howmany_dims: *const fftwf_iodim64, _in: *mut fftwf_complex, out: *mut fftwf_complex, sign: c_int, flags: c_uint) -> fftwf_plan; pub fn fftwf_plan_guru64_split_dft(rank: c_int, dims: *const fftwf_iodim64, howmany_rank: c_int, howmany_dims: *const fftwf_iodim64, ri: *mut c_float, ii: *mut c_float, ro: *mut c_float, io: *mut c_float, flags: c_uint) -> fftwf_plan; pub fn fftwf_execute_dft(p: fftwf_plan, _in: *mut fftwf_complex, out: *mut fftwf_complex); pub fn fftwf_execute_split_dft(p: fftwf_plan, ri: *mut c_float, ii: *mut c_float, ro: *mut c_float, io: *mut c_float); pub fn fftwf_plan_many_dft_r2c(rank: c_int, n: *const c_int, howmany: c_int, _in: *mut c_float, inembed: *const c_int, istride: c_int, idist: c_int, out: *mut fftwf_complex, onembed: *const c_int, ostride: c_int, odist: c_int, flags: c_uint) -> fftwf_plan; pub fn fftwf_plan_dft_r2c(rank: c_int, n: *const c_int, _in: *mut c_float, out: *mut fftwf_complex, flags: c_uint) -> fftwf_plan; pub fn fftwf_plan_dft_r2c_1d(n: c_int, _in: *mut c_float, out: *mut fftwf_complex, flags: c_uint) -> fftwf_plan; pub fn fftwf_plan_dft_r2c_2d(n0: c_int, n1: c_int, _in: *mut c_float, out: *mut fftwf_complex, flags: c_uint) -> fftwf_plan; pub fn fftwf_plan_dft_r2c_3d(n0: c_int, n1: c_int, n2: c_int, _in: *mut c_float, out: *mut fftwf_complex, flags: c_uint) -> fftwf_plan; pub fn fftwf_plan_many_dft_c2r(rank: c_int, n: *const c_int, howmany: c_int, _in: *mut fftwf_complex, inembed: *const c_int, istride: c_int, idist: c_int, out: *mut c_float, onembed: *const c_int, ostride: c_int, odist: c_int, flags: c_uint) -> fftwf_plan; pub fn fftwf_plan_dft_c2r(rank: c_int, n: *const c_int, _in: *mut fftwf_complex, out: *mut c_float, flags: c_uint) -> fftwf_plan; pub fn fftwf_plan_dft_c2r_1d(n: c_int, _in: *mut fftwf_complex, out: *mut c_float, flags: c_uint) -> fftwf_plan; pub fn fftwf_plan_dft_c2r_2d(n0: c_int, n1: c_int, _in: *mut fftwf_complex, out: *mut c_float, flags: c_uint) -> fftwf_plan; pub fn fftwf_plan_dft_c2r_3d(n0: c_int, n1: c_int, n2: c_int, _in: *mut fftwf_complex, out: *mut c_float, flags: c_uint) -> fftwf_plan; pub fn fftwf_plan_guru_dft_r2c(rank: c_int, dims: *const fftwf_iodim, howmany_rank: c_int, howmany_dims: *const fftwf_iodim, _in: *mut c_float, out: *mut fftwf_complex, flags: c_uint) -> fftwf_plan; pub fn fftwf_plan_guru_dft_c2r(rank: c_int, dims: *const fftwf_iodim, howmany_rank: c_int, howmany_dims: *const fftwf_iodim, _in: *mut fftwf_complex, out: *mut c_float, flags: c_uint) -> fftwf_plan; pub fn fftwf_plan_guru_split_dft_r2c(rank: c_int, dims: *const fftwf_iodim, howmany_rank: c_int, howmany_dims: *const fftwf_iodim, _in: *mut c_float, ro: *mut c_float, io: *mut c_float, flags: c_uint) -> fftwf_plan; pub fn fftwf_plan_guru_split_dft_c2r(rank: c_int, dims: *const fftwf_iodim, howmany_rank: c_int, howmany_dims: *const fftwf_iodim, ri: *mut c_float, ii: *mut c_float, out: *mut c_float, flags: c_uint) -> fftwf_plan; pub fn fftwf_plan_guru64_dft_r2c(rank: c_int, dims: *const fftwf_iodim64, howmany_rank: c_int, howmany_dims: *const fftwf_iodim64, _in: *mut c_float, out: *mut fftwf_complex, flags: c_uint) -> fftwf_plan; pub fn fftwf_plan_guru64_dft_c2r(rank: c_int, dims: *const fftwf_iodim64, howmany_rank: c_int, howmany_dims: *const fftwf_iodim64, _in: *mut fftwf_complex, out: *mut c_float, flags: c_uint) -> fftwf_plan; pub fn fftwf_plan_guru64_split_dft_r2c(rank: c_int, dims: *const fftwf_iodim64, howmany_rank: c_int, howmany_dims: *const fftwf_iodim64, _in: *mut c_float, ro: *mut c_float, io: *mut c_float, flags: c_uint) -> fftwf_plan; pub fn fftwf_plan_guru64_split_dft_c2r(rank: c_int, dims: *const fftwf_iodim64, howmany_rank: c_int, howmany_dims: *const fftwf_iodim64, ri: *mut c_float, ii: *mut c_float, out: *mut c_float, flags: c_uint) -> fftwf_plan; pub fn fftwf_execute_dft_r2c(p: fftwf_plan, _in: *mut c_float, out: *mut fftwf_complex); pub fn fftwf_execute_dft_c2r(p: fftwf_plan, _in: *mut fftwf_complex, out: *mut c_float); pub fn fftwf_execute_split_dft_r2c(p: fftwf_plan, _in: *mut c_float, ro: *mut c_float, io: *mut c_float); pub fn fftwf_execute_split_dft_c2r(p: fftwf_plan, ri: *mut c_float, ii: *mut c_float, out: *mut c_float); pub fn fftwf_plan_many_r2r(rank: c_int, n: *const c_int, howmany: c_int, _in: *mut c_float, inembed: *const c_int, istride: c_int, idist: c_int, out: *mut c_float, onembed: *const c_int, ostride: c_int, odist: c_int, kind: *const fftwf_r2r_kind, flags: c_uint) -> fftwf_plan; pub fn fftwf_plan_r2r(rank: c_int, n: *const c_int, _in: *mut c_float, out: *mut c_float, kind: *const fftwf_r2r_kind, flags: c_uint) -> fftwf_plan; pub fn fftwf_plan_r2r_1d(n: c_int, _in: *mut c_float, out: *mut c_float, kind: fftwf_r2r_kind, flags: c_uint) -> fftwf_plan; pub fn fftwf_plan_r2r_2d(n0: c_int, n1: c_int, _in: *mut c_float, out: *mut c_float, kind0: fftwf_r2r_kind, kind1: fftwf_r2r_kind, flags: c_uint) -> fftwf_plan; pub fn fftwf_plan_r2r_3d(n0: c_int, n1: c_int, n2: c_int, _in: *mut c_float, out: *mut c_float, kind0: fftwf_r2r_kind, kind1: fftwf_r2r_kind, kind2: fftwf_r2r_kind, flags: c_uint) -> fftwf_plan; pub fn fftwf_plan_guru_r2r(rank: c_int, dims: *const fftwf_iodim, howmany_rank: c_int, howmany_dims: *const fftwf_iodim, _in: *mut c_float, out: *mut c_float, kind: *const fftwf_r2r_kind, flags: c_uint) -> fftwf_plan; pub fn fftwf_plan_guru64_r2r(rank: c_int, dims: *const fftwf_iodim64, howmany_rank: c_int, howmany_dims: *const fftwf_iodim64, _in: *mut c_float, out: *mut c_float, kind: *const fftwf_r2r_kind, flags: c_uint) -> fftwf_plan; pub fn fftwf_execute_r2r(p: fftwf_plan, _in: *mut c_float, out: *mut c_float); pub fn fftwf_destroy_plan(p: fftwf_plan); pub fn fftwf_forget_wisdom(); pub fn fftwf_cleanup(); pub fn fftwf_set_timelimit(t: c_double); pub fn fftwf_plan_with_nthreads(nthreads: c_int); pub fn fftwf_init_threads() -> c_int; pub fn fftwf_cleanup_threads(); pub fn fftwf_export_wisdom_to_filename(filename: *const c_schar) -> c_int; pub fn fftwf_export_wisdom_to_file(output_file: *mut FILE); pub fn fftwf_export_wisdom_to_string() -> *mut c_schar; pub fn fftwf_export_wisdom(write_char: fftwf_write_char_func, data: *mut c_void); pub fn fftwf_import_system_wisdom() -> c_int; pub fn fftwf_import_wisdom_from_filename(filename: *const c_schar) -> c_int; pub fn fftwf_import_wisdom_from_file(input_file: *mut FILE) -> c_int; pub fn fftwf_import_wisdom_from_string(input_string: *const c_schar) -> c_int; pub fn fftwf_import_wisdom(read_char: fftwf_read_char_func, data: *mut c_void) -> c_int; pub fn fftwf_fprint_plan(p: fftwf_plan, output_file: *mut FILE); pub fn fftwf_print_plan(p: fftwf_plan); pub fn fftwf_malloc(n: size_t) -> *mut c_void; pub fn fftwf_alloc_real(n: size_t) -> *mut c_float; pub fn fftwf_alloc_complex(n: size_t) -> *mut fftwf_complex; pub fn fftwf_free(p: *mut c_void); pub fn fftwf_flops(p: fftwf_plan, add: *mut c_double, mul: *mut c_double, fmas: *mut c_double); pub fn fftwf_estimate_cost(p: fftwf_plan) -> c_double; pub fn fftwf_cost(p: fftwf_plan) -> c_double; pub fn fftwl_execute(p: fftwl_plan); pub fn fftwl_plan_dft(rank: c_int, n: *const c_int, _in: *mut fftwl_complex, out: *mut fftwl_complex, sign: c_int, flags: c_uint) -> fftwl_plan; pub fn fftwl_plan_dft_1d(n: c_int, _in: *mut fftwl_complex, out: *mut fftwl_complex, sign: c_int, flags: c_uint) -> fftwl_plan; pub fn fftwl_plan_dft_2d(n0: c_int, n1: c_int, _in: *mut fftwl_complex, out: *mut fftwl_complex, sign: c_int, flags: c_uint) -> fftwl_plan; pub fn fftwl_plan_dft_3d(n0: c_int, n1: c_int, n2: c_int, _in: *mut fftwl_complex, out: *mut fftwl_complex, sign: c_int, flags: c_uint) -> fftwl_plan; pub fn fftwl_plan_many_dft(rank: c_int, n: *const c_int, howmany: c_int, _in: *mut fftwl_complex, inembed: *const c_int, istride: c_int, idist: c_int, out: *mut fftwl_complex, onembed: *const c_int, ostride: c_int, odist: c_int, sign: c_int, flags: c_uint) -> fftwl_plan; pub fn fftwl_plan_guru_dft(rank: c_int, dims: *const fftwl_iodim, howmany_rank: c_int, howmany_dims: *const fftwl_iodim, _in: *mut fftwl_complex, out: *mut fftwl_complex, sign: c_int, flags: c_uint) -> fftwl_plan; pub fn fftwl_plan_guru_split_dft(rank: c_int, dims: *const fftwl_iodim, howmany_rank: c_int, howmany_dims: *const fftwl_iodim, ri: *mut c_double, ii: *mut c_double, ro: *mut c_double, io: *mut c_double, flags: c_uint) -> fftwl_plan; pub fn fftwl_plan_guru64_dft(rank: c_int, dims: *const fftwl_iodim64, howmany_rank: c_int, howmany_dims: *const fftwl_iodim64, _in: *mut fftwl_complex, out: *mut fftwl_complex, sign: c_int, flags: c_uint) -> fftwl_plan; pub fn fftwl_plan_guru64_split_dft(rank: c_int, dims: *const fftwl_iodim64, howmany_rank: c_int, howmany_dims: *const fftwl_iodim64, ri: *mut c_double, ii: *mut c_double, ro: *mut c_double, io: *mut c_double, flags: c_uint) -> fftwl_plan; pub fn fftwl_execute_dft(p: fftwl_plan, _in: *mut fftwl_complex, out: *mut fftwl_complex); pub fn fftwl_execute_split_dft(p: fftwl_plan, ri: *mut c_double, ii: *mut c_double, ro: *mut c_double, io: *mut c_double); pub fn fftwl_plan_many_dft_r2c(rank: c_int, n: *const c_int, howmany: c_int, _in: *mut c_double, inembed: *const c_int, istride: c_int, idist: c_int, out: *mut fftwl_complex, onembed: *const c_int, ostride: c_int, odist: c_int, flags: c_uint) -> fftwl_plan; pub fn fftwl_plan_dft_r2c(rank: c_int, n: *const c_int, _in: *mut c_double, out: *mut fftwl_complex, flags: c_uint) -> fftwl_plan; pub fn fftwl_plan_dft_r2c_1d(n: c_int, _in: *mut c_double, out: *mut fftwl_complex, flags: c_uint) -> fftwl_plan; pub fn fftwl_plan_dft_r2c_2d(n0: c_int, n1: c_int, _in: *mut c_double, out: *mut fftwl_complex, flags: c_uint) -> fftwl_plan; pub fn fftwl_plan_dft_r2c_3d(n0: c_int, n1: c_int, n2: c_int, _in: *mut c_double, out: *mut fftwl_complex, flags: c_uint) -> fftwl_plan; pub fn fftwl_plan_many_dft_c2r(rank: c_int, n: *const c_int, howmany: c_int, _in: *mut fftwl_complex, inembed: *const c_int, istride: c_int, idist: c_int, out: *mut c_double, onembed: *const c_int, ostride: c_int, odist: c_int, flags: c_uint) -> fftwl_plan; pub fn fftwl_plan_dft_c2r(rank: c_int, n: *const c_int, _in: *mut fftwl_complex, out: *mut c_double, flags: c_uint) -> fftwl_plan; pub fn fftwl_plan_dft_c2r_1d(n: c_int, _in: *mut fftwl_complex, out: *mut c_double, flags: c_uint) -> fftwl_plan; pub fn fftwl_plan_dft_c2r_2d(n0: c_int, n1: c_int, _in: *mut fftwl_complex, out: *mut c_double, flags: c_uint) -> fftwl_plan; pub fn fftwl_plan_dft_c2r_3d(n0: c_int, n1: c_int, n2: c_int, _in: *mut fftwl_complex, out: *mut c_double, flags: c_uint) -> fftwl_plan; pub fn fftwl_plan_guru_dft_r2c(rank: c_int, dims: *const fftwl_iodim, howmany_rank: c_int, howmany_dims: *const fftwl_iodim, _in: *mut c_double, out: *mut fftwl_complex, flags: c_uint) -> fftwl_plan; pub fn fftwl_plan_guru_dft_c2r(rank: c_int, dims: *const fftwl_iodim, howmany_rank: c_int, howmany_dims: *const fftwl_iodim, _in: *mut fftwl_complex, out: *mut c_double, flags: c_uint) -> fftwl_plan; pub fn fftwl_plan_guru_split_dft_r2c(rank: c_int, dims: *const fftwl_iodim, howmany_rank: c_int, howmany_dims: *const fftwl_iodim, _in: *mut c_double, ro: *mut c_double, io: *mut c_double, flags: c_uint) -> fftwl_plan; pub fn fftwl_plan_guru_split_dft_c2r(rank: c_int, dims: *const fftwl_iodim, howmany_rank: c_int, howmany_dims: *const fftwl_iodim, ri: *mut c_double, ii: *mut c_double, out: *mut c_double, flags: c_uint) -> fftwl_plan; pub fn fftwl_plan_guru64_dft_r2c(rank: c_int, dims: *const fftwl_iodim64, howmany_rank: c_int, howmany_dims: *const fftwl_iodim64, _in: *mut c_double, out: *mut fftwl_complex, flags: c_uint) -> fftwl_plan; pub fn fftwl_plan_guru64_dft_c2r(rank: c_int, dims: *const fftwl_iodim64, howmany_rank: c_int, howmany_dims: *const fftwl_iodim64, _in: *mut fftwl_complex, out: *mut c_double, flags: c_uint) -> fftwl_plan; pub fn fftwl_plan_guru64_split_dft_r2c(rank: c_int, dims: *const fftwl_iodim64, howmany_rank: c_int, howmany_dims: *const fftwl_iodim64, _in: *mut c_double, ro: *mut c_double, io: *mut c_double, flags: c_uint) -> fftwl_plan; pub fn fftwl_plan_guru64_split_dft_c2r(rank: c_int, dims: *const fftwl_iodim64, howmany_rank: c_int, howmany_dims: *const fftwl_iodim64, ri: *mut c_double, ii: *mut c_double, out: *mut c_double, flags: c_uint) -> fftwl_plan; pub fn fftwl_execute_dft_r2c(p: fftwl_plan, _in: *mut c_double, out: *mut fftwl_complex); pub fn fftwl_execute_dft_c2r(p: fftwl_plan, _in: *mut fftwl_complex, out: *mut c_double); pub fn fftwl_execute_split_dft_r2c(p: fftwl_plan, _in: *mut c_double, ro: *mut c_double, io: *mut c_double); pub fn fftwl_execute_split_dft_c2r(p: fftwl_plan, ri: *mut c_double, ii: *mut c_double, out: *mut c_double); pub fn fftwl_plan_many_r2r(rank: c_int, n: *const c_int, howmany: c_int, _in: *mut c_double, inembed: *const c_int, istride: c_int, idist: c_int, out: *mut c_double, onembed: *const c_int, ostride: c_int, odist: c_int, kind: *const fftwl_r2r_kind, flags: c_uint) -> fftwl_plan; pub fn fftwl_plan_r2r(rank: c_int, n: *const c_int, _in: *mut c_double, out: *mut c_double, kind: *const fftwl_r2r_kind, flags: c_uint) -> fftwl_plan; pub fn fftwl_plan_r2r_1d(n: c_int, _in: *mut c_double, out: *mut c_double, kind: fftwl_r2r_kind, flags: c_uint) -> fftwl_plan; pub fn fftwl_plan_r2r_2d(n0: c_int, n1: c_int, _in: *mut c_double, out: *mut c_double, kind0: fftwl_r2r_kind, kind1: fftwl_r2r_kind, flags: c_uint) -> fftwl_plan; pub fn fftwl_plan_r2r_3d(n0: c_int, n1: c_int, n2: c_int, _in: *mut c_double, out: *mut c_double, kind0: fftwl_r2r_kind, kind1: fftwl_r2r_kind, kind2: fftwl_r2r_kind, flags: c_uint) -> fftwl_plan; pub fn fftwl_plan_guru_r2r(rank: c_int, dims: *const fftwl_iodim, howmany_rank: c_int, howmany_dims: *const fftwl_iodim, _in: *mut c_double, out: *mut c_double, kind: *const fftwl_r2r_kind, flags: c_uint) -> fftwl_plan; pub fn fftwl_plan_guru64_r2r(rank: c_int, dims: *const fftwl_iodim64, howmany_rank: c_int, howmany_dims: *const fftwl_iodim64, _in: *mut c_double, out: *mut c_double, kind: *const fftwl_r2r_kind, flags: c_uint) -> fftwl_plan; pub fn fftwl_execute_r2r(p: fftwl_plan, _in: *mut c_double, out: *mut c_double); pub fn fftwl_destroy_plan(p: fftwl_plan); pub fn fftwl_forget_wisdom(); pub fn fftwl_cleanup(); pub fn fftwl_set_timelimit(t: c_double); pub fn fftwl_plan_with_nthreads(nthreads: c_int); pub fn fftwl_init_threads() -> c_int; pub fn fftwl_cleanup_threads(); pub fn fftwl_export_wisdom_to_filename(filename: *const c_schar) -> c_int; pub fn fftwl_export_wisdom_to_file(output_file: *mut FILE); pub fn fftwl_export_wisdom_to_string() -> *mut c_schar; pub fn fftwl_export_wisdom(write_char: fftwl_write_char_func, data: *mut c_void); pub fn fftwl_import_system_wisdom() -> c_int; pub fn fftwl_import_wisdom_from_filename(filename: *const c_schar) -> c_int; pub fn fftwl_import_wisdom_from_file(input_file: *mut FILE) -> c_int; pub fn fftwl_import_wisdom_from_string(input_string: *const c_schar) -> c_int; pub fn fftwl_import_wisdom(read_char: fftwl_read_char_func, data: *mut c_void) -> c_int; pub fn fftwl_fprint_plan(p: fftwl_plan, output_file: *mut FILE); pub fn fftwl_print_plan(p: fftwl_plan); pub fn fftwl_malloc(n: size_t) -> *mut c_void; pub fn fftwl_alloc_real(n: size_t) -> *mut c_double; pub fn fftwl_alloc_complex(n: size_t) -> *mut fftwl_complex; pub fn fftwl_free(p: *mut c_void); pub fn fftwl_flops(p: fftwl_plan, add: *mut c_double, mul: *mut c_double, fmas: *mut c_double); pub fn fftwl_estimate_cost(p: fftwl_plan) -> c_double; pub fn fftwl_cost(p: fftwl_plan) -> c_double; }