get_vector_dft - Computes the discrete Fourier transform (DFT) of a vector
Example compile flags (system dependent):
-DLINUX_X86_64 -DLINUX_X86_64_OPTERON -DGNU_COMPILER
-lKJB -lfftw3 -lgsl -lgslcblas -ljpeg -lSVM -lstdc++ -lpthread -lSLATEC -lg2c -lacml -lacml_mv -lblas -lg2c -lncursesw
const Vector *input_re_vp,
const Vector *input_im_vp
This routine computes the discrete Fourier transform (DFT) of a paire of
matrices representing a complex vector. The vector representing the imaginary
part can be NULL.
The first two argument are pointers to matrices for the real and imaginary
parts of the result. If they are null, then matrices of the appropriate sizes
are created. If they are the wrong size, they are resized. Finally, if they
are the right size, then the storage is recycled, as is.
NO_ERROR on success, and ERROR on failure, with an error message being
This routine simply wraps the appropriate fftw library functions for
convenient use with our our data structures. The fftw library can also
be used directly in conjunction with the kjb_library by including
fftw3.h (the makefile builder should know where to find everthing).
This can be preferable in some cases where one wants to exploit the
tuning mechanism from that library, and cut down on overhead. However,
for ocasional use, the savings won't be very great.
The default behaviour of this routine is to inherits fftw's normalization strategy which is to return
unnormalized transforms. This means that taking the transform, and then
inverting, requires division by N=num_cols*num_rows. This behaviour can
be changed using the set_fftw_style() function.
This software is not adequatedly tested. It is recomended that
results are checked independantly where appropriate.