fftw_sys/
fftw.rs

1/* automatically generated by rust-bindgen */
2
3pub const FFTW_FORWARD: i32 = -1;
4pub const FFTW_BACKWARD: u32 = 1;
5pub const FFTW_NO_TIMELIMIT: f64 = -1.0;
6pub const FFTW_MEASURE: u32 = 0;
7pub const FFTW_DESTROY_INPUT: u32 = 1;
8pub const FFTW_UNALIGNED: u32 = 2;
9pub const FFTW_CONSERVE_MEMORY: u32 = 4;
10pub const FFTW_EXHAUSTIVE: u32 = 8;
11pub const FFTW_PRESERVE_INPUT: u32 = 16;
12pub const FFTW_PATIENT: u32 = 32;
13pub const FFTW_ESTIMATE: u32 = 64;
14pub const FFTW_WISDOM_ONLY: u32 = 2097152;
15pub const FFTW_ESTIMATE_PATIENT: u32 = 128;
16pub const FFTW_BELIEVE_PCOST: u32 = 256;
17pub const FFTW_NO_DFT_R2HC: u32 = 512;
18pub const FFTW_NO_NONTHREADED: u32 = 1024;
19pub const FFTW_NO_BUFFERING: u32 = 2048;
20pub const FFTW_NO_INDIRECT_OP: u32 = 4096;
21pub const FFTW_ALLOW_LARGE_GENERIC: u32 = 8192;
22pub const FFTW_NO_RANK_SPLITS: u32 = 16384;
23pub const FFTW_NO_VRANK_SPLITS: u32 = 32768;
24pub const FFTW_NO_VRECURSE: u32 = 65536;
25pub const FFTW_NO_SIMD: u32 = 131072;
26pub const FFTW_NO_SLOW: u32 = 262144;
27pub const FFTW_NO_FIXED_RADIX_LARGE_N: u32 = 524288;
28pub const FFTW_ALLOW_PRUNING: u32 = 1048576;
29#[repr(u32)]
30#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)]
31pub enum fftw_r2r_kind_do_not_use_me {
32    FFTW_R2HC = 0,
33    FFTW_HC2R = 1,
34    FFTW_DHT = 2,
35    FFTW_REDFT00 = 3,
36    FFTW_REDFT01 = 4,
37    FFTW_REDFT10 = 5,
38    FFTW_REDFT11 = 6,
39    FFTW_RODFT00 = 7,
40    FFTW_RODFT01 = 8,
41    FFTW_RODFT10 = 9,
42    FFTW_RODFT11 = 10,
43}
44#[repr(C)]
45#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
46pub struct fftw_iodim_do_not_use_me {
47    pub n: ::std::os::raw::c_int,
48    pub is: ::std::os::raw::c_int,
49    pub os: ::std::os::raw::c_int,
50}
51#[test]
52fn bindgen_test_layout_fftw_iodim_do_not_use_me() {
53    assert_eq!(
54        ::core::mem::size_of::<fftw_iodim_do_not_use_me>(),
55        12usize,
56        concat!("Size of: ", stringify!(fftw_iodim_do_not_use_me))
57    );
58    assert_eq!(
59        ::core::mem::align_of::<fftw_iodim_do_not_use_me>(),
60        4usize,
61        concat!("Alignment of ", stringify!(fftw_iodim_do_not_use_me))
62    );
63    assert_eq!(
64        unsafe { &(*(::core::ptr::null::<fftw_iodim_do_not_use_me>())).n as *const _ as usize },
65        0usize,
66        concat!(
67            "Offset of field: ",
68            stringify!(fftw_iodim_do_not_use_me),
69            "::",
70            stringify!(n)
71        )
72    );
73    assert_eq!(
74        unsafe { &(*(::core::ptr::null::<fftw_iodim_do_not_use_me>())).is as *const _ as usize },
75        4usize,
76        concat!(
77            "Offset of field: ",
78            stringify!(fftw_iodim_do_not_use_me),
79            "::",
80            stringify!(is)
81        )
82    );
83    assert_eq!(
84        unsafe { &(*(::core::ptr::null::<fftw_iodim_do_not_use_me>())).os as *const _ as usize },
85        8usize,
86        concat!(
87            "Offset of field: ",
88            stringify!(fftw_iodim_do_not_use_me),
89            "::",
90            stringify!(os)
91        )
92    );
93}
94#[repr(C)]
95#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
96pub struct fftw_iodim64_do_not_use_me {
97    pub n: isize,
98    pub is: isize,
99    pub os: isize,
100}
101#[test]
102fn bindgen_test_layout_fftw_iodim64_do_not_use_me() {
103    assert_eq!(
104        ::core::mem::size_of::<fftw_iodim64_do_not_use_me>(),
105        24usize,
106        concat!("Size of: ", stringify!(fftw_iodim64_do_not_use_me))
107    );
108    assert_eq!(
109        ::core::mem::align_of::<fftw_iodim64_do_not_use_me>(),
110        8usize,
111        concat!("Alignment of ", stringify!(fftw_iodim64_do_not_use_me))
112    );
113    assert_eq!(
114        unsafe { &(*(::core::ptr::null::<fftw_iodim64_do_not_use_me>())).n as *const _ as usize },
115        0usize,
116        concat!(
117            "Offset of field: ",
118            stringify!(fftw_iodim64_do_not_use_me),
119            "::",
120            stringify!(n)
121        )
122    );
123    assert_eq!(
124        unsafe { &(*(::core::ptr::null::<fftw_iodim64_do_not_use_me>())).is as *const _ as usize },
125        8usize,
126        concat!(
127            "Offset of field: ",
128            stringify!(fftw_iodim64_do_not_use_me),
129            "::",
130            stringify!(is)
131        )
132    );
133    assert_eq!(
134        unsafe { &(*(::core::ptr::null::<fftw_iodim64_do_not_use_me>())).os as *const _ as usize },
135        16usize,
136        concat!(
137            "Offset of field: ",
138            stringify!(fftw_iodim64_do_not_use_me),
139            "::",
140            stringify!(os)
141        )
142    );
143}
144pub type fftw_write_char_func_do_not_use_me = ::core::option::Option<
145    unsafe extern "C" fn(c: ::std::os::raw::c_char, arg1: *mut ::core::ffi::c_void),
146>;
147pub type fftw_read_char_func_do_not_use_me = ::core::option::Option<
148    unsafe extern "C" fn(arg1: *mut ::core::ffi::c_void) -> ::std::os::raw::c_int,
149>;
150#[repr(C)]
151#[derive(Debug, Copy, Clone)]
152pub struct fftw_plan_s {
153    _unused: [u8; 0],
154}
155pub type fftw_plan = *mut fftw_plan_s;
156pub type fftw_iodim = fftw_iodim_do_not_use_me;
157pub type fftw_iodim64 = fftw_iodim64_do_not_use_me;
158pub use self::fftw_r2r_kind_do_not_use_me as fftw_r2r_kind;
159pub type fftw_write_char_func = fftw_write_char_func_do_not_use_me;
160pub type fftw_read_char_func = fftw_read_char_func_do_not_use_me;
161extern "C" {
162    pub fn fftw_execute(p: fftw_plan);
163}
164extern "C" {
165    pub fn fftw_plan_dft(
166        rank: ::std::os::raw::c_int,
167        n: *const ::std::os::raw::c_int,
168        in_: *mut fftw_complex,
169        out: *mut fftw_complex,
170        sign: ::std::os::raw::c_int,
171        flags: ::std::os::raw::c_uint,
172    ) -> fftw_plan;
173}
174extern "C" {
175    pub fn fftw_plan_dft_1d(
176        n: ::std::os::raw::c_int,
177        in_: *mut fftw_complex,
178        out: *mut fftw_complex,
179        sign: ::std::os::raw::c_int,
180        flags: ::std::os::raw::c_uint,
181    ) -> fftw_plan;
182}
183extern "C" {
184    pub fn fftw_plan_dft_2d(
185        n0: ::std::os::raw::c_int,
186        n1: ::std::os::raw::c_int,
187        in_: *mut fftw_complex,
188        out: *mut fftw_complex,
189        sign: ::std::os::raw::c_int,
190        flags: ::std::os::raw::c_uint,
191    ) -> fftw_plan;
192}
193extern "C" {
194    pub fn fftw_plan_dft_3d(
195        n0: ::std::os::raw::c_int,
196        n1: ::std::os::raw::c_int,
197        n2: ::std::os::raw::c_int,
198        in_: *mut fftw_complex,
199        out: *mut fftw_complex,
200        sign: ::std::os::raw::c_int,
201        flags: ::std::os::raw::c_uint,
202    ) -> fftw_plan;
203}
204extern "C" {
205    pub fn fftw_plan_many_dft(
206        rank: ::std::os::raw::c_int,
207        n: *const ::std::os::raw::c_int,
208        howmany: ::std::os::raw::c_int,
209        in_: *mut fftw_complex,
210        inembed: *const ::std::os::raw::c_int,
211        istride: ::std::os::raw::c_int,
212        idist: ::std::os::raw::c_int,
213        out: *mut fftw_complex,
214        onembed: *const ::std::os::raw::c_int,
215        ostride: ::std::os::raw::c_int,
216        odist: ::std::os::raw::c_int,
217        sign: ::std::os::raw::c_int,
218        flags: ::std::os::raw::c_uint,
219    ) -> fftw_plan;
220}
221extern "C" {
222    pub fn fftw_plan_guru_dft(
223        rank: ::std::os::raw::c_int,
224        dims: *const fftw_iodim,
225        howmany_rank: ::std::os::raw::c_int,
226        howmany_dims: *const fftw_iodim,
227        in_: *mut fftw_complex,
228        out: *mut fftw_complex,
229        sign: ::std::os::raw::c_int,
230        flags: ::std::os::raw::c_uint,
231    ) -> fftw_plan;
232}
233extern "C" {
234    pub fn fftw_plan_guru_split_dft(
235        rank: ::std::os::raw::c_int,
236        dims: *const fftw_iodim,
237        howmany_rank: ::std::os::raw::c_int,
238        howmany_dims: *const fftw_iodim,
239        ri: *mut f64,
240        ii: *mut f64,
241        ro: *mut f64,
242        io: *mut f64,
243        flags: ::std::os::raw::c_uint,
244    ) -> fftw_plan;
245}
246extern "C" {
247    pub fn fftw_plan_guru64_dft(
248        rank: ::std::os::raw::c_int,
249        dims: *const fftw_iodim64,
250        howmany_rank: ::std::os::raw::c_int,
251        howmany_dims: *const fftw_iodim64,
252        in_: *mut fftw_complex,
253        out: *mut fftw_complex,
254        sign: ::std::os::raw::c_int,
255        flags: ::std::os::raw::c_uint,
256    ) -> fftw_plan;
257}
258extern "C" {
259    pub fn fftw_plan_guru64_split_dft(
260        rank: ::std::os::raw::c_int,
261        dims: *const fftw_iodim64,
262        howmany_rank: ::std::os::raw::c_int,
263        howmany_dims: *const fftw_iodim64,
264        ri: *mut f64,
265        ii: *mut f64,
266        ro: *mut f64,
267        io: *mut f64,
268        flags: ::std::os::raw::c_uint,
269    ) -> fftw_plan;
270}
271extern "C" {
272    pub fn fftw_execute_dft(p: fftw_plan, in_: *mut fftw_complex, out: *mut fftw_complex);
273}
274extern "C" {
275    pub fn fftw_execute_split_dft(
276        p: fftw_plan,
277        ri: *mut f64,
278        ii: *mut f64,
279        ro: *mut f64,
280        io: *mut f64,
281    );
282}
283extern "C" {
284    pub fn fftw_plan_many_dft_r2c(
285        rank: ::std::os::raw::c_int,
286        n: *const ::std::os::raw::c_int,
287        howmany: ::std::os::raw::c_int,
288        in_: *mut f64,
289        inembed: *const ::std::os::raw::c_int,
290        istride: ::std::os::raw::c_int,
291        idist: ::std::os::raw::c_int,
292        out: *mut fftw_complex,
293        onembed: *const ::std::os::raw::c_int,
294        ostride: ::std::os::raw::c_int,
295        odist: ::std::os::raw::c_int,
296        flags: ::std::os::raw::c_uint,
297    ) -> fftw_plan;
298}
299extern "C" {
300    pub fn fftw_plan_dft_r2c(
301        rank: ::std::os::raw::c_int,
302        n: *const ::std::os::raw::c_int,
303        in_: *mut f64,
304        out: *mut fftw_complex,
305        flags: ::std::os::raw::c_uint,
306    ) -> fftw_plan;
307}
308extern "C" {
309    pub fn fftw_plan_dft_r2c_1d(
310        n: ::std::os::raw::c_int,
311        in_: *mut f64,
312        out: *mut fftw_complex,
313        flags: ::std::os::raw::c_uint,
314    ) -> fftw_plan;
315}
316extern "C" {
317    pub fn fftw_plan_dft_r2c_2d(
318        n0: ::std::os::raw::c_int,
319        n1: ::std::os::raw::c_int,
320        in_: *mut f64,
321        out: *mut fftw_complex,
322        flags: ::std::os::raw::c_uint,
323    ) -> fftw_plan;
324}
325extern "C" {
326    pub fn fftw_plan_dft_r2c_3d(
327        n0: ::std::os::raw::c_int,
328        n1: ::std::os::raw::c_int,
329        n2: ::std::os::raw::c_int,
330        in_: *mut f64,
331        out: *mut fftw_complex,
332        flags: ::std::os::raw::c_uint,
333    ) -> fftw_plan;
334}
335extern "C" {
336    pub fn fftw_plan_many_dft_c2r(
337        rank: ::std::os::raw::c_int,
338        n: *const ::std::os::raw::c_int,
339        howmany: ::std::os::raw::c_int,
340        in_: *mut fftw_complex,
341        inembed: *const ::std::os::raw::c_int,
342        istride: ::std::os::raw::c_int,
343        idist: ::std::os::raw::c_int,
344        out: *mut f64,
345        onembed: *const ::std::os::raw::c_int,
346        ostride: ::std::os::raw::c_int,
347        odist: ::std::os::raw::c_int,
348        flags: ::std::os::raw::c_uint,
349    ) -> fftw_plan;
350}
351extern "C" {
352    pub fn fftw_plan_dft_c2r(
353        rank: ::std::os::raw::c_int,
354        n: *const ::std::os::raw::c_int,
355        in_: *mut fftw_complex,
356        out: *mut f64,
357        flags: ::std::os::raw::c_uint,
358    ) -> fftw_plan;
359}
360extern "C" {
361    pub fn fftw_plan_dft_c2r_1d(
362        n: ::std::os::raw::c_int,
363        in_: *mut fftw_complex,
364        out: *mut f64,
365        flags: ::std::os::raw::c_uint,
366    ) -> fftw_plan;
367}
368extern "C" {
369    pub fn fftw_plan_dft_c2r_2d(
370        n0: ::std::os::raw::c_int,
371        n1: ::std::os::raw::c_int,
372        in_: *mut fftw_complex,
373        out: *mut f64,
374        flags: ::std::os::raw::c_uint,
375    ) -> fftw_plan;
376}
377extern "C" {
378    pub fn fftw_plan_dft_c2r_3d(
379        n0: ::std::os::raw::c_int,
380        n1: ::std::os::raw::c_int,
381        n2: ::std::os::raw::c_int,
382        in_: *mut fftw_complex,
383        out: *mut f64,
384        flags: ::std::os::raw::c_uint,
385    ) -> fftw_plan;
386}
387extern "C" {
388    pub fn fftw_plan_guru_dft_r2c(
389        rank: ::std::os::raw::c_int,
390        dims: *const fftw_iodim,
391        howmany_rank: ::std::os::raw::c_int,
392        howmany_dims: *const fftw_iodim,
393        in_: *mut f64,
394        out: *mut fftw_complex,
395        flags: ::std::os::raw::c_uint,
396    ) -> fftw_plan;
397}
398extern "C" {
399    pub fn fftw_plan_guru_dft_c2r(
400        rank: ::std::os::raw::c_int,
401        dims: *const fftw_iodim,
402        howmany_rank: ::std::os::raw::c_int,
403        howmany_dims: *const fftw_iodim,
404        in_: *mut fftw_complex,
405        out: *mut f64,
406        flags: ::std::os::raw::c_uint,
407    ) -> fftw_plan;
408}
409extern "C" {
410    pub fn fftw_plan_guru_split_dft_r2c(
411        rank: ::std::os::raw::c_int,
412        dims: *const fftw_iodim,
413        howmany_rank: ::std::os::raw::c_int,
414        howmany_dims: *const fftw_iodim,
415        in_: *mut f64,
416        ro: *mut f64,
417        io: *mut f64,
418        flags: ::std::os::raw::c_uint,
419    ) -> fftw_plan;
420}
421extern "C" {
422    pub fn fftw_plan_guru_split_dft_c2r(
423        rank: ::std::os::raw::c_int,
424        dims: *const fftw_iodim,
425        howmany_rank: ::std::os::raw::c_int,
426        howmany_dims: *const fftw_iodim,
427        ri: *mut f64,
428        ii: *mut f64,
429        out: *mut f64,
430        flags: ::std::os::raw::c_uint,
431    ) -> fftw_plan;
432}
433extern "C" {
434    pub fn fftw_plan_guru64_dft_r2c(
435        rank: ::std::os::raw::c_int,
436        dims: *const fftw_iodim64,
437        howmany_rank: ::std::os::raw::c_int,
438        howmany_dims: *const fftw_iodim64,
439        in_: *mut f64,
440        out: *mut fftw_complex,
441        flags: ::std::os::raw::c_uint,
442    ) -> fftw_plan;
443}
444extern "C" {
445    pub fn fftw_plan_guru64_dft_c2r(
446        rank: ::std::os::raw::c_int,
447        dims: *const fftw_iodim64,
448        howmany_rank: ::std::os::raw::c_int,
449        howmany_dims: *const fftw_iodim64,
450        in_: *mut fftw_complex,
451        out: *mut f64,
452        flags: ::std::os::raw::c_uint,
453    ) -> fftw_plan;
454}
455extern "C" {
456    pub fn fftw_plan_guru64_split_dft_r2c(
457        rank: ::std::os::raw::c_int,
458        dims: *const fftw_iodim64,
459        howmany_rank: ::std::os::raw::c_int,
460        howmany_dims: *const fftw_iodim64,
461        in_: *mut f64,
462        ro: *mut f64,
463        io: *mut f64,
464        flags: ::std::os::raw::c_uint,
465    ) -> fftw_plan;
466}
467extern "C" {
468    pub fn fftw_plan_guru64_split_dft_c2r(
469        rank: ::std::os::raw::c_int,
470        dims: *const fftw_iodim64,
471        howmany_rank: ::std::os::raw::c_int,
472        howmany_dims: *const fftw_iodim64,
473        ri: *mut f64,
474        ii: *mut f64,
475        out: *mut f64,
476        flags: ::std::os::raw::c_uint,
477    ) -> fftw_plan;
478}
479extern "C" {
480    pub fn fftw_execute_dft_r2c(p: fftw_plan, in_: *mut f64, out: *mut fftw_complex);
481}
482extern "C" {
483    pub fn fftw_execute_dft_c2r(p: fftw_plan, in_: *mut fftw_complex, out: *mut f64);
484}
485extern "C" {
486    pub fn fftw_execute_split_dft_r2c(p: fftw_plan, in_: *mut f64, ro: *mut f64, io: *mut f64);
487}
488extern "C" {
489    pub fn fftw_execute_split_dft_c2r(p: fftw_plan, ri: *mut f64, ii: *mut f64, out: *mut f64);
490}
491extern "C" {
492    pub fn fftw_plan_many_r2r(
493        rank: ::std::os::raw::c_int,
494        n: *const ::std::os::raw::c_int,
495        howmany: ::std::os::raw::c_int,
496        in_: *mut f64,
497        inembed: *const ::std::os::raw::c_int,
498        istride: ::std::os::raw::c_int,
499        idist: ::std::os::raw::c_int,
500        out: *mut f64,
501        onembed: *const ::std::os::raw::c_int,
502        ostride: ::std::os::raw::c_int,
503        odist: ::std::os::raw::c_int,
504        kind: *const fftw_r2r_kind,
505        flags: ::std::os::raw::c_uint,
506    ) -> fftw_plan;
507}
508extern "C" {
509    pub fn fftw_plan_r2r(
510        rank: ::std::os::raw::c_int,
511        n: *const ::std::os::raw::c_int,
512        in_: *mut f64,
513        out: *mut f64,
514        kind: *const fftw_r2r_kind,
515        flags: ::std::os::raw::c_uint,
516    ) -> fftw_plan;
517}
518extern "C" {
519    pub fn fftw_plan_r2r_1d(
520        n: ::std::os::raw::c_int,
521        in_: *mut f64,
522        out: *mut f64,
523        kind: fftw_r2r_kind,
524        flags: ::std::os::raw::c_uint,
525    ) -> fftw_plan;
526}
527extern "C" {
528    pub fn fftw_plan_r2r_2d(
529        n0: ::std::os::raw::c_int,
530        n1: ::std::os::raw::c_int,
531        in_: *mut f64,
532        out: *mut f64,
533        kind0: fftw_r2r_kind,
534        kind1: fftw_r2r_kind,
535        flags: ::std::os::raw::c_uint,
536    ) -> fftw_plan;
537}
538extern "C" {
539    pub fn fftw_plan_r2r_3d(
540        n0: ::std::os::raw::c_int,
541        n1: ::std::os::raw::c_int,
542        n2: ::std::os::raw::c_int,
543        in_: *mut f64,
544        out: *mut f64,
545        kind0: fftw_r2r_kind,
546        kind1: fftw_r2r_kind,
547        kind2: fftw_r2r_kind,
548        flags: ::std::os::raw::c_uint,
549    ) -> fftw_plan;
550}
551extern "C" {
552    pub fn fftw_plan_guru_r2r(
553        rank: ::std::os::raw::c_int,
554        dims: *const fftw_iodim,
555        howmany_rank: ::std::os::raw::c_int,
556        howmany_dims: *const fftw_iodim,
557        in_: *mut f64,
558        out: *mut f64,
559        kind: *const fftw_r2r_kind,
560        flags: ::std::os::raw::c_uint,
561    ) -> fftw_plan;
562}
563extern "C" {
564    pub fn fftw_plan_guru64_r2r(
565        rank: ::std::os::raw::c_int,
566        dims: *const fftw_iodim64,
567        howmany_rank: ::std::os::raw::c_int,
568        howmany_dims: *const fftw_iodim64,
569        in_: *mut f64,
570        out: *mut f64,
571        kind: *const fftw_r2r_kind,
572        flags: ::std::os::raw::c_uint,
573    ) -> fftw_plan;
574}
575extern "C" {
576    pub fn fftw_execute_r2r(p: fftw_plan, in_: *mut f64, out: *mut f64);
577}
578extern "C" {
579    pub fn fftw_destroy_plan(p: fftw_plan);
580}
581extern "C" {
582    pub fn fftw_forget_wisdom();
583}
584extern "C" {
585    pub fn fftw_cleanup();
586}
587extern "C" {
588    pub fn fftw_set_timelimit(t: f64);
589}
590extern "C" {
591    pub fn fftw_plan_with_nthreads(nthreads: ::std::os::raw::c_int);
592}
593extern "C" {
594    pub fn fftw_init_threads() -> ::std::os::raw::c_int;
595}
596extern "C" {
597    pub fn fftw_cleanup_threads();
598}
599extern "C" {
600    pub fn fftw_make_planner_thread_safe();
601}
602extern "C" {
603    pub fn fftw_export_wisdom_to_filename(
604        filename: *const ::std::os::raw::c_char,
605    ) -> ::std::os::raw::c_int;
606}
607extern "C" {
608    pub fn fftw_export_wisdom_to_file(output_file: *mut FILE);
609}
610extern "C" {
611    pub fn fftw_export_wisdom_to_string() -> *mut ::std::os::raw::c_char;
612}
613extern "C" {
614    pub fn fftw_export_wisdom(write_char: fftw_write_char_func, data: *mut ::core::ffi::c_void);
615}
616extern "C" {
617    pub fn fftw_import_system_wisdom() -> ::std::os::raw::c_int;
618}
619extern "C" {
620    pub fn fftw_import_wisdom_from_filename(
621        filename: *const ::std::os::raw::c_char,
622    ) -> ::std::os::raw::c_int;
623}
624extern "C" {
625    pub fn fftw_import_wisdom_from_file(input_file: *mut FILE) -> ::std::os::raw::c_int;
626}
627extern "C" {
628    pub fn fftw_import_wisdom_from_string(
629        input_string: *const ::std::os::raw::c_char,
630    ) -> ::std::os::raw::c_int;
631}
632extern "C" {
633    pub fn fftw_import_wisdom(
634        read_char: fftw_read_char_func,
635        data: *mut ::core::ffi::c_void,
636    ) -> ::std::os::raw::c_int;
637}
638extern "C" {
639    pub fn fftw_fprint_plan(p: fftw_plan, output_file: *mut FILE);
640}
641extern "C" {
642    pub fn fftw_print_plan(p: fftw_plan);
643}
644extern "C" {
645    pub fn fftw_sprint_plan(p: fftw_plan) -> *mut ::std::os::raw::c_char;
646}
647extern "C" {
648    pub fn fftw_malloc(n: usize) -> *mut ::core::ffi::c_void;
649}
650extern "C" {
651    pub fn fftw_alloc_real(n: usize) -> *mut f64;
652}
653extern "C" {
654    pub fn fftw_alloc_complex(n: usize) -> *mut fftw_complex;
655}
656extern "C" {
657    pub fn fftw_free(p: *mut ::core::ffi::c_void);
658}
659extern "C" {
660    pub fn fftw_flops(p: fftw_plan, add: *mut f64, mul: *mut f64, fmas: *mut f64);
661}
662extern "C" {
663    pub fn fftw_estimate_cost(p: fftw_plan) -> f64;
664}
665extern "C" {
666    pub fn fftw_cost(p: fftw_plan) -> f64;
667}
668extern "C" {
669    pub fn fftw_alignment_of(p: *mut f64) -> ::std::os::raw::c_int;
670}
671#[repr(C)]
672#[derive(Debug, Copy, Clone)]
673pub struct fftwf_plan_s {
674    _unused: [u8; 0],
675}
676pub type fftwf_plan = *mut fftwf_plan_s;
677pub type fftwf_iodim = fftw_iodim_do_not_use_me;
678pub type fftwf_iodim64 = fftw_iodim64_do_not_use_me;
679pub use self::fftw_r2r_kind_do_not_use_me as fftwf_r2r_kind;
680pub type fftwf_write_char_func = fftw_write_char_func_do_not_use_me;
681pub type fftwf_read_char_func = fftw_read_char_func_do_not_use_me;
682extern "C" {
683    pub fn fftwf_execute(p: fftwf_plan);
684}
685extern "C" {
686    pub fn fftwf_plan_dft(
687        rank: ::std::os::raw::c_int,
688        n: *const ::std::os::raw::c_int,
689        in_: *mut fftwf_complex,
690        out: *mut fftwf_complex,
691        sign: ::std::os::raw::c_int,
692        flags: ::std::os::raw::c_uint,
693    ) -> fftwf_plan;
694}
695extern "C" {
696    pub fn fftwf_plan_dft_1d(
697        n: ::std::os::raw::c_int,
698        in_: *mut fftwf_complex,
699        out: *mut fftwf_complex,
700        sign: ::std::os::raw::c_int,
701        flags: ::std::os::raw::c_uint,
702    ) -> fftwf_plan;
703}
704extern "C" {
705    pub fn fftwf_plan_dft_2d(
706        n0: ::std::os::raw::c_int,
707        n1: ::std::os::raw::c_int,
708        in_: *mut fftwf_complex,
709        out: *mut fftwf_complex,
710        sign: ::std::os::raw::c_int,
711        flags: ::std::os::raw::c_uint,
712    ) -> fftwf_plan;
713}
714extern "C" {
715    pub fn fftwf_plan_dft_3d(
716        n0: ::std::os::raw::c_int,
717        n1: ::std::os::raw::c_int,
718        n2: ::std::os::raw::c_int,
719        in_: *mut fftwf_complex,
720        out: *mut fftwf_complex,
721        sign: ::std::os::raw::c_int,
722        flags: ::std::os::raw::c_uint,
723    ) -> fftwf_plan;
724}
725extern "C" {
726    pub fn fftwf_plan_many_dft(
727        rank: ::std::os::raw::c_int,
728        n: *const ::std::os::raw::c_int,
729        howmany: ::std::os::raw::c_int,
730        in_: *mut fftwf_complex,
731        inembed: *const ::std::os::raw::c_int,
732        istride: ::std::os::raw::c_int,
733        idist: ::std::os::raw::c_int,
734        out: *mut fftwf_complex,
735        onembed: *const ::std::os::raw::c_int,
736        ostride: ::std::os::raw::c_int,
737        odist: ::std::os::raw::c_int,
738        sign: ::std::os::raw::c_int,
739        flags: ::std::os::raw::c_uint,
740    ) -> fftwf_plan;
741}
742extern "C" {
743    pub fn fftwf_plan_guru_dft(
744        rank: ::std::os::raw::c_int,
745        dims: *const fftwf_iodim,
746        howmany_rank: ::std::os::raw::c_int,
747        howmany_dims: *const fftwf_iodim,
748        in_: *mut fftwf_complex,
749        out: *mut fftwf_complex,
750        sign: ::std::os::raw::c_int,
751        flags: ::std::os::raw::c_uint,
752    ) -> fftwf_plan;
753}
754extern "C" {
755    pub fn fftwf_plan_guru_split_dft(
756        rank: ::std::os::raw::c_int,
757        dims: *const fftwf_iodim,
758        howmany_rank: ::std::os::raw::c_int,
759        howmany_dims: *const fftwf_iodim,
760        ri: *mut f32,
761        ii: *mut f32,
762        ro: *mut f32,
763        io: *mut f32,
764        flags: ::std::os::raw::c_uint,
765    ) -> fftwf_plan;
766}
767extern "C" {
768    pub fn fftwf_plan_guru64_dft(
769        rank: ::std::os::raw::c_int,
770        dims: *const fftwf_iodim64,
771        howmany_rank: ::std::os::raw::c_int,
772        howmany_dims: *const fftwf_iodim64,
773        in_: *mut fftwf_complex,
774        out: *mut fftwf_complex,
775        sign: ::std::os::raw::c_int,
776        flags: ::std::os::raw::c_uint,
777    ) -> fftwf_plan;
778}
779extern "C" {
780    pub fn fftwf_plan_guru64_split_dft(
781        rank: ::std::os::raw::c_int,
782        dims: *const fftwf_iodim64,
783        howmany_rank: ::std::os::raw::c_int,
784        howmany_dims: *const fftwf_iodim64,
785        ri: *mut f32,
786        ii: *mut f32,
787        ro: *mut f32,
788        io: *mut f32,
789        flags: ::std::os::raw::c_uint,
790    ) -> fftwf_plan;
791}
792extern "C" {
793    pub fn fftwf_execute_dft(p: fftwf_plan, in_: *mut fftwf_complex, out: *mut fftwf_complex);
794}
795extern "C" {
796    pub fn fftwf_execute_split_dft(
797        p: fftwf_plan,
798        ri: *mut f32,
799        ii: *mut f32,
800        ro: *mut f32,
801        io: *mut f32,
802    );
803}
804extern "C" {
805    pub fn fftwf_plan_many_dft_r2c(
806        rank: ::std::os::raw::c_int,
807        n: *const ::std::os::raw::c_int,
808        howmany: ::std::os::raw::c_int,
809        in_: *mut f32,
810        inembed: *const ::std::os::raw::c_int,
811        istride: ::std::os::raw::c_int,
812        idist: ::std::os::raw::c_int,
813        out: *mut fftwf_complex,
814        onembed: *const ::std::os::raw::c_int,
815        ostride: ::std::os::raw::c_int,
816        odist: ::std::os::raw::c_int,
817        flags: ::std::os::raw::c_uint,
818    ) -> fftwf_plan;
819}
820extern "C" {
821    pub fn fftwf_plan_dft_r2c(
822        rank: ::std::os::raw::c_int,
823        n: *const ::std::os::raw::c_int,
824        in_: *mut f32,
825        out: *mut fftwf_complex,
826        flags: ::std::os::raw::c_uint,
827    ) -> fftwf_plan;
828}
829extern "C" {
830    pub fn fftwf_plan_dft_r2c_1d(
831        n: ::std::os::raw::c_int,
832        in_: *mut f32,
833        out: *mut fftwf_complex,
834        flags: ::std::os::raw::c_uint,
835    ) -> fftwf_plan;
836}
837extern "C" {
838    pub fn fftwf_plan_dft_r2c_2d(
839        n0: ::std::os::raw::c_int,
840        n1: ::std::os::raw::c_int,
841        in_: *mut f32,
842        out: *mut fftwf_complex,
843        flags: ::std::os::raw::c_uint,
844    ) -> fftwf_plan;
845}
846extern "C" {
847    pub fn fftwf_plan_dft_r2c_3d(
848        n0: ::std::os::raw::c_int,
849        n1: ::std::os::raw::c_int,
850        n2: ::std::os::raw::c_int,
851        in_: *mut f32,
852        out: *mut fftwf_complex,
853        flags: ::std::os::raw::c_uint,
854    ) -> fftwf_plan;
855}
856extern "C" {
857    pub fn fftwf_plan_many_dft_c2r(
858        rank: ::std::os::raw::c_int,
859        n: *const ::std::os::raw::c_int,
860        howmany: ::std::os::raw::c_int,
861        in_: *mut fftwf_complex,
862        inembed: *const ::std::os::raw::c_int,
863        istride: ::std::os::raw::c_int,
864        idist: ::std::os::raw::c_int,
865        out: *mut f32,
866        onembed: *const ::std::os::raw::c_int,
867        ostride: ::std::os::raw::c_int,
868        odist: ::std::os::raw::c_int,
869        flags: ::std::os::raw::c_uint,
870    ) -> fftwf_plan;
871}
872extern "C" {
873    pub fn fftwf_plan_dft_c2r(
874        rank: ::std::os::raw::c_int,
875        n: *const ::std::os::raw::c_int,
876        in_: *mut fftwf_complex,
877        out: *mut f32,
878        flags: ::std::os::raw::c_uint,
879    ) -> fftwf_plan;
880}
881extern "C" {
882    pub fn fftwf_plan_dft_c2r_1d(
883        n: ::std::os::raw::c_int,
884        in_: *mut fftwf_complex,
885        out: *mut f32,
886        flags: ::std::os::raw::c_uint,
887    ) -> fftwf_plan;
888}
889extern "C" {
890    pub fn fftwf_plan_dft_c2r_2d(
891        n0: ::std::os::raw::c_int,
892        n1: ::std::os::raw::c_int,
893        in_: *mut fftwf_complex,
894        out: *mut f32,
895        flags: ::std::os::raw::c_uint,
896    ) -> fftwf_plan;
897}
898extern "C" {
899    pub fn fftwf_plan_dft_c2r_3d(
900        n0: ::std::os::raw::c_int,
901        n1: ::std::os::raw::c_int,
902        n2: ::std::os::raw::c_int,
903        in_: *mut fftwf_complex,
904        out: *mut f32,
905        flags: ::std::os::raw::c_uint,
906    ) -> fftwf_plan;
907}
908extern "C" {
909    pub fn fftwf_plan_guru_dft_r2c(
910        rank: ::std::os::raw::c_int,
911        dims: *const fftwf_iodim,
912        howmany_rank: ::std::os::raw::c_int,
913        howmany_dims: *const fftwf_iodim,
914        in_: *mut f32,
915        out: *mut fftwf_complex,
916        flags: ::std::os::raw::c_uint,
917    ) -> fftwf_plan;
918}
919extern "C" {
920    pub fn fftwf_plan_guru_dft_c2r(
921        rank: ::std::os::raw::c_int,
922        dims: *const fftwf_iodim,
923        howmany_rank: ::std::os::raw::c_int,
924        howmany_dims: *const fftwf_iodim,
925        in_: *mut fftwf_complex,
926        out: *mut f32,
927        flags: ::std::os::raw::c_uint,
928    ) -> fftwf_plan;
929}
930extern "C" {
931    pub fn fftwf_plan_guru_split_dft_r2c(
932        rank: ::std::os::raw::c_int,
933        dims: *const fftwf_iodim,
934        howmany_rank: ::std::os::raw::c_int,
935        howmany_dims: *const fftwf_iodim,
936        in_: *mut f32,
937        ro: *mut f32,
938        io: *mut f32,
939        flags: ::std::os::raw::c_uint,
940    ) -> fftwf_plan;
941}
942extern "C" {
943    pub fn fftwf_plan_guru_split_dft_c2r(
944        rank: ::std::os::raw::c_int,
945        dims: *const fftwf_iodim,
946        howmany_rank: ::std::os::raw::c_int,
947        howmany_dims: *const fftwf_iodim,
948        ri: *mut f32,
949        ii: *mut f32,
950        out: *mut f32,
951        flags: ::std::os::raw::c_uint,
952    ) -> fftwf_plan;
953}
954extern "C" {
955    pub fn fftwf_plan_guru64_dft_r2c(
956        rank: ::std::os::raw::c_int,
957        dims: *const fftwf_iodim64,
958        howmany_rank: ::std::os::raw::c_int,
959        howmany_dims: *const fftwf_iodim64,
960        in_: *mut f32,
961        out: *mut fftwf_complex,
962        flags: ::std::os::raw::c_uint,
963    ) -> fftwf_plan;
964}
965extern "C" {
966    pub fn fftwf_plan_guru64_dft_c2r(
967        rank: ::std::os::raw::c_int,
968        dims: *const fftwf_iodim64,
969        howmany_rank: ::std::os::raw::c_int,
970        howmany_dims: *const fftwf_iodim64,
971        in_: *mut fftwf_complex,
972        out: *mut f32,
973        flags: ::std::os::raw::c_uint,
974    ) -> fftwf_plan;
975}
976extern "C" {
977    pub fn fftwf_plan_guru64_split_dft_r2c(
978        rank: ::std::os::raw::c_int,
979        dims: *const fftwf_iodim64,
980        howmany_rank: ::std::os::raw::c_int,
981        howmany_dims: *const fftwf_iodim64,
982        in_: *mut f32,
983        ro: *mut f32,
984        io: *mut f32,
985        flags: ::std::os::raw::c_uint,
986    ) -> fftwf_plan;
987}
988extern "C" {
989    pub fn fftwf_plan_guru64_split_dft_c2r(
990        rank: ::std::os::raw::c_int,
991        dims: *const fftwf_iodim64,
992        howmany_rank: ::std::os::raw::c_int,
993        howmany_dims: *const fftwf_iodim64,
994        ri: *mut f32,
995        ii: *mut f32,
996        out: *mut f32,
997        flags: ::std::os::raw::c_uint,
998    ) -> fftwf_plan;
999}
1000extern "C" {
1001    pub fn fftwf_execute_dft_r2c(p: fftwf_plan, in_: *mut f32, out: *mut fftwf_complex);
1002}
1003extern "C" {
1004    pub fn fftwf_execute_dft_c2r(p: fftwf_plan, in_: *mut fftwf_complex, out: *mut f32);
1005}
1006extern "C" {
1007    pub fn fftwf_execute_split_dft_r2c(p: fftwf_plan, in_: *mut f32, ro: *mut f32, io: *mut f32);
1008}
1009extern "C" {
1010    pub fn fftwf_execute_split_dft_c2r(p: fftwf_plan, ri: *mut f32, ii: *mut f32, out: *mut f32);
1011}
1012extern "C" {
1013    pub fn fftwf_plan_many_r2r(
1014        rank: ::std::os::raw::c_int,
1015        n: *const ::std::os::raw::c_int,
1016        howmany: ::std::os::raw::c_int,
1017        in_: *mut f32,
1018        inembed: *const ::std::os::raw::c_int,
1019        istride: ::std::os::raw::c_int,
1020        idist: ::std::os::raw::c_int,
1021        out: *mut f32,
1022        onembed: *const ::std::os::raw::c_int,
1023        ostride: ::std::os::raw::c_int,
1024        odist: ::std::os::raw::c_int,
1025        kind: *const fftwf_r2r_kind,
1026        flags: ::std::os::raw::c_uint,
1027    ) -> fftwf_plan;
1028}
1029extern "C" {
1030    pub fn fftwf_plan_r2r(
1031        rank: ::std::os::raw::c_int,
1032        n: *const ::std::os::raw::c_int,
1033        in_: *mut f32,
1034        out: *mut f32,
1035        kind: *const fftwf_r2r_kind,
1036        flags: ::std::os::raw::c_uint,
1037    ) -> fftwf_plan;
1038}
1039extern "C" {
1040    pub fn fftwf_plan_r2r_1d(
1041        n: ::std::os::raw::c_int,
1042        in_: *mut f32,
1043        out: *mut f32,
1044        kind: fftwf_r2r_kind,
1045        flags: ::std::os::raw::c_uint,
1046    ) -> fftwf_plan;
1047}
1048extern "C" {
1049    pub fn fftwf_plan_r2r_2d(
1050        n0: ::std::os::raw::c_int,
1051        n1: ::std::os::raw::c_int,
1052        in_: *mut f32,
1053        out: *mut f32,
1054        kind0: fftwf_r2r_kind,
1055        kind1: fftwf_r2r_kind,
1056        flags: ::std::os::raw::c_uint,
1057    ) -> fftwf_plan;
1058}
1059extern "C" {
1060    pub fn fftwf_plan_r2r_3d(
1061        n0: ::std::os::raw::c_int,
1062        n1: ::std::os::raw::c_int,
1063        n2: ::std::os::raw::c_int,
1064        in_: *mut f32,
1065        out: *mut f32,
1066        kind0: fftwf_r2r_kind,
1067        kind1: fftwf_r2r_kind,
1068        kind2: fftwf_r2r_kind,
1069        flags: ::std::os::raw::c_uint,
1070    ) -> fftwf_plan;
1071}
1072extern "C" {
1073    pub fn fftwf_plan_guru_r2r(
1074        rank: ::std::os::raw::c_int,
1075        dims: *const fftwf_iodim,
1076        howmany_rank: ::std::os::raw::c_int,
1077        howmany_dims: *const fftwf_iodim,
1078        in_: *mut f32,
1079        out: *mut f32,
1080        kind: *const fftwf_r2r_kind,
1081        flags: ::std::os::raw::c_uint,
1082    ) -> fftwf_plan;
1083}
1084extern "C" {
1085    pub fn fftwf_plan_guru64_r2r(
1086        rank: ::std::os::raw::c_int,
1087        dims: *const fftwf_iodim64,
1088        howmany_rank: ::std::os::raw::c_int,
1089        howmany_dims: *const fftwf_iodim64,
1090        in_: *mut f32,
1091        out: *mut f32,
1092        kind: *const fftwf_r2r_kind,
1093        flags: ::std::os::raw::c_uint,
1094    ) -> fftwf_plan;
1095}
1096extern "C" {
1097    pub fn fftwf_execute_r2r(p: fftwf_plan, in_: *mut f32, out: *mut f32);
1098}
1099extern "C" {
1100    pub fn fftwf_destroy_plan(p: fftwf_plan);
1101}
1102extern "C" {
1103    pub fn fftwf_forget_wisdom();
1104}
1105extern "C" {
1106    pub fn fftwf_cleanup();
1107}
1108extern "C" {
1109    pub fn fftwf_set_timelimit(t: f64);
1110}
1111extern "C" {
1112    pub fn fftwf_plan_with_nthreads(nthreads: ::std::os::raw::c_int);
1113}
1114extern "C" {
1115    pub fn fftwf_init_threads() -> ::std::os::raw::c_int;
1116}
1117extern "C" {
1118    pub fn fftwf_cleanup_threads();
1119}
1120extern "C" {
1121    pub fn fftwf_make_planner_thread_safe();
1122}
1123extern "C" {
1124    pub fn fftwf_export_wisdom_to_filename(
1125        filename: *const ::std::os::raw::c_char,
1126    ) -> ::std::os::raw::c_int;
1127}
1128extern "C" {
1129    pub fn fftwf_export_wisdom_to_file(output_file: *mut FILE);
1130}
1131extern "C" {
1132    pub fn fftwf_export_wisdom_to_string() -> *mut ::std::os::raw::c_char;
1133}
1134extern "C" {
1135    pub fn fftwf_export_wisdom(write_char: fftwf_write_char_func, data: *mut ::core::ffi::c_void);
1136}
1137extern "C" {
1138    pub fn fftwf_import_system_wisdom() -> ::std::os::raw::c_int;
1139}
1140extern "C" {
1141    pub fn fftwf_import_wisdom_from_filename(
1142        filename: *const ::std::os::raw::c_char,
1143    ) -> ::std::os::raw::c_int;
1144}
1145extern "C" {
1146    pub fn fftwf_import_wisdom_from_file(input_file: *mut FILE) -> ::std::os::raw::c_int;
1147}
1148extern "C" {
1149    pub fn fftwf_import_wisdom_from_string(
1150        input_string: *const ::std::os::raw::c_char,
1151    ) -> ::std::os::raw::c_int;
1152}
1153extern "C" {
1154    pub fn fftwf_import_wisdom(
1155        read_char: fftwf_read_char_func,
1156        data: *mut ::core::ffi::c_void,
1157    ) -> ::std::os::raw::c_int;
1158}
1159extern "C" {
1160    pub fn fftwf_fprint_plan(p: fftwf_plan, output_file: *mut FILE);
1161}
1162extern "C" {
1163    pub fn fftwf_print_plan(p: fftwf_plan);
1164}
1165extern "C" {
1166    pub fn fftwf_sprint_plan(p: fftwf_plan) -> *mut ::std::os::raw::c_char;
1167}
1168extern "C" {
1169    pub fn fftwf_malloc(n: usize) -> *mut ::core::ffi::c_void;
1170}
1171extern "C" {
1172    pub fn fftwf_alloc_real(n: usize) -> *mut f32;
1173}
1174extern "C" {
1175    pub fn fftwf_alloc_complex(n: usize) -> *mut fftwf_complex;
1176}
1177extern "C" {
1178    pub fn fftwf_free(p: *mut ::core::ffi::c_void);
1179}
1180extern "C" {
1181    pub fn fftwf_flops(p: fftwf_plan, add: *mut f64, mul: *mut f64, fmas: *mut f64);
1182}
1183extern "C" {
1184    pub fn fftwf_estimate_cost(p: fftwf_plan) -> f64;
1185}
1186extern "C" {
1187    pub fn fftwf_cost(p: fftwf_plan) -> f64;
1188}
1189extern "C" {
1190    pub fn fftwf_alignment_of(p: *mut f32) -> ::std::os::raw::c_int;
1191}
1192#[repr(C)]
1193#[derive(Debug, Copy, Clone)]
1194pub struct fftwl_plan_s {
1195    _unused: [u8; 0],
1196}
1197pub type fftwl_plan = *mut fftwl_plan_s;
1198pub type fftwl_iodim = fftw_iodim_do_not_use_me;
1199pub type fftwl_iodim64 = fftw_iodim64_do_not_use_me;
1200pub use self::fftw_r2r_kind_do_not_use_me as fftwl_r2r_kind;
1201pub type fftwl_write_char_func = fftw_write_char_func_do_not_use_me;
1202pub type fftwl_read_char_func = fftw_read_char_func_do_not_use_me;