Some utility types and functions not directly used to calculate FFT
Types
fftw_r2r_kind = enum FFTW_R2HC = 0, FFTW_HC2R = 1, FFTW_DHT = 2, FFTW_REDFT00 = 3, FFTW_REDFT01 = 4, FFTW_REDFT10 = 5, FFTW_REDFT11 = 6, FFTW_RODFT00 = 7, FFTW_RODFT01 = 8, FFTW_RODFT10 = 9, FFTW_RODFT11 = 10
fftw_iodim {...}{.pure.} = object n*: cint `is`*: cint os*: cint
ptrdiff_t = clong
wchar_t = cint
fftw_iodim64 {...}{.pure.} = object n*: ptrdiff_t `is`*: ptrdiff_t os*: ptrdiff_t
fftw_write_char_func = proc (c: char; a3: pointer) {...}{.cdecl.}
fftw_read_char_func = proc (a2: pointer): cint {...}{.cdecl.}
fftw_plan = pointer
Vars
fftw_cc: cstring
fftw_codelet_optim: cstring
Lets
fftw_version: cstring
Procs
proc fftw_fprint_plan(p: fftw_plan; output_file: ptr File) {...}{.cdecl, importc: "fftw_fprint_plan", dynlib: Fftw3Lib.}
proc fftw_print_plan(p: fftw_plan) {...}{.cdecl, importc: "fftw_print_plan", dynlib: Fftw3Lib.}
proc fftw_sprint_plan(p: fftw_plan): cstring {...}{.cdecl, importc: "fftw_sprint_plan", dynlib: Fftw3Lib.}
proc fftw_malloc(n: csize_t): pointer {...}{.cdecl, importc: "fftw_malloc", dynlib: Fftw3Lib.}
proc fftw_alloc_real(n: csize_t): ptr cdouble {...}{.cdecl, importc: "fftw_alloc_real", dynlib: Fftw3Lib.}
proc fftw_alloc_complex(n: csize_t): ptr fftw_complex {...}{.cdecl, importc: "fftw_alloc_complex", dynlib: Fftw3Lib.}
proc fftw_free(p: pointer) {...}{.cdecl, importc: "fftw_free", dynlib: Fftw3Lib.}
proc fftw_flops(p: fftw_plan; add: ptr cdouble; mul: ptr cdouble; fmas: ptr cdouble) {...}{.cdecl, importc: "fftw_flops", dynlib: Fftw3Lib.}
proc fftw_estimate_cost(p: fftw_plan): cdouble {...}{.cdecl, importc: "fftw_estimate_cost", dynlib: Fftw3Lib.}
proc fftw_cost(p: fftw_plan): cdouble {...}{.cdecl, importc: "fftw_cost", dynlib: Fftw3Lib.}
proc fftw_alignment_of(p: ptr cdouble): cint {...}{.cdecl, importc: "fftw_alignment_of", dynlib: Fftw3Lib.}