- Dec 08, 2009
-
-
Liam Healy authored
Eventually, the definitions used for dealing with types and foreign arrays that aren't specific to GSL will be split off into another system, so that it will be easier to build other foreign library interfaces using these definitions. As a start, the grid/ directory defines a package 'c-array and some of the type definitions formerly in init/. Everything compiles and tests as before, on SBCL TOTAL: 1627 assertions passed, 6 failed, 0 execution errors.
-
- Dec 06, 2009
-
-
Liam Healy authored
-
- Dec 01, 2009
-
- Nov 30, 2009
-
-
Liam M. Healy authored
Function #'number-class finds the CL class from the number type, replacing the previous function #'number-class-from-type in init/defmfun-array.lisp. It is a bit more general.
- Nov 26, 2009
-
-
Sumant Oemrawsingh authored
fft-frequency-vector can be used to make a vector that contains the actual sample frequencies (so you don't have to guess or write your own). fft-shift and fft-inverse-shift 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...).
-
- Nov 20, 2009
-
-
Liam Healy authored
Two new functions to write tests in fast-fourier-transforms/example.lisp, #'make-real-noise-fft-test and #'generate-fft-tests. 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 lisp-unit:define-test. Since they rely on #'make-test in test-unit/generate-tests.lisp, they won't normally be compiled. No test file generated yet.
-
- Nov 19, 2009
-
-
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.
-
- Nov 18, 2009
-
-
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.
-
- Nov 17, 2009
-
-
Liam Healy authored
The FFT noise test test-fft-noise calls a new split-out function forward-fft-rc as well as the DFT "answer". In preparation for the generation of the test files, several functions in generate-tests.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 in-place. for reals it worked because the random (source) vector was copied (or at least, only the real part) before FFT-ing. Now, it's also copied in the complex case.
-
- Nov 16, 2009
-
-
Liam M. Healy authored
Eliminate defparameter *pass-complex-scalar-as-two-reals* and associate comments which predate FSBV.
-
Liam Healy authored
The noise generator make-urand-vector and the noise test, now called test-fft-noise, now work for all four element types, double-float, single-float, (complex double-float), (complex single-float). 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.
-
- Nov 15, 2009
-
-
Sumant Oemrawsingh authored
Unpack functions were still not properly handling strides. This is now fixed. The test-real-radix2 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.
-
- Nov 14, 2009
-
-
Liam Healy authored
A few overlooked function symbols have been exported and some unused function definitions eliminated. Added an example solve-tridiagonal-example thanks to Mirko Vukovic.
-
- Nov 13, 2009
-
-
Liam Healy authored
-
- Nov 12, 2009
-
-
Liam Healy authored
Clean up spline examples with simpler code and same results. Functions in interpolation/evaluation.lisp with key argument :acceleration defaults to (make-acceleration). Test for evaluate-integral-example added.
-
TTCA Vukovic authored
-
TTCA Vukovic authored
-
Liam Healy authored
For the case (eql element-type 'double-float) in make-fft-wavetable, the clauses of the if were reversed; now fixed. This fixes erroneous output from (test-real-radix2 'double-float 6).
-
- Nov 10, 2009
-
-
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 realpart-vector makes a real vector with the real part of the complex vector passed as an argument; was part of test-real-radix2. The computations being performed in test-real-radix2 are now much clearer.
-
- Nov 09, 2009
-
-
Liam M. Healy authored
In FFT, the default wavetable and workspace arguments to functions now all use #'make-fft-wavetable and make-fft-workspace. Removed definition of +cgsm-gauss+ because evidently GSL_CONST_CGSM_GAUSS is no longer in GSL as of 1.13. Added dependency on init for physical-consants. Trivial change to names of systems in asd files to be more standard.
-
Liam Healy authored
The real array for test-real-radix2 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 test-real-radix2. Currently it doesn't do a comparison, just returns both the answer from the DFT and from the FFT. Also, stride=1 here.
-
- Nov 08, 2009
-
-
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.
-
- Nov 07, 2009
-
-
Liam Healy authored
Use make-fft-wavetable and make-fft-workspace 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.
-
- Nov 04, 2009
-
-
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 forward-fourier-transform now has an argument :decimation-in-frequency that will call the generic function forward-fourier-transform-dif-radix2 if non-NIL and the length of the vector is a power of 2. This is not tested yet.
-
- Nov 02, 2009
-
-
Liam Healy authored
The function #'forward-fourier-transform selects among the 12 GSL forward FFT functions, depending on whether the length of the vector is a power of 2, whether the :half-complex 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 fft-pulse-test is now mandatory. All mobjects have been renamed so that they end with either -single-float or -double-float, consistent with the naming scheme in the rest of GSLL. Eliminated (evidently) obsolete example file fft-example.lisp.
-
- Nov 01, 2009
-
-
Liam Healy authored
The individual real and complex defmfuns for forward transforms have been removed from fft-real.lisp and fft-complex.lisp and unified in fft-interface.lisp as forward-fourier-transform-radix2 and forward-fourier-transform-nonradix2. 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/non-radix2 switch incorporated if possible.
-
Liam Healy authored
Added FFT to the list of features in index.html and removed from missing-features.text; also updated other things in missing-features.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
Half-complex FFT functions were split off into their own file. Wavetable and workspace names now have an fft- prepended to their name, for clarity.
-
- Oct 31, 2009
-
-
Sumant Oemrawsingh authored
-