diff --git a/.gitignore b/.gitignore index e5dbf01..63e2a1c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -tests/test1 +tests/bin/ testresults/ nimcache/ diff --git a/src/fftw3.nim b/src/fftw3.nim index 3bab0bf..a91667b 100644 --- a/src/fftw3.nim +++ b/src/fftw3.nim @@ -49,8 +49,9 @@ import complex import arraymancer/tensor/private/p_accessors import fftw3/libutils # Import mostly for documentation links -import fftw3/guru -import fftw3/wisdom +{.push warning[UnusedImport]: off.} +import fftw3/guru, fftw3/wisdom +{.pop.} # export used types export fftw_plan export fftw_r2r_kind @@ -184,11 +185,11 @@ proc ifftshift*[T](t: Tensor[T]): Tensor[T] = proc fftw_execute*(p: fftw_plan) {.cdecl, importc: "fftw_execute", dynlib: Fftw3Lib.} ## Execute a plan -proc fftw_execute_dft*(p: fftw_plan, inptr: ptr fftw_complex, outptr: ptr fftw_complex) {.cdecl, +proc fftw_execute_dft*(p: fftw_plan, inptr: ptr Complex64, outptr: ptr Complex64) {.cdecl, importc: "fftw_execute_dft", dynlib: Fftw3Lib.} ## Execute a plan with different input / output memory address -proc fftw_execute_dft*(p: fftw_plan, input: Tensor[fftw_complex], output: Tensor[fftw_complex]) = +proc fftw_execute_dft*(p: fftw_plan, input: Tensor[Complex64], output: Tensor[Complex64]) = ## Execute an fft using a pre-calculated ``fftw_plan`` runnableExamples: import arraymancer @@ -217,61 +218,61 @@ proc fftw_execute_r2r*(p: fftw_plan, inptr: ptr cdouble, outptr: ptr cdouble) {. dynlib: Fftw3Lib.} ## Execute a plan real-to-real -proc fftw_execute_dft_r2c*(p: fftw_plan, inptr: ptr cdouble, outptr: ptr fftw_complex) {.cdecl, +proc fftw_execute_dft_r2c*(p: fftw_plan, inptr: ptr cdouble, outptr: ptr Complex64) {.cdecl, importc: "fftw_execute_dft_r2c", dynlib: Fftw3Lib.} ## Execute a plan real-to-complex -proc fftw_execute_dft_r2c*(p: fftw_plan, input: Tensor[float64], output: Tensor[fftw_complex]) = +proc fftw_execute_dft_r2c*(p: fftw_plan, input: Tensor[float64], output: Tensor[Complex64]) = ## Execute a real-to-complex plan on new Tensor fftw_execute_dft_r2c(p, cast[ptr cdouble](input.get_data_ptr), output.get_data_ptr) -proc fftw_execute_dft_c2r*(p: fftw_plan, inptr: ptr fftw_complex, outptr: ptr cdouble) {.cdecl, +proc fftw_execute_dft_c2r*(p: fftw_plan, inptr: ptr Complex64, outptr: ptr cdouble) {.cdecl, importc: "fftw_execute_dft_c2r", dynlib: Fftw3Lib.} ## Execute a plan complex-to-real -proc fftw_execute_dft_c2r*(p: fftw_plan, input: Tensor[fftw_complex], output: Tensor[float64]) = +proc fftw_execute_dft_c2r*(p: fftw_plan, input: Tensor[Complex64], output: Tensor[float64]) = ## Execute a complex-to-real plan on new Tensor fftw_execute_dft_c2r(p, input.get_data_ptr, cast[ptr cdouble](output.get_data_ptr)) # FFTW Plan API -proc fftw_plan_dft*(rank: cint, n: ptr cint, inptr: ptr fftw_complex, - outptr: ptr fftw_complex, sign: cint, flags: cuint): fftw_plan {. +proc fftw_plan_dft*(rank: cint, n: ptr cint, inptr: ptr Complex64, + outptr: ptr Complex64, sign: cint, flags: cuint): fftw_plan {. cdecl, importc: "fftw_plan_dft", dynlib: Fftw3Lib.} -proc fftw_plan_dft*(input: Tensor[fftw_complex], output: Tensor[fftw_complex], sign: cint, +proc fftw_plan_dft*(input: Tensor[Complex64], output: Tensor[Complex64], sign: cint, flags: cuint = FFTW_MEASURE): fftw_plan = ## Generic Tensor plan calculation using FFTW_MEASURE as a default fftw flag. ## Read carefully FFTW documentation about the input / output dimension it will change depending on the transformation. let shape: seq[cint] = map(input.shape.toSeq, proc(x: int): cint = x.cint) result = fftw_plan_dft(input.rank.cint, (shape[0].unsafeaddr), input.get_data_ptr, output.get_data_ptr, sign, flags) -proc fftw_plan_dft_1d*(n: cint, inptr: ptr fftw_complex, outptr: ptr fftw_complex, +proc fftw_plan_dft_1d*(n: cint, inptr: ptr Complex64, outptr: ptr Complex64, sign: cint, flags: cuint): fftw_plan {.cdecl, importc: "fftw_plan_dft_1d", dynlib: Fftw3Lib.} -proc fftw_plan_dft_1d*(input: Tensor[fftw_complex], output: Tensor[fftw_complex], sign: cint, +proc fftw_plan_dft_1d*(input: Tensor[Complex64], output: Tensor[Complex64], sign: cint, flags: cuint = FFTW_MEASURE): fftw_plan = ## 1D Tensor plan calculation using FFTW_MEASURE as a default fftw flag. assert(input.rank == 1) let shape: seq[cint] = map(input.shape.toSeq, proc(x: int): cint = x.cint) result = fftw_plan_dft_1d(shape[0], input.get_data_ptr, output.get_data_ptr, sign, flags) -proc fftw_plan_dft_2d*(n0: cint, n1: cint, inptr: ptr fftw_complex, - outptr: ptr fftw_complex, sign: cint, flags: cuint): fftw_plan {. +proc fftw_plan_dft_2d*(n0: cint, n1: cint, inptr: ptr Complex64, + outptr: ptr Complex64, sign: cint, flags: cuint): fftw_plan {. cdecl, importc: "fftw_plan_dft_2d", dynlib: Fftw3Lib.} -proc fftw_plan_dft_2d*(input: Tensor[fftw_complex], output: Tensor[fftw_complex], sign: cint, +proc fftw_plan_dft_2d*(input: Tensor[Complex64], output: Tensor[Complex64], sign: cint, flags: cuint = FFTW_MEASURE): fftw_plan = ## 2D Tensor plan calculation using FFTW_MEASURE as a default fftw flag. assert(input.rank == 2) let shape: seq[cint] = map(input.shape.toSeq, proc(x: int): cint = x.cint) result = fftw_plan_dft_2d(shape[0], shape[1], input.get_data_ptr, output.get_data_ptr, sign, flags) -proc fftw_plan_dft_3d*(n0: cint, n1: cint, n2: cint, inptr: ptr fftw_complex, - outptr: ptr fftw_complex, sign: cint, flags: cuint): fftw_plan {. +proc fftw_plan_dft_3d*(n0: cint, n1: cint, n2: cint, inptr: ptr Complex64, + outptr: ptr Complex64, sign: cint, flags: cuint): fftw_plan {. cdecl, importc: "fftw_plan_dft_3d", dynlib: Fftw3Lib.} -proc fftw_plan_dft_3d*(input: Tensor[fftw_complex], output: Tensor[fftw_complex], sign: cint, +proc fftw_plan_dft_3d*(input: Tensor[Complex64], output: Tensor[Complex64], sign: cint, flags: cuint = FFTW_MEASURE): fftw_plan = ## 3D Tensor plan calculation using FFTW_MEASURE as a default fftw flag. assert(input.rank == 3) @@ -279,21 +280,21 @@ proc fftw_plan_dft_3d*(input: Tensor[fftw_complex], output: Tensor[fftw_complex] result = fftw_plan_dft_3d(shape[0], shape[1], shape[2], input.get_data_ptr, output.get_data_ptr, sign, flags) proc fftw_plan_dft_r2c*(rank: cint, n: ptr cint, inptr: ptr cdouble, - outptr: ptr fftw_complex, flags: cuint): fftw_plan {. + outptr: ptr Complex64, flags: cuint): fftw_plan {. cdecl, importc: "fftw_plan_dft_r2c", dynlib: Fftw3Lib.} -proc fftw_plan_dft_r2c*(input: Tensor[float64], output: Tensor[fftw_complex], flags: cuint = FFTW_MEASURE): fftw_plan = +proc fftw_plan_dft_r2c*(input: Tensor[float64], output: Tensor[Complex64], flags: cuint = FFTW_MEASURE): fftw_plan = ## Generic Real-to-Complex Tensor plan calculation using FFTW_MEASURE as a default fftw flag. ## Read carefully FFTW documentation about the input / output dimension as FFTW does not calculate redundant conjugate value. let shape: seq[cint] = map(input.shape.toSeq, proc(x: int): cint = x.cint) result = fftw_plan_dft_r2c(input.rank.cint, (shape[0].unsafeaddr), cast[ptr cdouble](input.get_data_ptr), output.get_data_ptr, flags) -proc fftw_plan_dft_r2c_1d*(n: cint, inptr: ptr cdouble, outptr: ptr fftw_complex, +proc fftw_plan_dft_r2c_1d*(n: cint, inptr: ptr cdouble, outptr: ptr Complex64, flags: cuint): fftw_plan {.cdecl, importc: "fftw_plan_dft_r2c_1d", dynlib: Fftw3Lib.} -proc fftw_plan_dft_r2c_1d*(input: Tensor[float64], output: Tensor[fftw_complex], +proc fftw_plan_dft_r2c_1d*(input: Tensor[float64], output: Tensor[Complex64], flags: cuint = FFTW_MEASURE): fftw_plan = ## 1D Real-to-Complex Tensor plan calculation using FFTW_MEASURE as a default fftw flag. assert(input.rank == 1) @@ -301,10 +302,10 @@ proc fftw_plan_dft_r2c_1d*(input: Tensor[float64], output: Tensor[fftw_complex], result = fftw_plan_dft_r2c_1d(shape[0], cast[ptr cdouble](input.get_data_ptr), output.get_data_ptr, flags) proc fftw_plan_dft_r2c_2d*(n0: cint, n1: cint, inptr: ptr cdouble, - outptr: ptr fftw_complex, flags: cuint): fftw_plan {. + outptr: ptr Complex64, flags: cuint): fftw_plan {. cdecl, importc: "fftw_plan_dft_r2c_2d", dynlib: Fftw3Lib.} -proc fftw_plan_dft_r2c_2d*(input: Tensor[float64], output: Tensor[fftw_complex], +proc fftw_plan_dft_r2c_2d*(input: Tensor[float64], output: Tensor[Complex64], flags: cuint = FFTW_MEASURE): fftw_plan = ## 2D Real-to-Complex Tensor plan calculation using FFTW_MEASURE as a default fftw flag. assert(input.rank == 2) @@ -312,10 +313,10 @@ proc fftw_plan_dft_r2c_2d*(input: Tensor[float64], output: Tensor[fftw_complex], result = fftw_plan_dft_r2c_2d(shape[0], shape[1], cast[ptr cdouble](input.get_data_ptr), output.get_data_ptr, flags) proc fftw_plan_dft_r2c_3d*(n0: cint, n1: cint, n2: cint, inptr: ptr cdouble, - outptr: ptr fftw_complex, flags: cuint): fftw_plan {. + outptr: ptr Complex64, flags: cuint): fftw_plan {. cdecl, importc: "fftw_plan_dft_r2c_3d", dynlib: Fftw3Lib.} -proc fftw_plan_dft_r2c_3d*(input: Tensor[float64], output: Tensor[fftw_complex], +proc fftw_plan_dft_r2c_3d*(input: Tensor[float64], output: Tensor[Complex64], flags: cuint = FFTW_MEASURE): fftw_plan = ## 3D Real-to-Complex Tensor plan calculation using FFTW_MEASURE as a default fftw flag. assert(input.rank == 3) @@ -323,43 +324,43 @@ proc fftw_plan_dft_r2c_3d*(input: Tensor[float64], output: Tensor[fftw_complex], result = fftw_plan_dft_r2c_3d(shape[0], shape[1], shape[2], cast[ptr cdouble](input.get_data_ptr), output.get_data_ptr, flags) -proc fftw_plan_dft_c2r*(rank: cint, n: ptr cint, inptr: ptr fftw_complex, +proc fftw_plan_dft_c2r*(rank: cint, n: ptr cint, inptr: ptr Complex64, outptr: ptr cdouble, flags: cuint): fftw_plan {.cdecl, importc: "fftw_plan_dft_c2r", dynlib: Fftw3Lib.} -proc fftw_plan_dft_c2r*(input: Tensor[fftw_complex], output: Tensor[float64], flags: cuint = FFTW_MEASURE): fftw_plan = +proc fftw_plan_dft_c2r*(input: Tensor[Complex64], output: Tensor[float64], flags: cuint = FFTW_MEASURE): fftw_plan = ## Generic Complex-to-real Tensor plan calculation using FFTW_MEASURE as a default fftw flag. let shape: seq[cint] = map(input.shape.toSeq, proc(x: int): cint = x.cint) result = fftw_plan_dft_c2r(input.rank.cint, (shape[0].unsafeaddr), input.get_data_ptr, cast[ptr cdouble]( output.get_data_ptr), flags) -proc fftw_plan_dft_c2r_1d*(n: cint, inptr: ptr fftw_complex, outptr: ptr cdouble, +proc fftw_plan_dft_c2r_1d*(n: cint, inptr: ptr Complex64, outptr: ptr cdouble, flags: cuint): fftw_plan {.cdecl, importc: "fftw_plan_dft_c2r_1d", dynlib: Fftw3Lib.} -proc fftw_plan_dft_c2r_1d*(input: Tensor[fftw_complex], output: Tensor[float64], +proc fftw_plan_dft_c2r_1d*(input: Tensor[Complex64], output: Tensor[float64], flags: cuint = FFTW_MEASURE): fftw_plan = ## 1D Complex-to-real Tensor plan calculation using FFTW_MEASURE as a default fftw flag. assert(input.rank == 1) let shape: seq[cint] = map(input.shape.toSeq, proc(x: int): cint = x.cint) result = fftw_plan_dft_c2r_1d(shape[0], input.get_data_ptr, cast[ptr cdouble](output.get_data_ptr), flags) -proc fftw_plan_dft_c2r_2d*(n0: cint, n1: cint, inptr: ptr fftw_complex, +proc fftw_plan_dft_c2r_2d*(n0: cint, n1: cint, inptr: ptr Complex64, outptr: ptr cdouble, flags: cuint): fftw_plan {.cdecl, importc: "fftw_plan_dft_c2r_2d", dynlib: Fftw3Lib.} -proc fftw_plan_dft_c2r_2d*(input: Tensor[fftw_complex], output: Tensor[float64], +proc fftw_plan_dft_c2r_2d*(input: Tensor[Complex64], output: Tensor[float64], flags: cuint = FFTW_MEASURE): fftw_plan = ## 2D Complex-to-real Tensor plan calculation using FFTW_MEASURE as a default fftw flag. assert(input.rank == 2) let shape: seq[cint] = map(input.shape.toSeq, proc(x: int): cint = x.cint) result = fftw_plan_dft_c2r_2d(shape[0], shape[1], input.get_data_ptr, cast[ptr cdouble](output.get_data_ptr), flags) -proc fftw_plan_dft_c2r_3d*(n0: cint, n1: cint, n2: cint, inptr: ptr fftw_complex, +proc fftw_plan_dft_c2r_3d*(n0: cint, n1: cint, n2: cint, inptr: ptr Complex64, outptr: ptr cdouble, flags: cuint): fftw_plan {.cdecl, importc: "fftw_plan_dft_c2r_3d", dynlib: Fftw3Lib.} -proc fftw_plan_dft_c2r_3d*(input: Tensor[fftw_complex], output: Tensor[float64], +proc fftw_plan_dft_c2r_3d*(input: Tensor[Complex64], output: Tensor[float64], flags: cuint = FFTW_MEASURE): fftw_plan = ## 3D Complex-to-real Tensor plan calculation using FFTW_MEASURE as a default fftw flag. assert(input.rank == 3) @@ -419,8 +420,8 @@ proc fftw_plan_r2r_3d*(input: Tensor[float64], output: Tensor[float64], kinds: s # FFTW Plan Many API proc fftw_plan_many_dft*(rank: cint, n: ptr cint, howmany: cint, - inptr: ptr fftw_complex, inembed: ptr cint, - istride: cint, idist: cint, outptr: ptr fftw_complex, + inptr: ptr Complex64, inembed: ptr cint, + istride: cint, idist: cint, outptr: ptr Complex64, onembed: ptr cint, ostride: cint, odist: cint, sign: cint, flags: cuint): fftw_plan {.cdecl, importc: "fftw_plan_many_dft", dynlib: Fftw3Lib.} @@ -429,7 +430,7 @@ proc fftw_plan_many_dft*(rank: cint, n: ptr cint, howmany: cint, ## Plans obtained in this way can often be faster than calling FFTW multiple times for the individual transforms. The basic fftw_plan_dft interface corresponds to howmany=1 (in which case the dist parameters are ignored). proc fftw_plan_many_dft_c2r*(rank: cint, n: ptr cint, howmany: cint, - inptr: ptr fftw_complex, inembed: ptr cint, + inptr: ptr Complex64, inembed: ptr cint, istride: cint, idist: cint, outptr: ptr cdouble, onembed: ptr cint, ostride: cint, odist: cint, flags: cuint): fftw_plan {.cdecl, @@ -438,7 +439,7 @@ proc fftw_plan_many_dft_c2r*(rank: cint, n: ptr cint, howmany: cint, proc fftw_plan_many_dft_r2c*(rank: cint, n: ptr cint, howmany: cint, inptr: ptr cdouble, inembed: ptr cint, istride: cint, idist: cint, - outptr: ptr fftw_complex, onembed: ptr cint, + outptr: ptr Complex64, onembed: ptr cint, ostride: cint, odist: cint, flags: cuint): fftw_plan {. cdecl, importc: "fftw_plan_many_dft_r2c", dynlib: Fftw3Lib.} diff --git a/src/fftw3/guru.nim b/src/fftw3/guru.nim index be1e460..2f0748f 100644 --- a/src/fftw3/guru.nim +++ b/src/fftw3/guru.nim @@ -1,4 +1,5 @@ import libutils +import complex ## FFTW Guru API for experts who knows what they're doing. @@ -15,8 +16,8 @@ proc fftw_execute_split_dft_c2r*(p: fftw_plan, ri: ptr cdouble, ii: ptr cdouble, # FFTW "Guru" API proc fftw_plan_guru_dft*(rank: cint, dims: ptr fftw_iodim, howmany_rank: cint, - howmany_dims: ptr fftw_iodim, inptr: ptr fftw_complex, - outptr: ptr fftw_complex, sign: cint, flags: cuint): fftw_plan {. + howmany_dims: ptr fftw_iodim, inptr: ptr Complex64, + outptr: ptr Complex64, sign: cint, flags: cuint): fftw_plan {. cdecl, importc: "fftw_plan_guru_dft", dynlib: Fftw3Lib.} proc fftw_plan_guru_split_dft*(rank: cint, dims: ptr fftw_iodim, howmany_rank: cint, howmany_dims: ptr fftw_iodim, @@ -25,7 +26,7 @@ proc fftw_plan_guru_split_dft*(rank: cint, dims: ptr fftw_iodim, cdecl, importc: "fftw_plan_guru_split_dft", dynlib: Fftw3Lib.} proc fftw_plan_guru64_dft*(rank: cint, dims: ptr fftw_iodim64, howmany_rank: cint, howmany_dims: ptr fftw_iodim64, - inptr: ptr fftw_complex, outptr: ptr fftw_complex, + inptr: ptr Complex64, outptr: ptr Complex64, sign: cint, flags: cuint): fftw_plan {.cdecl, importc: "fftw_plan_guru64_dft", dynlib: Fftw3Lib.} proc fftw_plan_guru64_split_dft*(rank: cint, dims: ptr fftw_iodim64, @@ -36,12 +37,12 @@ proc fftw_plan_guru64_split_dft*(rank: cint, dims: ptr fftw_iodim64, cdecl, importc: "fftw_plan_guru64_split_dft", dynlib: Fftw3Lib.} proc fftw_plan_guru_dft_r2c*(rank: cint, dims: ptr fftw_iodim, howmany_rank: cint, howmany_dims: ptr fftw_iodim, - inptr: ptr cdouble, outptr: ptr fftw_complex, + inptr: ptr cdouble, outptr: ptr Complex64, flags: cuint): fftw_plan {.cdecl, importc: "fftw_plan_guru_dft_r2c", dynlib: Fftw3Lib.} proc fftw_plan_guru_dft_c2r*(rank: cint, dims: ptr fftw_iodim, howmany_rank: cint, howmany_dims: ptr fftw_iodim, - inptr: ptr fftw_complex, outptr: ptr cdouble, + inptr: ptr Complex64, outptr: ptr cdouble, flags: cuint): fftw_plan {.cdecl, importc: "fftw_plan_guru_dft_c2r", dynlib: Fftw3Lib.} proc fftw_plan_guru_split_dft_r2c*(rank: cint, dims: ptr fftw_iodim, @@ -59,13 +60,13 @@ proc fftw_plan_guru_split_dft_c2r*(rank: cint, dims: ptr fftw_iodim, proc fftw_plan_guru64_dft_r2c*(rank: cint, dims: ptr fftw_iodim64, howmany_rank: cint, howmany_dims: ptr fftw_iodim64, - inptr: ptr cdouble, outptr: ptr fftw_complex, + inptr: ptr cdouble, outptr: ptr Complex64, flags: cuint): fftw_plan {.cdecl, importc: "fftw_plan_guru64_dft_r2c", dynlib: Fftw3Lib.} proc fftw_plan_guru64_dft_c2r*(rank: cint, dims: ptr fftw_iodim64, howmany_rank: cint, howmany_dims: ptr fftw_iodim64, - inptr: ptr fftw_complex, outptr: ptr cdouble, + inptr: ptr Complex64, outptr: ptr cdouble, flags: cuint): fftw_plan {.cdecl, importc: "fftw_plan_guru64_dft_c2r", dynlib: Fftw3Lib.} proc fftw_plan_guru64_split_dft_r2c*(rank: cint, dims: ptr fftw_iodim64, diff --git a/src/fftw3/libutils.nim b/src/fftw3/libutils.nim index de265ec..bb519c4 100644 --- a/src/fftw3/libutils.nim +++ b/src/fftw3/libutils.nim @@ -28,7 +28,8 @@ type fftw_write_char_func* = proc (c: char, a3: pointer) {.cdecl.} fftw_read_char_func* = proc (a2: pointer): cint {.cdecl.} - fftw_complex* = Complex64 + # Deprecated -> Use complex + fftw_complex = Complex64 fftw_plan* = pointer diff --git a/src/htmldocs/fftw3.html b/src/htmldocs/fftw3.html index e27b0ef..be488c9 100644 --- a/src/htmldocs/fftw3.html +++ b/src/htmldocs/fftw3.html @@ -151,11 +151,11 @@

fftw3

@@ -420,7 +419,7 @@

Planner flag

Imports

-libutils, guru, wisdom +fftw3/libutils, fftw3/guru, fftw3/wisdom

Consts

@@ -559,25 +558,24 @@

Procs

-
proc fftw_execute(p: fftw_plan) {...}{.cdecl, importc: "fftw_execute",
+
proc fftw_execute(p: fftw_plan) {...}{.cdecl, importc: "fftw_execute",
                                   dynlib: Fftw3Lib.}
Execute a plan
- -
proc fftw_execute_dft(p: fftw_plan; inptr: ptr fftw_complex;
-                      outptr: ptr fftw_complex) {...}{.cdecl,
-    importc: "fftw_execute_dft", dynlib: Fftw3Lib.}
+ +
proc fftw_execute_dft(p: fftw_plan; inptr: ptr Complex64; outptr: ptr Complex64) {...}{.
+    cdecl, importc: "fftw_execute_dft", dynlib: Fftw3Lib.}
Execute a plan with different input / output memory address
- -
proc fftw_execute_dft(p: fftw_plan; input: Tensor[fftw_complex];
-                      output: Tensor[fftw_complex]) {...}{.raises: [], tags: [].}
+ +
proc fftw_execute_dft(p: fftw_plan; input: Tensor[Complex64];
+                      output: Tensor[Complex64]) {...}{.raises: [], tags: [].}
Execute an fft using a pre-calculated fftw_plan @@ -604,32 +602,32 @@

Procs

-
proc fftw_execute_r2r(p: fftw_plan; inptr: ptr cdouble; outptr: ptr cdouble) {...}{.
+
proc fftw_execute_r2r(p: fftw_plan; inptr: ptr cdouble; outptr: ptr cdouble) {...}{.
     cdecl, importc: "fftw_execute_r2r", dynlib: Fftw3Lib.}
Execute a plan real-to-real
- -
proc fftw_execute_dft_r2c(p: fftw_plan; inptr: ptr cdouble;
-                          outptr: ptr fftw_complex) {...}{.cdecl,
+
+
proc fftw_execute_dft_r2c(p: fftw_plan; inptr: ptr cdouble;
+                          outptr: ptr Complex64) {...}{.cdecl,
     importc: "fftw_execute_dft_r2c", dynlib: Fftw3Lib.}
Execute a plan real-to-complex
- -
proc fftw_execute_dft_r2c(p: fftw_plan; input: Tensor[float64];
-                          output: Tensor[fftw_complex]) {...}{.raises: [], tags: [].}
+ +
proc fftw_execute_dft_r2c(p: fftw_plan; input: Tensor[float64];
+                          output: Tensor[Complex64]) {...}{.raises: [], tags: [].}
Execute a real-to-complex plan on new Tensor
- -
proc fftw_execute_dft_c2r(p: fftw_plan; inptr: ptr fftw_complex;
+
+
proc fftw_execute_dft_c2r(p: fftw_plan; inptr: ptr Complex64;
                           outptr: ptr cdouble) {...}{.cdecl,
     importc: "fftw_execute_dft_c2r", dynlib: Fftw3Lib.}
@@ -637,224 +635,224 @@

Procs

Execute a plan complex-to-real
- -
proc fftw_execute_dft_c2r(p: fftw_plan; input: Tensor[fftw_complex];
+
+
proc fftw_execute_dft_c2r(p: fftw_plan; input: Tensor[Complex64];
                           output: Tensor[float64]) {...}{.raises: [], tags: [].}
Execute a complex-to-real plan on new Tensor
- -
proc fftw_plan_dft(rank: cint; n: ptr cint; inptr: ptr fftw_complex;
-                   outptr: ptr fftw_complex; sign: cint; flags: cuint): fftw_plan {...}{.
+
+
proc fftw_plan_dft(rank: cint; n: ptr cint; inptr: ptr Complex64;
+                   outptr: ptr Complex64; sign: cint; flags: cuint): fftw_plan {...}{.
     cdecl, importc: "fftw_plan_dft", dynlib: Fftw3Lib.}
- -
proc fftw_plan_dft(input: Tensor[fftw_complex]; output: Tensor[fftw_complex];
-                   sign: cint; flags: cuint = FFTW_MEASURE): fftw_plan {...}{.
+
+
proc fftw_plan_dft(input: Tensor[Complex64]; output: Tensor[Complex64];
+                   sign: cint; flags: cuint = FFTW_MEASURE): fftw_plan {...}{.
     raises: [], tags: [].}
Generic Tensor plan calculation using FFTW_MEASURE as a default fftw flag. Read carefully FFTW documentation about the input / output dimension it will change depending on the transformation.
- -
proc fftw_plan_dft_1d(n: cint; inptr: ptr fftw_complex;
-                      outptr: ptr fftw_complex; sign: cint; flags: cuint): fftw_plan {...}{.
-    cdecl, importc: "fftw_plan_dft_1d", dynlib: Fftw3Lib.}
+ +
proc fftw_plan_dft_1d(n: cint; inptr: ptr Complex64; outptr: ptr Complex64;
+                      sign: cint; flags: cuint): fftw_plan {...}{.cdecl,
+    importc: "fftw_plan_dft_1d", dynlib: Fftw3Lib.}
- -
proc fftw_plan_dft_1d(input: Tensor[fftw_complex]; output: Tensor[fftw_complex];
-                      sign: cint; flags: cuint = FFTW_MEASURE): fftw_plan {...}{.
+
+
proc fftw_plan_dft_1d(input: Tensor[Complex64]; output: Tensor[Complex64];
+                      sign: cint; flags: cuint = FFTW_MEASURE): fftw_plan {...}{.
     raises: [], tags: [].}
1D Tensor plan calculation using FFTW_MEASURE as a default fftw flag.
- -
proc fftw_plan_dft_2d(n0: cint; n1: cint; inptr: ptr fftw_complex;
-                      outptr: ptr fftw_complex; sign: cint; flags: cuint): fftw_plan {...}{.
+
+
proc fftw_plan_dft_2d(n0: cint; n1: cint; inptr: ptr Complex64;
+                      outptr: ptr Complex64; sign: cint; flags: cuint): fftw_plan {...}{.
     cdecl, importc: "fftw_plan_dft_2d", dynlib: Fftw3Lib.}
- -
proc fftw_plan_dft_2d(input: Tensor[fftw_complex]; output: Tensor[fftw_complex];
-                      sign: cint; flags: cuint = FFTW_MEASURE): fftw_plan {...}{.
+
+
proc fftw_plan_dft_2d(input: Tensor[Complex64]; output: Tensor[Complex64];
+                      sign: cint; flags: cuint = FFTW_MEASURE): fftw_plan {...}{.
     raises: [], tags: [].}
2D Tensor plan calculation using FFTW_MEASURE as a default fftw flag.
- -
proc fftw_plan_dft_3d(n0: cint; n1: cint; n2: cint; inptr: ptr fftw_complex;
-                      outptr: ptr fftw_complex; sign: cint; flags: cuint): fftw_plan {...}{.
+
+
proc fftw_plan_dft_3d(n0: cint; n1: cint; n2: cint; inptr: ptr Complex64;
+                      outptr: ptr Complex64; sign: cint; flags: cuint): fftw_plan {...}{.
     cdecl, importc: "fftw_plan_dft_3d", dynlib: Fftw3Lib.}
- -
proc fftw_plan_dft_3d(input: Tensor[fftw_complex]; output: Tensor[fftw_complex];
-                      sign: cint; flags: cuint = FFTW_MEASURE): fftw_plan {...}{.
+
+
proc fftw_plan_dft_3d(input: Tensor[Complex64]; output: Tensor[Complex64];
+                      sign: cint; flags: cuint = FFTW_MEASURE): fftw_plan {...}{.
     raises: [], tags: [].}
3D Tensor plan calculation using FFTW_MEASURE as a default fftw flag.
- -
proc fftw_plan_dft_r2c(rank: cint; n: ptr cint; inptr: ptr cdouble;
-                       outptr: ptr fftw_complex; flags: cuint): fftw_plan {...}{.
-    cdecl, importc: "fftw_plan_dft_r2c", dynlib: Fftw3Lib.}
+ +
proc fftw_plan_dft_r2c(rank: cint; n: ptr cint; inptr: ptr cdouble;
+                       outptr: ptr Complex64; flags: cuint): fftw_plan {...}{.cdecl,
+    importc: "fftw_plan_dft_r2c", dynlib: Fftw3Lib.}
- -
proc fftw_plan_dft_r2c(input: Tensor[float64]; output: Tensor[fftw_complex];
-                       flags: cuint = FFTW_MEASURE): fftw_plan {...}{.raises: [],
+
+
proc fftw_plan_dft_r2c(input: Tensor[float64]; output: Tensor[Complex64];
+                       flags: cuint = FFTW_MEASURE): fftw_plan {...}{.raises: [],
     tags: [].}
Generic Real-to-Complex Tensor plan calculation using FFTW_MEASURE as a default fftw flag. Read carefully FFTW documentation about the input / output dimension as FFTW does not calculate redundant conjugate value.
- -
proc fftw_plan_dft_r2c_1d(n: cint; inptr: ptr cdouble; outptr: ptr fftw_complex;
-                          flags: cuint): fftw_plan {...}{.cdecl,
+
+
proc fftw_plan_dft_r2c_1d(n: cint; inptr: ptr cdouble; outptr: ptr Complex64;
+                          flags: cuint): fftw_plan {...}{.cdecl,
     importc: "fftw_plan_dft_r2c_1d", dynlib: Fftw3Lib.}
- -
proc fftw_plan_dft_r2c_1d(input: Tensor[float64]; output: Tensor[fftw_complex];
-                          flags: cuint = FFTW_MEASURE): fftw_plan {...}{.raises: [],
+
+
proc fftw_plan_dft_r2c_1d(input: Tensor[float64]; output: Tensor[Complex64];
+                          flags: cuint = FFTW_MEASURE): fftw_plan {...}{.raises: [],
     tags: [].}
1D Real-to-Complex Tensor plan calculation using FFTW_MEASURE as a default fftw flag.
- -
proc fftw_plan_dft_r2c_2d(n0: cint; n1: cint; inptr: ptr cdouble;
-                          outptr: ptr fftw_complex; flags: cuint): fftw_plan {...}{.
+
+
proc fftw_plan_dft_r2c_2d(n0: cint; n1: cint; inptr: ptr cdouble;
+                          outptr: ptr Complex64; flags: cuint): fftw_plan {...}{.
     cdecl, importc: "fftw_plan_dft_r2c_2d", dynlib: Fftw3Lib.}
- -
proc fftw_plan_dft_r2c_2d(input: Tensor[float64]; output: Tensor[fftw_complex];
-                          flags: cuint = FFTW_MEASURE): fftw_plan {...}{.raises: [],
+
+
proc fftw_plan_dft_r2c_2d(input: Tensor[float64]; output: Tensor[Complex64];
+                          flags: cuint = FFTW_MEASURE): fftw_plan {...}{.raises: [],
     tags: [].}
2D Real-to-Complex Tensor plan calculation using FFTW_MEASURE as a default fftw flag.
- -
proc fftw_plan_dft_r2c_3d(n0: cint; n1: cint; n2: cint; inptr: ptr cdouble;
-                          outptr: ptr fftw_complex; flags: cuint): fftw_plan {...}{.
+
+
proc fftw_plan_dft_r2c_3d(n0: cint; n1: cint; n2: cint; inptr: ptr cdouble;
+                          outptr: ptr Complex64; flags: cuint): fftw_plan {...}{.
     cdecl, importc: "fftw_plan_dft_r2c_3d", dynlib: Fftw3Lib.}
- -
proc fftw_plan_dft_r2c_3d(input: Tensor[float64]; output: Tensor[fftw_complex];
-                          flags: cuint = FFTW_MEASURE): fftw_plan {...}{.raises: [],
+
+
proc fftw_plan_dft_r2c_3d(input: Tensor[float64]; output: Tensor[Complex64];
+                          flags: cuint = FFTW_MEASURE): fftw_plan {...}{.raises: [],
     tags: [].}
3D Real-to-Complex Tensor plan calculation using FFTW_MEASURE as a default fftw flag.
- -
proc fftw_plan_dft_c2r(rank: cint; n: ptr cint; inptr: ptr fftw_complex;
-                       outptr: ptr cdouble; flags: cuint): fftw_plan {...}{.cdecl,
+
+
proc fftw_plan_dft_c2r(rank: cint; n: ptr cint; inptr: ptr Complex64;
+                       outptr: ptr cdouble; flags: cuint): fftw_plan {...}{.cdecl,
     importc: "fftw_plan_dft_c2r", dynlib: Fftw3Lib.}
- -
proc fftw_plan_dft_c2r(input: Tensor[fftw_complex]; output: Tensor[float64];
-                       flags: cuint = FFTW_MEASURE): fftw_plan {...}{.raises: [],
+
+
proc fftw_plan_dft_c2r(input: Tensor[Complex64]; output: Tensor[float64];
+                       flags: cuint = FFTW_MEASURE): fftw_plan {...}{.raises: [],
     tags: [].}
Generic Complex-to-real Tensor plan calculation using FFTW_MEASURE as a default fftw flag.
- -
proc fftw_plan_dft_c2r_1d(n: cint; inptr: ptr fftw_complex; outptr: ptr cdouble;
-                          flags: cuint): fftw_plan {...}{.cdecl,
+
+
proc fftw_plan_dft_c2r_1d(n: cint; inptr: ptr Complex64; outptr: ptr cdouble;
+                          flags: cuint): fftw_plan {...}{.cdecl,
     importc: "fftw_plan_dft_c2r_1d", dynlib: Fftw3Lib.}
- -
proc fftw_plan_dft_c2r_1d(input: Tensor[fftw_complex]; output: Tensor[float64];
-                          flags: cuint = FFTW_MEASURE): fftw_plan {...}{.raises: [],
+
+
proc fftw_plan_dft_c2r_1d(input: Tensor[Complex64]; output: Tensor[float64];
+                          flags: cuint = FFTW_MEASURE): fftw_plan {...}{.raises: [],
     tags: [].}
1D Complex-to-real Tensor plan calculation using FFTW_MEASURE as a default fftw flag.
- -
proc fftw_plan_dft_c2r_2d(n0: cint; n1: cint; inptr: ptr fftw_complex;
-                          outptr: ptr cdouble; flags: cuint): fftw_plan {...}{.cdecl,
+
+
proc fftw_plan_dft_c2r_2d(n0: cint; n1: cint; inptr: ptr Complex64;
+                          outptr: ptr cdouble; flags: cuint): fftw_plan {...}{.cdecl,
     importc: "fftw_plan_dft_c2r_2d", dynlib: Fftw3Lib.}
- -
proc fftw_plan_dft_c2r_2d(input: Tensor[fftw_complex]; output: Tensor[float64];
-                          flags: cuint = FFTW_MEASURE): fftw_plan {...}{.raises: [],
+
+
proc fftw_plan_dft_c2r_2d(input: Tensor[Complex64]; output: Tensor[float64];
+                          flags: cuint = FFTW_MEASURE): fftw_plan {...}{.raises: [],
     tags: [].}
2D Complex-to-real Tensor plan calculation using FFTW_MEASURE as a default fftw flag.
- -
proc fftw_plan_dft_c2r_3d(n0: cint; n1: cint; n2: cint; inptr: ptr fftw_complex;
-                          outptr: ptr cdouble; flags: cuint): fftw_plan {...}{.cdecl,
+
+
proc fftw_plan_dft_c2r_3d(n0: cint; n1: cint; n2: cint; inptr: ptr Complex64;
+                          outptr: ptr cdouble; flags: cuint): fftw_plan {...}{.cdecl,
     importc: "fftw_plan_dft_c2r_3d", dynlib: Fftw3Lib.}
- -
proc fftw_plan_dft_c2r_3d(input: Tensor[fftw_complex]; output: Tensor[float64];
-                          flags: cuint = FFTW_MEASURE): fftw_plan {...}{.raises: [],
+
+
proc fftw_plan_dft_c2r_3d(input: Tensor[Complex64]; output: Tensor[float64];
+                          flags: cuint = FFTW_MEASURE): fftw_plan {...}{.raises: [],
     tags: [].}
@@ -863,7 +861,7 @@

Procs

proc fftw_plan_r2r(rank: cint; n: ptr cint; inptr: ptr cdouble;
-                   outptr: ptr cdouble; kind: ptr fftw_r2r_kind; flags: cuint): fftw_plan {...}{.
+                   outptr: ptr cdouble; kind: ptr fftw_r2r_kind; flags: cuint): fftw_plan {...}{.
     cdecl, importc: "fftw_plan_r2r", dynlib: Fftw3Lib.}
@@ -872,7 +870,7 @@

Procs

proc fftw_plan_r2r(input: Tensor[float64]; output: Tensor[float64];
-                   kinds: seq[fftw_r2r_kind]; flags: cuint = FFTW_MEASURE): fftw_plan {...}{.
+                   kinds: seq[fftw_r2r_kind]; flags: cuint = FFTW_MEASURE): fftw_plan {...}{.
     raises: [], tags: [].}
@@ -881,7 +879,7 @@

Procs

proc fftw_plan_r2r_1d(n: cint; inptr: ptr cdouble; outptr: ptr cdouble;
-                      kind: fftw_r2r_kind; flags: cuint): fftw_plan {...}{.cdecl,
+                      kind: fftw_r2r_kind; flags: cuint): fftw_plan {...}{.cdecl,
     importc: "fftw_plan_r2r_1d", dynlib: Fftw3Lib.}
@@ -890,7 +888,7 @@

Procs

proc fftw_plan_r2r_1d(input: Tensor[float64]; output: Tensor[float64];
-                      kind: fftw_r2r_kind; flags: cuint = FFTW_MEASURE): fftw_plan {...}{.
+                      kind: fftw_r2r_kind; flags: cuint = FFTW_MEASURE): fftw_plan {...}{.
     raises: [], tags: [].}
@@ -899,8 +897,8 @@

Procs

proc fftw_plan_r2r_2d(n0: cint; n1: cint; inptr: ptr cdouble;
-                      outptr: ptr cdouble; kind0: fftw_r2r_kind;
-                      kind1: fftw_r2r_kind; flags: cuint): fftw_plan {...}{.cdecl,
+                      outptr: ptr cdouble; kind0: fftw_r2r_kind;
+                      kind1: fftw_r2r_kind; flags: cuint): fftw_plan {...}{.cdecl,
     importc: "fftw_plan_r2r_2d", dynlib: Fftw3Lib.}
@@ -909,7 +907,7 @@

Procs

proc fftw_plan_r2r_2d(input: Tensor[float64]; output: Tensor[float64];
-                      kinds: seq[fftw_r2r_kind]; flags: cuint = FFTW_MEASURE): fftw_plan {...}{.
+                      kinds: seq[fftw_r2r_kind]; flags: cuint = FFTW_MEASURE): fftw_plan {...}{.
     raises: [], tags: [].}
@@ -918,8 +916,8 @@

Procs

proc fftw_plan_r2r_3d(n0: cint; n1: cint; n2: cint; inptr: ptr cdouble;
-                      outptr: ptr cdouble; kind0: fftw_r2r_kind;
-                      kind1: fftw_r2r_kind; kind2: fftw_r2r_kind; flags: cuint): fftw_plan {...}{.
+                      outptr: ptr cdouble; kind0: fftw_r2r_kind;
+                      kind1: fftw_r2r_kind; kind2: fftw_r2r_kind; flags: cuint): fftw_plan {...}{.
     cdecl, importc: "fftw_plan_r2r_3d", dynlib: Fftw3Lib.}
@@ -928,44 +926,43 @@

Procs

proc fftw_plan_r2r_3d(input: Tensor[float64]; output: Tensor[float64];
-                      kinds: seq[fftw_r2r_kind]; flags: cuint = FFTW_MEASURE): fftw_plan {...}{.
+                      kinds: seq[fftw_r2r_kind]; flags: cuint = FFTW_MEASURE): fftw_plan {...}{.
     raises: [], tags: [].}
3D real-to-real Tensor plan calculation using FFTW_MEASURE as a default fftw flag.
- -
proc fftw_plan_many_dft(rank: cint; n: ptr cint; howmany: cint;
-                        inptr: ptr fftw_complex; inembed: ptr cint;
-                        istride: cint; idist: cint; outptr: ptr fftw_complex;
-                        onembed: ptr cint; ostride: cint; odist: cint;
-                        sign: cint; flags: cuint): fftw_plan {...}{.cdecl,
-    importc: "fftw_plan_many_dft", dynlib: Fftw3Lib.}
+ +
proc fftw_plan_many_dft(rank: cint; n: ptr cint; howmany: cint;
+                        inptr: ptr Complex64; inembed: ptr cint; istride: cint;
+                        idist: cint; outptr: ptr Complex64; onembed: ptr cint;
+                        ostride: cint; odist: cint; sign: cint; flags: cuint): fftw_plan {...}{.
+    cdecl, importc: "fftw_plan_many_dft", dynlib: Fftw3Lib.}
Plan mutliple multidimensionnal complex DFTs and extend fftw_plan_dft to compute howmany transforms, each having rank rank and size n. howmany is the (nonnegative) number of transforms to compute. The resulting plan computes howmany transforms, where the input of the k-th transform is at location in+k*idist (in C pointer arithmetic), and its output is at location out+k*odist. Plans obtained in this way can often be faster than calling FFTW multiple times for the individual transforms. The basic fftw_plan_dft interface corresponds to howmany=1 (in which case the dist parameters are ignored).
- -
proc fftw_plan_many_dft_c2r(rank: cint; n: ptr cint; howmany: cint;
-                            inptr: ptr fftw_complex; inembed: ptr cint;
+
+
proc fftw_plan_many_dft_c2r(rank: cint; n: ptr cint; howmany: cint;
+                            inptr: ptr Complex64; inembed: ptr cint;
                             istride: cint; idist: cint; outptr: ptr cdouble;
                             onembed: ptr cint; ostride: cint; odist: cint;
-                            flags: cuint): fftw_plan {...}{.cdecl,
+                            flags: cuint): fftw_plan {...}{.cdecl,
     importc: "fftw_plan_many_dft_c2r", dynlib: Fftw3Lib.}
- -
proc fftw_plan_many_dft_r2c(rank: cint; n: ptr cint; howmany: cint;
+
+
proc fftw_plan_many_dft_r2c(rank: cint; n: ptr cint; howmany: cint;
                             inptr: ptr cdouble; inembed: ptr cint;
-                            istride: cint; idist: cint;
-                            outptr: ptr fftw_complex; onembed: ptr cint;
-                            ostride: cint; odist: cint; flags: cuint): fftw_plan {...}{.
-    cdecl, importc: "fftw_plan_many_dft_r2c", dynlib: Fftw3Lib.}
+ istride: cint; idist: cint; outptr: ptr Complex64; + onembed: ptr cint; ostride: cint; odist: cint; + flags: cuint): fftw_plan {...}{.cdecl, + importc: "fftw_plan_many_dft_r2c", dynlib: Fftw3Lib.}
@@ -975,8 +972,8 @@

Procs

proc fftw_plan_many_r2r(rank: cint; n: ptr cint; howmany: cint;
                         inptr: ptr cdouble; inembed: ptr cint; istride: cint;
                         idist: cint; outptr: ptr cdouble; onembed: ptr cint;
-                        ostride: cint; odist: cint; kind: ptr fftw_r2r_kind;
-                        flags: cuint): fftw_plan {...}{.cdecl,
+                        ostride: cint; odist: cint; kind: ptr fftw_r2r_kind;
+                        flags: cuint): fftw_plan {...}{.cdecl,
     importc: "fftw_plan_many_r2r", dynlib: Fftw3Lib.}
@@ -984,7 +981,7 @@

Procs

-
proc fftw_destroy_plan(p: fftw_plan) {...}{.cdecl, importc: "fftw_destroy_plan",
+
proc fftw_destroy_plan(p: fftw_plan) {...}{.cdecl, importc: "fftw_destroy_plan",
                                        dynlib: Fftw3Lib.}
@@ -1011,7 +1008,7 @@

Procs

@@ -1021,7 +1018,7 @@

Exports

diff --git a/src/htmldocs/fftw3.idx b/src/htmldocs/fftw3.idx index e19ae41..8f716af 100644 --- a/src/htmldocs/fftw3.idx +++ b/src/htmldocs/fftw3.idx @@ -18,37 +18,37 @@ circshift fftw3.html#circshift,Tensor[T],seq[int] fftw3: circshift[T](t: Tensor[ fftshift fftw3.html#fftshift,Tensor[T] fftw3: fftshift[T](t: Tensor[T]): Tensor[T] ifftshift fftw3.html#ifftshift,Tensor[T] fftw3: ifftshift[T](t: Tensor[T]): Tensor[T] fftw_execute fftw3.html#fftw_execute,fftw_plan fftw3: fftw_execute(p: fftw_plan) -fftw_execute_dft fftw3.html#fftw_execute_dft,fftw_plan,ptr.fftw_complex,ptr.fftw_complex fftw3: fftw_execute_dft(p: fftw_plan; inptr: ptr fftw_complex; outptr: ptr fftw_complex) -fftw_execute_dft fftw3.html#fftw_execute_dft,fftw_plan,Tensor[fftw_complex],Tensor[fftw_complex] fftw3: fftw_execute_dft(p: fftw_plan; input: Tensor[fftw_complex];\n output: Tensor[fftw_complex]) +fftw_execute_dft fftw3.html#fftw_execute_dft,fftw_plan,ptr.Complex64,ptr.Complex64 fftw3: fftw_execute_dft(p: fftw_plan; inptr: ptr Complex64; outptr: ptr Complex64) +fftw_execute_dft fftw3.html#fftw_execute_dft,fftw_plan,Tensor[Complex64],Tensor[Complex64] fftw3: fftw_execute_dft(p: fftw_plan; input: Tensor[Complex64];\n output: Tensor[Complex64]) fftw_execute_r2r fftw3.html#fftw_execute_r2r,fftw_plan,ptr.cdouble,ptr.cdouble fftw3: fftw_execute_r2r(p: fftw_plan; inptr: ptr cdouble; outptr: ptr cdouble) -fftw_execute_dft_r2c fftw3.html#fftw_execute_dft_r2c,fftw_plan,ptr.cdouble,ptr.fftw_complex fftw3: fftw_execute_dft_r2c(p: fftw_plan; inptr: ptr cdouble; outptr: ptr fftw_complex) -fftw_execute_dft_r2c fftw3.html#fftw_execute_dft_r2c,fftw_plan,Tensor[float64],Tensor[fftw_complex] fftw3: fftw_execute_dft_r2c(p: fftw_plan; input: Tensor[float64];\n output: Tensor[fftw_complex]) -fftw_execute_dft_c2r fftw3.html#fftw_execute_dft_c2r,fftw_plan,ptr.fftw_complex,ptr.cdouble fftw3: fftw_execute_dft_c2r(p: fftw_plan; inptr: ptr fftw_complex; outptr: ptr cdouble) -fftw_execute_dft_c2r fftw3.html#fftw_execute_dft_c2r,fftw_plan,Tensor[fftw_complex],Tensor[float64] fftw3: fftw_execute_dft_c2r(p: fftw_plan; input: Tensor[fftw_complex];\n output: Tensor[float64]) -fftw_plan_dft fftw3.html#fftw_plan_dft,cint,ptr.cint,ptr.fftw_complex,ptr.fftw_complex,cint,cuint fftw3: fftw_plan_dft(rank: cint; n: ptr cint; inptr: ptr fftw_complex;\n outptr: ptr fftw_complex; sign: cint; flags: cuint): fftw_plan -fftw_plan_dft fftw3.html#fftw_plan_dft,Tensor[fftw_complex],Tensor[fftw_complex],cint,cuint fftw3: fftw_plan_dft(input: Tensor[fftw_complex]; output: Tensor[fftw_complex];\n sign: cint; flags: cuint = FFTW_MEASURE): fftw_plan -fftw_plan_dft_1d fftw3.html#fftw_plan_dft_1d,cint,ptr.fftw_complex,ptr.fftw_complex,cint,cuint fftw3: fftw_plan_dft_1d(n: cint; inptr: ptr fftw_complex; outptr: ptr fftw_complex;\n sign: cint; flags: cuint): fftw_plan -fftw_plan_dft_1d fftw3.html#fftw_plan_dft_1d,Tensor[fftw_complex],Tensor[fftw_complex],cint,cuint fftw3: fftw_plan_dft_1d(input: Tensor[fftw_complex]; output: Tensor[fftw_complex];\n sign: cint; flags: cuint = FFTW_MEASURE): fftw_plan -fftw_plan_dft_2d fftw3.html#fftw_plan_dft_2d,cint,cint,ptr.fftw_complex,ptr.fftw_complex,cint,cuint fftw3: fftw_plan_dft_2d(n0: cint; n1: cint; inptr: ptr fftw_complex;\n outptr: ptr fftw_complex; sign: cint; flags: cuint): fftw_plan -fftw_plan_dft_2d fftw3.html#fftw_plan_dft_2d,Tensor[fftw_complex],Tensor[fftw_complex],cint,cuint fftw3: fftw_plan_dft_2d(input: Tensor[fftw_complex]; output: Tensor[fftw_complex];\n sign: cint; flags: cuint = FFTW_MEASURE): fftw_plan -fftw_plan_dft_3d fftw3.html#fftw_plan_dft_3d,cint,cint,cint,ptr.fftw_complex,ptr.fftw_complex,cint,cuint fftw3: fftw_plan_dft_3d(n0: cint; n1: cint; n2: cint; inptr: ptr fftw_complex;\n outptr: ptr fftw_complex; sign: cint; flags: cuint): fftw_plan -fftw_plan_dft_3d fftw3.html#fftw_plan_dft_3d,Tensor[fftw_complex],Tensor[fftw_complex],cint,cuint fftw3: fftw_plan_dft_3d(input: Tensor[fftw_complex]; output: Tensor[fftw_complex];\n sign: cint; flags: cuint = FFTW_MEASURE): fftw_plan -fftw_plan_dft_r2c fftw3.html#fftw_plan_dft_r2c,cint,ptr.cint,ptr.cdouble,ptr.fftw_complex,cuint fftw3: fftw_plan_dft_r2c(rank: cint; n: ptr cint; inptr: ptr cdouble;\n outptr: ptr fftw_complex; flags: cuint): fftw_plan -fftw_plan_dft_r2c fftw3.html#fftw_plan_dft_r2c,Tensor[float64],Tensor[fftw_complex],cuint fftw3: fftw_plan_dft_r2c(input: Tensor[float64]; output: Tensor[fftw_complex];\n flags: cuint = FFTW_MEASURE): fftw_plan -fftw_plan_dft_r2c_1d fftw3.html#fftw_plan_dft_r2c_1d,cint,ptr.cdouble,ptr.fftw_complex,cuint fftw3: fftw_plan_dft_r2c_1d(n: cint; inptr: ptr cdouble; outptr: ptr fftw_complex;\n flags: cuint): fftw_plan -fftw_plan_dft_r2c_1d fftw3.html#fftw_plan_dft_r2c_1d,Tensor[float64],Tensor[fftw_complex],cuint fftw3: fftw_plan_dft_r2c_1d(input: Tensor[float64]; output: Tensor[fftw_complex];\n flags: cuint = FFTW_MEASURE): fftw_plan -fftw_plan_dft_r2c_2d fftw3.html#fftw_plan_dft_r2c_2d,cint,cint,ptr.cdouble,ptr.fftw_complex,cuint fftw3: fftw_plan_dft_r2c_2d(n0: cint; n1: cint; inptr: ptr cdouble;\n outptr: ptr fftw_complex; flags: cuint): fftw_plan -fftw_plan_dft_r2c_2d fftw3.html#fftw_plan_dft_r2c_2d,Tensor[float64],Tensor[fftw_complex],cuint fftw3: fftw_plan_dft_r2c_2d(input: Tensor[float64]; output: Tensor[fftw_complex];\n flags: cuint = FFTW_MEASURE): fftw_plan -fftw_plan_dft_r2c_3d fftw3.html#fftw_plan_dft_r2c_3d,cint,cint,cint,ptr.cdouble,ptr.fftw_complex,cuint fftw3: fftw_plan_dft_r2c_3d(n0: cint; n1: cint; n2: cint; inptr: ptr cdouble;\n outptr: ptr fftw_complex; flags: cuint): fftw_plan -fftw_plan_dft_r2c_3d fftw3.html#fftw_plan_dft_r2c_3d,Tensor[float64],Tensor[fftw_complex],cuint fftw3: fftw_plan_dft_r2c_3d(input: Tensor[float64]; output: Tensor[fftw_complex];\n flags: cuint = FFTW_MEASURE): fftw_plan -fftw_plan_dft_c2r fftw3.html#fftw_plan_dft_c2r,cint,ptr.cint,ptr.fftw_complex,ptr.cdouble,cuint fftw3: fftw_plan_dft_c2r(rank: cint; n: ptr cint; inptr: ptr fftw_complex;\n outptr: ptr cdouble; flags: cuint): fftw_plan -fftw_plan_dft_c2r fftw3.html#fftw_plan_dft_c2r,Tensor[fftw_complex],Tensor[float64],cuint fftw3: fftw_plan_dft_c2r(input: Tensor[fftw_complex]; output: Tensor[float64];\n flags: cuint = FFTW_MEASURE): fftw_plan -fftw_plan_dft_c2r_1d fftw3.html#fftw_plan_dft_c2r_1d,cint,ptr.fftw_complex,ptr.cdouble,cuint fftw3: fftw_plan_dft_c2r_1d(n: cint; inptr: ptr fftw_complex; outptr: ptr cdouble;\n flags: cuint): fftw_plan -fftw_plan_dft_c2r_1d fftw3.html#fftw_plan_dft_c2r_1d,Tensor[fftw_complex],Tensor[float64],cuint fftw3: fftw_plan_dft_c2r_1d(input: Tensor[fftw_complex]; output: Tensor[float64];\n flags: cuint = FFTW_MEASURE): fftw_plan -fftw_plan_dft_c2r_2d fftw3.html#fftw_plan_dft_c2r_2d,cint,cint,ptr.fftw_complex,ptr.cdouble,cuint fftw3: fftw_plan_dft_c2r_2d(n0: cint; n1: cint; inptr: ptr fftw_complex;\n outptr: ptr cdouble; flags: cuint): fftw_plan -fftw_plan_dft_c2r_2d fftw3.html#fftw_plan_dft_c2r_2d,Tensor[fftw_complex],Tensor[float64],cuint fftw3: fftw_plan_dft_c2r_2d(input: Tensor[fftw_complex]; output: Tensor[float64];\n flags: cuint = FFTW_MEASURE): fftw_plan -fftw_plan_dft_c2r_3d fftw3.html#fftw_plan_dft_c2r_3d,cint,cint,cint,ptr.fftw_complex,ptr.cdouble,cuint fftw3: fftw_plan_dft_c2r_3d(n0: cint; n1: cint; n2: cint; inptr: ptr fftw_complex;\n outptr: ptr cdouble; flags: cuint): fftw_plan -fftw_plan_dft_c2r_3d fftw3.html#fftw_plan_dft_c2r_3d,Tensor[fftw_complex],Tensor[float64],cuint fftw3: fftw_plan_dft_c2r_3d(input: Tensor[fftw_complex]; output: Tensor[float64];\n flags: cuint = FFTW_MEASURE): fftw_plan +fftw_execute_dft_r2c fftw3.html#fftw_execute_dft_r2c,fftw_plan,ptr.cdouble,ptr.Complex64 fftw3: fftw_execute_dft_r2c(p: fftw_plan; inptr: ptr cdouble; outptr: ptr Complex64) +fftw_execute_dft_r2c fftw3.html#fftw_execute_dft_r2c,fftw_plan,Tensor[float64],Tensor[Complex64] fftw3: fftw_execute_dft_r2c(p: fftw_plan; input: Tensor[float64];\n output: Tensor[Complex64]) +fftw_execute_dft_c2r fftw3.html#fftw_execute_dft_c2r,fftw_plan,ptr.Complex64,ptr.cdouble fftw3: fftw_execute_dft_c2r(p: fftw_plan; inptr: ptr Complex64; outptr: ptr cdouble) +fftw_execute_dft_c2r fftw3.html#fftw_execute_dft_c2r,fftw_plan,Tensor[Complex64],Tensor[float64] fftw3: fftw_execute_dft_c2r(p: fftw_plan; input: Tensor[Complex64];\n output: Tensor[float64]) +fftw_plan_dft fftw3.html#fftw_plan_dft,cint,ptr.cint,ptr.Complex64,ptr.Complex64,cint,cuint fftw3: fftw_plan_dft(rank: cint; n: ptr cint; inptr: ptr Complex64;\n outptr: ptr Complex64; sign: cint; flags: cuint): fftw_plan +fftw_plan_dft fftw3.html#fftw_plan_dft,Tensor[Complex64],Tensor[Complex64],cint,cuint fftw3: fftw_plan_dft(input: Tensor[Complex64]; output: Tensor[Complex64]; sign: cint;\n flags: cuint = FFTW_MEASURE): fftw_plan +fftw_plan_dft_1d fftw3.html#fftw_plan_dft_1d,cint,ptr.Complex64,ptr.Complex64,cint,cuint fftw3: fftw_plan_dft_1d(n: cint; inptr: ptr Complex64; outptr: ptr Complex64;\n sign: cint; flags: cuint): fftw_plan +fftw_plan_dft_1d fftw3.html#fftw_plan_dft_1d,Tensor[Complex64],Tensor[Complex64],cint,cuint fftw3: fftw_plan_dft_1d(input: Tensor[Complex64]; output: Tensor[Complex64];\n sign: cint; flags: cuint = FFTW_MEASURE): fftw_plan +fftw_plan_dft_2d fftw3.html#fftw_plan_dft_2d,cint,cint,ptr.Complex64,ptr.Complex64,cint,cuint fftw3: fftw_plan_dft_2d(n0: cint; n1: cint; inptr: ptr Complex64;\n outptr: ptr Complex64; sign: cint; flags: cuint): fftw_plan +fftw_plan_dft_2d fftw3.html#fftw_plan_dft_2d,Tensor[Complex64],Tensor[Complex64],cint,cuint fftw3: fftw_plan_dft_2d(input: Tensor[Complex64]; output: Tensor[Complex64];\n sign: cint; flags: cuint = FFTW_MEASURE): fftw_plan +fftw_plan_dft_3d fftw3.html#fftw_plan_dft_3d,cint,cint,cint,ptr.Complex64,ptr.Complex64,cint,cuint fftw3: fftw_plan_dft_3d(n0: cint; n1: cint; n2: cint; inptr: ptr Complex64;\n outptr: ptr Complex64; sign: cint; flags: cuint): fftw_plan +fftw_plan_dft_3d fftw3.html#fftw_plan_dft_3d,Tensor[Complex64],Tensor[Complex64],cint,cuint fftw3: fftw_plan_dft_3d(input: Tensor[Complex64]; output: Tensor[Complex64];\n sign: cint; flags: cuint = FFTW_MEASURE): fftw_plan +fftw_plan_dft_r2c fftw3.html#fftw_plan_dft_r2c,cint,ptr.cint,ptr.cdouble,ptr.Complex64,cuint fftw3: fftw_plan_dft_r2c(rank: cint; n: ptr cint; inptr: ptr cdouble;\n outptr: ptr Complex64; flags: cuint): fftw_plan +fftw_plan_dft_r2c fftw3.html#fftw_plan_dft_r2c,Tensor[float64],Tensor[Complex64],cuint fftw3: fftw_plan_dft_r2c(input: Tensor[float64]; output: Tensor[Complex64];\n flags: cuint = FFTW_MEASURE): fftw_plan +fftw_plan_dft_r2c_1d fftw3.html#fftw_plan_dft_r2c_1d,cint,ptr.cdouble,ptr.Complex64,cuint fftw3: fftw_plan_dft_r2c_1d(n: cint; inptr: ptr cdouble; outptr: ptr Complex64;\n flags: cuint): fftw_plan +fftw_plan_dft_r2c_1d fftw3.html#fftw_plan_dft_r2c_1d,Tensor[float64],Tensor[Complex64],cuint fftw3: fftw_plan_dft_r2c_1d(input: Tensor[float64]; output: Tensor[Complex64];\n flags: cuint = FFTW_MEASURE): fftw_plan +fftw_plan_dft_r2c_2d fftw3.html#fftw_plan_dft_r2c_2d,cint,cint,ptr.cdouble,ptr.Complex64,cuint fftw3: fftw_plan_dft_r2c_2d(n0: cint; n1: cint; inptr: ptr cdouble;\n outptr: ptr Complex64; flags: cuint): fftw_plan +fftw_plan_dft_r2c_2d fftw3.html#fftw_plan_dft_r2c_2d,Tensor[float64],Tensor[Complex64],cuint fftw3: fftw_plan_dft_r2c_2d(input: Tensor[float64]; output: Tensor[Complex64];\n flags: cuint = FFTW_MEASURE): fftw_plan +fftw_plan_dft_r2c_3d fftw3.html#fftw_plan_dft_r2c_3d,cint,cint,cint,ptr.cdouble,ptr.Complex64,cuint fftw3: fftw_plan_dft_r2c_3d(n0: cint; n1: cint; n2: cint; inptr: ptr cdouble;\n outptr: ptr Complex64; flags: cuint): fftw_plan +fftw_plan_dft_r2c_3d fftw3.html#fftw_plan_dft_r2c_3d,Tensor[float64],Tensor[Complex64],cuint fftw3: fftw_plan_dft_r2c_3d(input: Tensor[float64]; output: Tensor[Complex64];\n flags: cuint = FFTW_MEASURE): fftw_plan +fftw_plan_dft_c2r fftw3.html#fftw_plan_dft_c2r,cint,ptr.cint,ptr.Complex64,ptr.cdouble,cuint fftw3: fftw_plan_dft_c2r(rank: cint; n: ptr cint; inptr: ptr Complex64;\n outptr: ptr cdouble; flags: cuint): fftw_plan +fftw_plan_dft_c2r fftw3.html#fftw_plan_dft_c2r,Tensor[Complex64],Tensor[float64],cuint fftw3: fftw_plan_dft_c2r(input: Tensor[Complex64]; output: Tensor[float64];\n flags: cuint = FFTW_MEASURE): fftw_plan +fftw_plan_dft_c2r_1d fftw3.html#fftw_plan_dft_c2r_1d,cint,ptr.Complex64,ptr.cdouble,cuint fftw3: fftw_plan_dft_c2r_1d(n: cint; inptr: ptr Complex64; outptr: ptr cdouble;\n flags: cuint): fftw_plan +fftw_plan_dft_c2r_1d fftw3.html#fftw_plan_dft_c2r_1d,Tensor[Complex64],Tensor[float64],cuint fftw3: fftw_plan_dft_c2r_1d(input: Tensor[Complex64]; output: Tensor[float64];\n flags: cuint = FFTW_MEASURE): fftw_plan +fftw_plan_dft_c2r_2d fftw3.html#fftw_plan_dft_c2r_2d,cint,cint,ptr.Complex64,ptr.cdouble,cuint fftw3: fftw_plan_dft_c2r_2d(n0: cint; n1: cint; inptr: ptr Complex64;\n outptr: ptr cdouble; flags: cuint): fftw_plan +fftw_plan_dft_c2r_2d fftw3.html#fftw_plan_dft_c2r_2d,Tensor[Complex64],Tensor[float64],cuint fftw3: fftw_plan_dft_c2r_2d(input: Tensor[Complex64]; output: Tensor[float64];\n flags: cuint = FFTW_MEASURE): fftw_plan +fftw_plan_dft_c2r_3d fftw3.html#fftw_plan_dft_c2r_3d,cint,cint,cint,ptr.Complex64,ptr.cdouble,cuint fftw3: fftw_plan_dft_c2r_3d(n0: cint; n1: cint; n2: cint; inptr: ptr Complex64;\n outptr: ptr cdouble; flags: cuint): fftw_plan +fftw_plan_dft_c2r_3d fftw3.html#fftw_plan_dft_c2r_3d,Tensor[Complex64],Tensor[float64],cuint fftw3: fftw_plan_dft_c2r_3d(input: Tensor[Complex64]; output: Tensor[float64];\n flags: cuint = FFTW_MEASURE): fftw_plan fftw_plan_r2r fftw3.html#fftw_plan_r2r,cint,ptr.cint,ptr.cdouble,ptr.cdouble,ptr.fftw_r2r_kind,cuint fftw3: fftw_plan_r2r(rank: cint; n: ptr cint; inptr: ptr cdouble; outptr: ptr cdouble;\n kind: ptr fftw_r2r_kind; flags: cuint): fftw_plan fftw_plan_r2r fftw3.html#fftw_plan_r2r,Tensor[float64],Tensor[float64],seq[fftw_r2r_kind],cuint fftw3: fftw_plan_r2r(input: Tensor[float64]; output: Tensor[float64];\n kinds: seq[fftw_r2r_kind]; flags: cuint = FFTW_MEASURE): fftw_plan fftw_plan_r2r_1d fftw3.html#fftw_plan_r2r_1d,cint,ptr.cdouble,ptr.cdouble,fftw_r2r_kind,cuint fftw3: fftw_plan_r2r_1d(n: cint; inptr: ptr cdouble; outptr: ptr cdouble;\n kind: fftw_r2r_kind; flags: cuint): fftw_plan @@ -57,9 +57,9 @@ fftw_plan_r2r_2d fftw3.html#fftw_plan_r2r_2d,cint,cint,ptr.cdouble,ptr.cdouble,f fftw_plan_r2r_2d fftw3.html#fftw_plan_r2r_2d,Tensor[float64],Tensor[float64],seq[fftw_r2r_kind],cuint fftw3: fftw_plan_r2r_2d(input: Tensor[float64]; output: Tensor[float64];\n kinds: seq[fftw_r2r_kind]; flags: cuint = FFTW_MEASURE): fftw_plan fftw_plan_r2r_3d fftw3.html#fftw_plan_r2r_3d,cint,cint,cint,ptr.cdouble,ptr.cdouble,fftw_r2r_kind,fftw_r2r_kind,fftw_r2r_kind,cuint fftw3: fftw_plan_r2r_3d(n0: cint; n1: cint; n2: cint; inptr: ptr cdouble;\n outptr: ptr cdouble; kind0: fftw_r2r_kind;\n kind1: fftw_r2r_kind; kind2: fftw_r2r_kind; flags: cuint): fftw_plan fftw_plan_r2r_3d fftw3.html#fftw_plan_r2r_3d,Tensor[float64],Tensor[float64],seq[fftw_r2r_kind],cuint fftw3: fftw_plan_r2r_3d(input: Tensor[float64]; output: Tensor[float64];\n kinds: seq[fftw_r2r_kind]; flags: cuint = FFTW_MEASURE): fftw_plan -fftw_plan_many_dft fftw3.html#fftw_plan_many_dft,cint,ptr.cint,cint,ptr.fftw_complex,ptr.cint,cint,cint,ptr.fftw_complex,ptr.cint,cint,cint,cint,cuint fftw3: fftw_plan_many_dft(rank: cint; n: ptr cint; howmany: cint;\n inptr: ptr fftw_complex; inembed: ptr cint; istride: cint;\n idist: cint; outptr: ptr fftw_complex; onembed: ptr cint;\n ostride: cint; odist: cint; sign: cint; flags: cuint): fftw_plan -fftw_plan_many_dft_c2r fftw3.html#fftw_plan_many_dft_c2r,cint,ptr.cint,cint,ptr.fftw_complex,ptr.cint,cint,cint,ptr.cdouble,ptr.cint,cint,cint,cuint fftw3: fftw_plan_many_dft_c2r(rank: cint; n: ptr cint; howmany: cint;\n inptr: ptr fftw_complex; inembed: ptr cint;\n istride: cint; idist: cint; outptr: ptr cdouble;\n onembed: ptr cint; ostride: cint; odist: cint;\n flags: cuint): fftw_plan -fftw_plan_many_dft_r2c fftw3.html#fftw_plan_many_dft_r2c,cint,ptr.cint,cint,ptr.cdouble,ptr.cint,cint,cint,ptr.fftw_complex,ptr.cint,cint,cint,cuint fftw3: fftw_plan_many_dft_r2c(rank: cint; n: ptr cint; howmany: cint;\n inptr: ptr cdouble; inembed: ptr cint; istride: cint;\n idist: cint; outptr: ptr fftw_complex; onembed: ptr cint;\n ostride: cint; odist: cint; flags: cuint): fftw_plan +fftw_plan_many_dft fftw3.html#fftw_plan_many_dft,cint,ptr.cint,cint,ptr.Complex64,ptr.cint,cint,cint,ptr.Complex64,ptr.cint,cint,cint,cint,cuint fftw3: fftw_plan_many_dft(rank: cint; n: ptr cint; howmany: cint; inptr: ptr Complex64;\n inembed: ptr cint; istride: cint; idist: cint;\n outptr: ptr Complex64; onembed: ptr cint; ostride: cint;\n odist: cint; sign: cint; flags: cuint): fftw_plan +fftw_plan_many_dft_c2r fftw3.html#fftw_plan_many_dft_c2r,cint,ptr.cint,cint,ptr.Complex64,ptr.cint,cint,cint,ptr.cdouble,ptr.cint,cint,cint,cuint fftw3: fftw_plan_many_dft_c2r(rank: cint; n: ptr cint; howmany: cint;\n inptr: ptr Complex64; inembed: ptr cint; istride: cint;\n idist: cint; outptr: ptr cdouble; onembed: ptr cint;\n ostride: cint; odist: cint; flags: cuint): fftw_plan +fftw_plan_many_dft_r2c fftw3.html#fftw_plan_many_dft_r2c,cint,ptr.cint,cint,ptr.cdouble,ptr.cint,cint,cint,ptr.Complex64,ptr.cint,cint,cint,cuint fftw3: fftw_plan_many_dft_r2c(rank: cint; n: ptr cint; howmany: cint;\n inptr: ptr cdouble; inembed: ptr cint; istride: cint;\n idist: cint; outptr: ptr Complex64; onembed: ptr cint;\n ostride: cint; odist: cint; flags: cuint): fftw_plan fftw_plan_many_r2r fftw3.html#fftw_plan_many_r2r,cint,ptr.cint,cint,ptr.cdouble,ptr.cint,cint,cint,ptr.cdouble,ptr.cint,cint,cint,ptr.fftw_r2r_kind,cuint fftw3: fftw_plan_many_r2r(rank: cint; n: ptr cint; howmany: cint; inptr: ptr cdouble;\n inembed: ptr cint; istride: cint; idist: cint;\n outptr: ptr cdouble; onembed: ptr cint; ostride: cint;\n odist: cint; kind: ptr fftw_r2r_kind; flags: cuint): fftw_plan fftw_destroy_plan fftw3.html#fftw_destroy_plan,fftw_plan fftw3: fftw_destroy_plan(p: fftw_plan) fftw_cleanup fftw3.html#fftw_cleanup fftw3: fftw_cleanup() diff --git a/src/htmldocs/fftw3/guru.html b/src/htmldocs/fftw3/guru.html index f7ea7dd..a66531e 100644 --- a/src/htmldocs/fftw3/guru.html +++ b/src/htmldocs/fftw3/guru.html @@ -122,10 +122,10 @@

fftw3/guru

-
fftw_complex:
FFTW_CONSERVE_MEMORY:
fftw_execute_dft:
fftw_execute_dft_c2r:
fftw_execute_dft_r2c:
fftw_execute_r2r:
fftw_plan_dft:
fftw_plan_dft_1d:
fftw_plan_dft_2d:
fftw_plan_dft_3d:
fftw_plan_dft_c2r:
fftw_plan_dft_c2r_1d:
fftw_plan_dft_c2r_2d:
fftw_plan_dft_c2r_3d:
fftw_plan_dft_r2c:
fftw_plan_dft_r2c_1d:
fftw_plan_dft_r2c_2d:
fftw_plan_dft_r2c_3d:
fftw_plan_guru64_dft:
fftw_plan_guru64_dft_c2r:
fftw_plan_guru64_dft_r2c:
fftw_plan_guru64_r2r: