 01 Dec, 2009 1 commit


Liam Healy authored

 30 Nov, 2009 2 commits



Liam M. Healy authored
Function #'numberclass finds the CL class from the number type, replacing the previous function #'numberclassfromtype in init/defmfunarray.lisp. It is a bit more general.

 26 Nov, 2009 1 commit


Sumant Oemrawsingh authored
fftfrequencyvector can be used to make a vector that contains the actual sample frequencies (so you don't have to guess or write your own). fftshift and fftinverseshift shift the zero frequency to the center (for easy plotting), and the inverse (for proper inverse FFT). These functions are comparable to fftfreq, fftshift and ifftshift in numpy (if anyone cares...).

 20 Nov, 2009 1 commit


Liam Healy authored
Two new functions to write tests in fastfouriertransforms/example.lisp, #'makerealnoiseffttest and #'generateffttests. The first one generates, given a size and stride, a pair of forward and inverse real tests, together with the answers. The second one loops over a range of sizes and strides, collecting the sets, and wrapping with a lispunit:definetest. Since they rely on #'maketest in testunit/generatetests.lisp, they won't normally be compiled. No test file generated yet.

 19 Nov, 2009 1 commit


Liam Healy authored
The expanded FFT tests with inverse and backward transformations have simplified code. Since the backward and inverse cases must be divided by the length, the complex test will not work in GSL versions prior to 1.12, nor if FSBV is missing. In these cases, the vector is computed by converting to a CL array, dividing by the length, and then converting back.

 18 Nov, 2009 2 commits


Liam M. Healy authored
The functions elt* and elt+ which used with a scalar use complex, not double, scalars; GSL functions are gsl_vector_complex_scale, gsl_vector_complex_add_constant, gsl_vector_complex_float_scale, gsl_vector_complex_float_add_constant.

Sumant Oemrawsingh authored
The backward FFT test for complex numbers doesn't work properly now because of some corruption that happens with elt/. But the forms should be correct.

 17 Nov, 2009 2 commits


Liam Healy authored
The FFT noise test testfftnoise calls a new splitout function forwardfftrc as well as the DFT "answer". In preparation for the generation of the test files, several functions in generatetests.lisp have been modified to accept a known answer, in lieu of evaluating the form and saving that as the reference.

Sumant Oemrawsingh authored
The reason why the complex case didn't work in example.lisp, is that the FFTs (not DFTs) work inplace. for reals it worked because the random (source) vector was copied (or at least, only the real part) before FFTing. Now, it's also copied in the complex case.

 16 Nov, 2009 2 commits


Liam M. Healy authored
Eliminate defparameter *passcomplexscalarastworeals* and associate comments which predate FSBV.

Liam Healy authored
The noise generator makeurandvector and the noise test, now called testfftnoise, now work for all four element types, doublefloat, singlefloat, (complex doublefloat), (complex singlefloat). These are meant to emulate the noise parts of GSL's test_complex_radix2, test_real_radix2, test_complex_float_radix2, test_real_float_radix2, test_complex_float_func, test_complex_func, test_real_float_func, and test_real_func. The real tests pass and the complex tests currently fail.

 15 Nov, 2009 2 commits


Sumant Oemrawsingh authored
Unpack functions were still not properly handling strides. This is now fixed. The testrealradix2 function (from GSL's original test_real_radix2) now also works with strides. The function is not yet complete, though, as it does not yet test backward/inverse functions, and also doesn't actually perform comparisons yet.


 14 Nov, 2009 1 commit


Liam Healy authored
A few overlooked function symbols have been exported and some unused function definitions eliminated. Added an example solvetridiagonalexample thanks to Mirko Vukovic.

 13 Nov, 2009 1 commit


Liam Healy authored

 12 Nov, 2009 4 commits


Liam Healy authored
Clean up spline examples with simpler code and same results. Functions in interpolation/evaluation.lisp with key argument :acceleration defaults to (makeacceleration). Test for evaluateintegralexample added.

TTCA Vukovic authored

TTCA Vukovic authored

Liam Healy authored
For the case (eql elementtype 'doublefloat) in makefftwavetable, the clauses of the if were reversed; now fixed. This fixes erroneous output from (testrealradix2 'doublefloat 6).

 10 Nov, 2009 3 commits


Sumant Oemrawsingh authored

Sumant Oemrawsingh authored
For the FFT functions in GSLL, the vector sizes cannot be supplied by the caller, but the stride can. The vector size passed to GSL is not the actual vector size, but rather the size of the vector taking the stride into account: (floor (size vector) stride). This is now fixed.

Liam Healy authored
New function realpartvector makes a real vector with the real part of the complex vector passed as an argument; was part of testrealradix2. The computations being performed in testrealradix2 are now much clearer.

 09 Nov, 2009 3 commits


Liam M. Healy authored
In FFT, the default wavetable and workspace arguments to functions now all use #'makefftwavetable and makefftworkspace. Removed definition of +cgsmgauss+ because evidently GSL_CONST_CGSM_GAUSS is no longer in GSL as of 1.13. Added dependency on init for physicalconsants. Trivial change to names of systems in asd files to be more standard.

Liam Healy authored
The real array for testrealradix2 was being made twice as long as it should have been; fixed. Also now load discrete.lisp in gsll.asd so that the tests can be called.

Liam Healy authored
The first of the GSL tests has been ported to GSLL as testrealradix2. Currently it doesn't do a comparison, just returns both the answer from the DFT and from the FFT. Also, stride=1 here.

 08 Nov, 2009 2 commits


Liam Healy authored
Interface to discrete Fourier transforms defined in GSL but not documented, apparently used for tests of FFT only.

Sumant Oemrawsingh authored
The generic unpack function called the specific unpack functions without passing on the vector, causing you to land in the debugger.

 07 Nov, 2009 2 commits


Liam Healy authored
Use makefftwavetable and makefftworkspace to make the FFT objects. The specific FFT wavetable and workspace mobjects are not exported, which is now possible to specify in defmobject with :export nil.

Liam Healy authored
The fast Fourier transform port now complete except for the tests. The backward, inverse, and selectable direction transforms are now unified in their respective files, a new file has been created for the wavetable and workspace mobjects. The output of the example functions looks plausible.

 04 Nov, 2009 2 commits


Liam Healy authored
Function #'unpack will switch between the various unpacking generic functions, depending on the specified unpack type and whether the vector length is a power of 2. New file unpack.lisp has all the unpacking functions.

Liam Healy authored
The function forwardfouriertransform now has an argument :decimationinfrequency that will call the generic function forwardfouriertransformdifradix2 if nonNIL and the length of the vector is a power of 2. This is not tested yet.

 02 Nov, 2009 1 commit


Liam Healy authored
The function #'forwardfouriertransform selects among the 12 GSL forward FFT functions, depending on whether the length of the vector is a power of 2, whether the :halfcomplex flag is set, and the type of the vector. This exported function, along with its supporting internal functions, are in the file forward.lisp. The dimension argument for fftpulsetest is now mandatory. All mobjects have been renamed so that they end with either singlefloat or doublefloat, consistent with the naming scheme in the rest of GSLL. Eliminated (evidently) obsolete example file fftexample.lisp.

 01 Nov, 2009 4 commits


Liam Healy authored
The individual real and complex defmfuns for forward transforms have been removed from fftreal.lisp and fftcomplex.lisp and unified in fftinterface.lisp as forwardfouriertransformradix2 and forwardfouriertransformnonradix2. This is untested and is meant to experiment with unification of the functions; if successful, the other functions should be changed as similarly, and radix2/nonradix2 switch incorporated if possible.

Liam Healy authored
Added FFT to the list of features in index.html and removed from missingfeatures.text; also updated other things in missingfeatures.text.

Sumant Oemrawsingh authored
A hopefully nicer interface to the FFT functions are given, where the precise FFT function is deduced from the supplied vector. While the interface is nicer, the code is ugly, hacky and not fool proof yet. Cleanup required.

Sumant Oemrawsingh authored
Halfcomplex FFT functions were split off into their own file. Wavetable and workspace names now have an fft prepended to their name, for clarity.

 31 Oct, 2009 3 commits


Sumant Oemrawsingh authored

Sumant Oemrawsingh authored
The example shows real, complex, radix2 and mixedradix FFTs. It can be used in the unittest framework, but is not properly generated yet.

Sumant Oemrawsingh authored
I screwed up the fft module in gsll.asd with a typo and forgot to test before commit. This is now fixed.
