#![feature(globs)]
#![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, ..2u];
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, ..2u];
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, ..2u];
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;
}