fftw3/libutils

Some utility types and functions not directly used to calculate FFT

Types

fftw_iodim {.pure.} = object
  n*: cint
  `is`*: cint
  os*: cint
fftw_iodim64 {.pure.} = object
  n*: ptrdiff_t
  `is`*: ptrdiff_t
  os*: ptrdiff_t
fftw_plan = pointer
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_read_char_func = proc (a2: pointer): cint {.cdecl.}
fftw_write_char_func = proc (c: char; a3: pointer) {.cdecl.}
ptrdiff_t = clong
wchar_t = cint

Vars

fftw_cc: cstring

Lets

fftw_version: cstring

Consts

Fftw3Lib = "/home/runner/work/nimfftw3/nimfftw3/third_party/lib/libfftw3.so.(|3|3.6.9)"
Fftw3LibName = "libfftw3.so.(|3|3.6.9)"

Procs

proc fftw_alignment_of(p: ptr cdouble): cint {.cdecl,
    importc: "fftw_alignment_of", dynlib: Fftw3Lib, ...raises: [], tags: [].}
proc fftw_alloc_complex(n: csize_t): ptr fftw_complex {.cdecl,
    importc: "fftw_alloc_complex", dynlib: Fftw3Lib, ...raises: [], tags: [].}
proc fftw_alloc_real(n: csize_t): ptr cdouble {.cdecl,
    importc: "fftw_alloc_real", dynlib: Fftw3Lib, ...raises: [], tags: [].}
proc fftw_cost(p: fftw_plan): cdouble {.cdecl, importc: "fftw_cost",
                                        dynlib: Fftw3Lib, ...raises: [], tags: [].}
proc fftw_estimate_cost(p: fftw_plan): cdouble {.cdecl,
    importc: "fftw_estimate_cost", dynlib: Fftw3Lib, ...raises: [], tags: [].}
proc fftw_flops(p: fftw_plan; add: ptr cdouble; mul: ptr cdouble;
                fmas: ptr cdouble) {.cdecl, importc: "fftw_flops",
                                     dynlib: Fftw3Lib, ...raises: [], tags: [].}
proc fftw_fprint_plan(p: fftw_plan; output_file: ptr File) {.cdecl,
    importc: "fftw_fprint_plan", dynlib: Fftw3Lib, ...raises: [], tags: [].}
proc fftw_free(p: pointer) {.cdecl, importc: "fftw_free", dynlib: Fftw3Lib,
                             ...raises: [], tags: [].}
proc fftw_malloc(n: csize_t): pointer {.cdecl, importc: "fftw_malloc",
                                        dynlib: Fftw3Lib, ...raises: [], tags: [].}
proc fftw_print_plan(p: fftw_plan) {.cdecl, importc: "fftw_print_plan",
                                     dynlib: Fftw3Lib, ...raises: [], tags: [].}
proc fftw_sprint_plan(p: fftw_plan): cstring {.cdecl,
    importc: "fftw_sprint_plan", dynlib: Fftw3Lib, ...raises: [], tags: [].}
proc getFftw3Lib(): string {.compiletime, ...raises: [], tags: [].}