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 @@
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; + ++ 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.} 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.}@@ -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
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 {...}{. + + proc fftw_plan_guru_dft(rank: cint; dims: ptr fftw_iodim; howmany_rank: cint; + 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.}- @@ -292,10 +291,10 @@
- -Procs
proc fftw_plan_guru64_dft(rank: cint; dims: ptr fftw_iodim64; + + 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.}- @@ -315,10 +314,10 @@
- -Procs
proc fftw_plan_guru_dft_r2c(rank: cint; dims: ptr fftw_iodim; + + 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.}- @@ -326,10 +325,10 @@
- -Procs
proc fftw_plan_guru_dft_c2r(rank: cint; dims: ptr fftw_iodim; + + 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.}- @@ -361,11 +360,11 @@
- -Procs
proc fftw_plan_guru64_dft_r2c(rank: cint; dims: ptr fftw_iodim64; + + 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.}- @@ -373,11 +372,11 @@
- -Procs
proc fftw_plan_guru64_dft_c2r(rank: cint; dims: ptr fftw_iodim64; + + 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.}- @@ -441,7 +440,7 @@
Procs
diff --git a/src/htmldocs/fftw3/guru.idx b/src/htmldocs/fftw3/guru.idx index 6177a7e..28dc200 100644 --- a/src/htmldocs/fftw3/guru.idx +++ b/src/htmldocs/fftw3/guru.idx @@ -1,16 +1,16 @@ fftw_execute_split_dft fftw3/guru.html#fftw_execute_split_dft,fftw_plan,ptr.cdouble,ptr.cdouble,ptr.cdouble,ptr.cdouble guru: fftw_execute_split_dft(p: fftw_plan; ri: ptr cdouble; ii: ptr cdouble;\n ro: ptr cdouble; io: ptr cdouble) fftw_execute_split_dft_r2c fftw3/guru.html#fftw_execute_split_dft_r2c,fftw_plan,ptr.cdouble,ptr.cdouble,ptr.cdouble guru: fftw_execute_split_dft_r2c(p: fftw_plan; inptr: ptr cdouble; ro: ptr cdouble;\n io: ptr cdouble) fftw_execute_split_dft_c2r fftw3/guru.html#fftw_execute_split_dft_c2r,fftw_plan,ptr.cdouble,ptr.cdouble,ptr.cdouble guru: fftw_execute_split_dft_c2r(p: fftw_plan; ri: ptr cdouble; ii: ptr cdouble;\n outptr: ptr cdouble) -fftw_plan_guru_dft fftw3/guru.html#fftw_plan_guru_dft,cint,ptr.fftw_iodim,cint,ptr.fftw_iodim,ptr.fftw_complex,ptr.fftw_complex,cint,cuint guru: fftw_plan_guru_dft(rank: cint; dims: ptr fftw_iodim; howmany_rank: cint;\n howmany_dims: ptr fftw_iodim; inptr: ptr fftw_complex;\n outptr: ptr fftw_complex; sign: cint; flags: cuint): fftw_plan +fftw_plan_guru_dft fftw3/guru.html#fftw_plan_guru_dft,cint,ptr.fftw_iodim,cint,ptr.fftw_iodim,ptr.Complex64,ptr.Complex64,cint,cuint guru: fftw_plan_guru_dft(rank: cint; dims: ptr fftw_iodim; howmany_rank: cint;\n howmany_dims: ptr fftw_iodim; inptr: ptr Complex64;\n outptr: ptr Complex64; sign: cint; flags: cuint): fftw_plan fftw_plan_guru_split_dft fftw3/guru.html#fftw_plan_guru_split_dft,cint,ptr.fftw_iodim,cint,ptr.fftw_iodim,ptr.cdouble,ptr.cdouble,ptr.cdouble,ptr.cdouble,cuint guru: fftw_plan_guru_split_dft(rank: cint; dims: ptr fftw_iodim; howmany_rank: cint;\n howmany_dims: ptr fftw_iodim; ri: ptr cdouble;\n ii: ptr cdouble; ro: ptr cdouble; io: ptr cdouble;\n flags: cuint): fftw_plan -fftw_plan_guru64_dft fftw3/guru.html#fftw_plan_guru64_dft,cint,ptr.fftw_iodim64,cint,ptr.fftw_iodim64,ptr.fftw_complex,ptr.fftw_complex,cint,cuint guru: fftw_plan_guru64_dft(rank: cint; dims: ptr fftw_iodim64; howmany_rank: cint;\n howmany_dims: ptr fftw_iodim64; inptr: ptr fftw_complex;\n outptr: ptr fftw_complex; sign: cint; flags: cuint): fftw_plan +fftw_plan_guru64_dft fftw3/guru.html#fftw_plan_guru64_dft,cint,ptr.fftw_iodim64,cint,ptr.fftw_iodim64,ptr.Complex64,ptr.Complex64,cint,cuint guru: fftw_plan_guru64_dft(rank: cint; dims: ptr fftw_iodim64; howmany_rank: cint;\n howmany_dims: ptr fftw_iodim64; inptr: ptr Complex64;\n outptr: ptr Complex64; sign: cint; flags: cuint): fftw_plan fftw_plan_guru64_split_dft fftw3/guru.html#fftw_plan_guru64_split_dft,cint,ptr.fftw_iodim64,cint,ptr.fftw_iodim64,ptr.cdouble,ptr.cdouble,ptr.cdouble,ptr.cdouble,cuint guru: fftw_plan_guru64_split_dft(rank: cint; dims: ptr fftw_iodim64;\n howmany_rank: cint; howmany_dims: ptr fftw_iodim64;\n ri: ptr cdouble; ii: ptr cdouble; ro: ptr cdouble;\n io: ptr cdouble; flags: cuint): fftw_plan -fftw_plan_guru_dft_r2c fftw3/guru.html#fftw_plan_guru_dft_r2c,cint,ptr.fftw_iodim,cint,ptr.fftw_iodim,ptr.cdouble,ptr.fftw_complex,cuint guru: fftw_plan_guru_dft_r2c(rank: cint; dims: ptr fftw_iodim; howmany_rank: cint;\n howmany_dims: ptr fftw_iodim; inptr: ptr cdouble;\n outptr: ptr fftw_complex; flags: cuint): fftw_plan -fftw_plan_guru_dft_c2r fftw3/guru.html#fftw_plan_guru_dft_c2r,cint,ptr.fftw_iodim,cint,ptr.fftw_iodim,ptr.fftw_complex,ptr.cdouble,cuint guru: fftw_plan_guru_dft_c2r(rank: cint; dims: ptr fftw_iodim; howmany_rank: cint;\n howmany_dims: ptr fftw_iodim; inptr: ptr fftw_complex;\n outptr: ptr cdouble; flags: cuint): fftw_plan +fftw_plan_guru_dft_r2c fftw3/guru.html#fftw_plan_guru_dft_r2c,cint,ptr.fftw_iodim,cint,ptr.fftw_iodim,ptr.cdouble,ptr.Complex64,cuint guru: fftw_plan_guru_dft_r2c(rank: cint; dims: ptr fftw_iodim; howmany_rank: cint;\n howmany_dims: ptr fftw_iodim; inptr: ptr cdouble;\n outptr: ptr Complex64; flags: cuint): fftw_plan +fftw_plan_guru_dft_c2r fftw3/guru.html#fftw_plan_guru_dft_c2r,cint,ptr.fftw_iodim,cint,ptr.fftw_iodim,ptr.Complex64,ptr.cdouble,cuint guru: fftw_plan_guru_dft_c2r(rank: cint; dims: ptr fftw_iodim; howmany_rank: cint;\n howmany_dims: ptr fftw_iodim; inptr: ptr Complex64;\n outptr: ptr cdouble; flags: cuint): fftw_plan fftw_plan_guru_split_dft_r2c fftw3/guru.html#fftw_plan_guru_split_dft_r2c,cint,ptr.fftw_iodim,cint,ptr.fftw_iodim,ptr.cdouble,ptr.cdouble,ptr.cdouble,cuint guru: fftw_plan_guru_split_dft_r2c(rank: cint; dims: ptr fftw_iodim;\n howmany_rank: cint; howmany_dims: ptr fftw_iodim;\n inptr: ptr cdouble; ro: ptr cdouble;\n io: ptr cdouble; flags: cuint): fftw_plan fftw_plan_guru_split_dft_c2r fftw3/guru.html#fftw_plan_guru_split_dft_c2r,cint,ptr.fftw_iodim,cint,ptr.fftw_iodim,ptr.cdouble,ptr.cdouble,ptr.cdouble,cuint guru: fftw_plan_guru_split_dft_c2r(rank: cint; dims: ptr fftw_iodim;\n howmany_rank: cint; howmany_dims: ptr fftw_iodim;\n ri: ptr cdouble; ii: ptr cdouble;\n outptr: ptr cdouble; flags: cuint): fftw_plan -fftw_plan_guru64_dft_r2c fftw3/guru.html#fftw_plan_guru64_dft_r2c,cint,ptr.fftw_iodim64,cint,ptr.fftw_iodim64,ptr.cdouble,ptr.fftw_complex,cuint guru: fftw_plan_guru64_dft_r2c(rank: cint; dims: ptr fftw_iodim64; howmany_rank: cint;\n howmany_dims: ptr fftw_iodim64; inptr: ptr cdouble;\n outptr: ptr fftw_complex; flags: cuint): fftw_plan -fftw_plan_guru64_dft_c2r fftw3/guru.html#fftw_plan_guru64_dft_c2r,cint,ptr.fftw_iodim64,cint,ptr.fftw_iodim64,ptr.fftw_complex,ptr.cdouble,cuint guru: fftw_plan_guru64_dft_c2r(rank: cint; dims: ptr fftw_iodim64; howmany_rank: cint;\n howmany_dims: ptr fftw_iodim64;\n inptr: ptr fftw_complex; outptr: ptr cdouble;\n flags: cuint): fftw_plan +fftw_plan_guru64_dft_r2c fftw3/guru.html#fftw_plan_guru64_dft_r2c,cint,ptr.fftw_iodim64,cint,ptr.fftw_iodim64,ptr.cdouble,ptr.Complex64,cuint guru: fftw_plan_guru64_dft_r2c(rank: cint; dims: ptr fftw_iodim64; howmany_rank: cint;\n howmany_dims: ptr fftw_iodim64; inptr: ptr cdouble;\n outptr: ptr Complex64; flags: cuint): fftw_plan +fftw_plan_guru64_dft_c2r fftw3/guru.html#fftw_plan_guru64_dft_c2r,cint,ptr.fftw_iodim64,cint,ptr.fftw_iodim64,ptr.Complex64,ptr.cdouble,cuint guru: fftw_plan_guru64_dft_c2r(rank: cint; dims: ptr fftw_iodim64; howmany_rank: cint;\n howmany_dims: ptr fftw_iodim64; inptr: ptr Complex64;\n outptr: ptr cdouble; flags: cuint): fftw_plan fftw_plan_guru64_split_dft_r2c fftw3/guru.html#fftw_plan_guru64_split_dft_r2c,cint,ptr.fftw_iodim64,cint,ptr.fftw_iodim64,ptr.cdouble,ptr.cdouble,ptr.cdouble,cuint guru: fftw_plan_guru64_split_dft_r2c(rank: cint; dims: ptr fftw_iodim64;\n howmany_rank: cint;\n howmany_dims: ptr fftw_iodim64;\n inptr: ptr cdouble; ro: ptr cdouble;\n io: ptr cdouble; flags: cuint): fftw_plan fftw_plan_guru64_split_dft_c2r fftw3/guru.html#fftw_plan_guru64_split_dft_c2r,cint,ptr.fftw_iodim64,cint,ptr.fftw_iodim64,ptr.cdouble,ptr.cdouble,ptr.cdouble,cuint guru: fftw_plan_guru64_split_dft_c2r(rank: cint; dims: ptr fftw_iodim64;\n howmany_rank: cint;\n howmany_dims: ptr fftw_iodim64; ri: ptr cdouble;\n ii: ptr cdouble; outptr: ptr cdouble;\n flags: cuint): fftw_plan fftw_plan_guru_r2r fftw3/guru.html#fftw_plan_guru_r2r,cint,ptr.fftw_iodim,cint,ptr.fftw_iodim,ptr.cdouble,ptr.cdouble,ptr.fftw_r2r_kind,cuint guru: fftw_plan_guru_r2r(rank: cint; dims: ptr fftw_iodim; howmany_rank: cint;\n howmany_dims: ptr fftw_iodim; inptr: ptr cdouble;\n outptr: ptr cdouble; kind: ptr fftw_r2r_kind; flags: cuint): fftw_plan diff --git a/src/htmldocs/fftw3/libutils.html b/src/htmldocs/fftw3/libutils.html index 8b15eb2..c2580ea 100644 --- a/src/htmldocs/fftw3/libutils.html +++ b/src/htmldocs/fftw3/libutils.html @@ -117,8 +117,6 @@fftw3/libutils
title="fftw_write_char_func = proc (c: char; a3: pointer) {.cdecl.}">fftw_ write_ char_ func - -
fftw_ read_ char_ func fftw_ complex - @@ -175,7 +173,7 @@
fftw_ plan fftw3/libutils
fftw_complex = Complex64
fftw_plan = pointer
proc fftw_alloc_complex(n: csize_t): ptr fftw_complex {...}{.cdecl, + proc fftw_alloc_complex(n: csize_t): ptr fftw_complex {...}{.cdecl, importc: "fftw_alloc_complex", dynlib: Fftw3Lib.}- @@ -442,7 +433,7 @@
Procs
diff --git a/src/htmldocs/fftw3/libutils.idx b/src/htmldocs/fftw3/libutils.idx index b1eea8b..4703226 100644 --- a/src/htmldocs/fftw3/libutils.idx +++ b/src/htmldocs/fftw3/libutils.idx @@ -17,7 +17,6 @@ wchar_t fftw3/libutils.html#wchar_t libutils: wchar_t fftw_iodim64 fftw3/libutils.html#fftw_iodim64 libutils: fftw_iodim64 fftw_write_char_func fftw3/libutils.html#fftw_write_char_func libutils: fftw_write_char_func fftw_read_char_func fftw3/libutils.html#fftw_read_char_func libutils: fftw_read_char_func -fftw_complex fftw3/libutils.html#fftw_complex libutils: fftw_complex fftw_plan fftw3/libutils.html#fftw_plan libutils: fftw_plan fftw_fprint_plan fftw3/libutils.html#fftw_fprint_plan,fftw_plan,ptr.File libutils: fftw_fprint_plan(p: fftw_plan; output_file: ptr File) fftw_print_plan fftw3/libutils.html#fftw_print_plan,fftw_plan libutils: fftw_print_plan(p: fftw_plan) diff --git a/src/htmldocs/fftw3/wisdom.html b/src/htmldocs/fftw3/wisdom.html index 6a2d647..76e31cd 100644 --- a/src/htmldocs/fftw3/wisdom.html +++ b/src/htmldocs/fftw3/wisdom.html @@ -259,7 +259,7 @@Procs
diff --git a/src/htmldocs/theindex.html b/src/htmldocs/theindex.html index f2f44c0..7cc8eae 100644 --- a/src/htmldocs/theindex.html +++ b/src/htmldocs/theindex.html @@ -104,10 +104,6 @@Index
- libutils: fftw_codelet_optim