Fourier Transforms
This package extends the functionality provided by AbstractFFTs. To learn more about those functions, consult that package's documentation.
The following functions are unique to this package.
FFTW.r2r
— Functionr2r(A, kind [, dims])
Performs a multidimensional real-input/real-output (r2r) transform of type kind
of the array A
, as defined in the FFTW manual. kind
specifies either a discrete cosine transform of various types (FFTW.REDFT00
, FFTW.REDFT01
, FFTW.REDFT10
, or FFTW.REDFT11
), a discrete sine transform of various types (FFTW.RODFT00
, FFTW.RODFT01
, FFTW.RODFT10
, or FFTW.RODFT11
), a real-input DFT with halfcomplex-format output (FFTW.R2HC
and its inverse FFTW.HC2R
), or a discrete Hartley transform (FFTW.DHT
). The kind
argument may be an array or tuple in order to specify different transform types along the different dimensions of A
; kind[end]
is used for any unspecified dimensions. See the FFTW manual for precise definitions of these transform types, at http://www.fftw.org/doc.
The optional dims
argument specifies an iterable subset of dimensions (e.g. an integer, range, tuple, or array) to transform along. kind[i]
is then the transform type for dims[i]
, with kind[end]
being used for i > length(kind)
.
See also plan_r2r
to pre-plan optimized r2r transforms.
FFTW.r2r!
— Functionr2r!(A, kind [, dims])
Same as r2r
, but operates in-place on A
, which must be an array of real or complex floating-point numbers.
FFTW.plan_r2r
— Functionplan_r2r(A, kind [, dims [, flags [, timelimit [, num_threads]]]])
Pre-plan an optimized r2r transform, similar to plan_fft
except that the transforms (and the first three arguments) correspond to r2r
and r2r!
, respectively.
FFTW.plan_r2r!
— Functionplan_r2r!(A, kind [, dims [, flags [, timelimit [, num_threads]]]])
FFTW.dct
— Functiondct(A [, dims])
Performs a multidimensional type-II discrete cosine transform (DCT) of the array A
, using the unitary normalization of the DCT. The optional dims
argument specifies an iterable subset of dimensions (e.g. an integer, range, tuple, or array) to transform along. Most efficient if the size of A
along the transformed dimensions is a product of small primes; see nextprod
. See also plan_dct
for even greater efficiency.
FFTW.idct
— Functionidct(A [, dims])
Computes the multidimensional inverse discrete cosine transform (DCT) of the array A
(technically, a type-III DCT with the unitary normalization). The optional dims
argument specifies an iterable subset of dimensions (e.g. an integer, range, tuple, or array) to transform along. Most efficient if the size of A
along the transformed dimensions is a product of small primes; see nextprod
. See also plan_idct
for even greater efficiency.
FFTW.dct!
— Functiondct!(A [, dims])
Same as dct
, except that it operates in-place on A
, which must be an array of real or complex floating-point values.
FFTW.idct!
— Functionidct!(A [, dims])
Same as idct
, but operates in-place on A
.
FFTW.plan_dct
— Functionplan_dct(A [, dims [, flags [, timelimit [, num_threads]]]])
Pre-plan an optimized discrete cosine transform (DCT), similar to plan_fft
except producing a function that computes dct
. The first two arguments have the same meaning as for dct
.
FFTW.plan_idct
— Functionplan_idct(A [, dims [, flags [, timelimit [, num_threads]]]])
Pre-plan an optimized inverse discrete cosine transform (DCT), similar to plan_fft
except producing a function that computes idct
. The first two arguments have the same meaning as for idct
.
FFTW.plan_dct!
— Functionplan_dct!(A [, dims [, flags [, timelimit [, num_threads]]]])
Same as plan_dct
, but operates in-place on A
.
FFTW.plan_idct!
— Functionplan_idct!(A [, dims [, flags [, timelimit [, num_threads]]]])
Same as plan_idct
, but operates in-place on A
.