- Dec 23, 2009
-
-
Liam Healy authored
Replace create-matrix and constant-matrix by using the grid functions grid:map-grid and grid:make-grid; eliminate create-vector because vectors can be generated with create-matrix and using nil for the second dimension argument. In the grid:make-grid-data method for make-marray, the first argument, which is the element type, needs to be extracted from the rest spec with a newly-changed grid:spec-scalar-p because compound types like (complex double-float) were not being recognized as element types.
-
- Dec 22, 2009
-
-
Liam Healy authored
The GSLL marrays now function correctly as instances of grid:grid; for example, (grid:transpose *m35*) works. All previous tests pass in SBCL.
-
Liam Healy authored
The grid definitions supply the slot 'grid:data which can be used for CL array storage for marrays. In order for a combination of zero dimension (k) to be made, there is an ignore-errors around the make-affi in initialize-instance :after for foreign-array.
-
- Dec 21, 2009
-
-
Liam Healy authored
Define foreign-array as subclass of grid:grid with access to elements through grid:gref.
-
Liam Healy authored
Moved the definition of the generic function copy-making-destination to copy objects while making a destination object, and the wrapper function #'copy for that and copy-to-destination to grid/ and c-array: package.
-
Liam Healy authored
The generic function definition for copy-to-destination is now in grid/ and the c-array package. This will make it accessible to non-GSLL foreign library interfaces, but the new location is a bit deceptive because a new method needn't be a subclass of foreign-array.
-
Liam Healy authored
Moved the defgeneric and methods for CL arrays and foreign-array for cl-array, maref and (setf maref) to a new file grid/element-reference.lisp. The old file data/maref.lisp remains with the GSL pointer methods.
-
Liam Healy authored
Continuing the separation of definitions useful for any libraries using C arrays, foreign-array.lisp and foreign-friendly.lisp have been moved to the grid subdirectory and placed in the c-array package. All tests pass on SBCL 64, TOTAL: 1627 assertions passed, 6 failed, 0 execution errors.
-
Liam Healy authored
Move number-conversion.lisp from init/ to grid/ and symbol-type portion of init/interface.lisp to grid/symbol-type.lisp. All tests pass TOTAL: 1627 assertions passed, 6 failed, 0 execution errors.
-
- Dec 08, 2009
-
-
Liam Healy authored
Continued separation of GSLL into two packages and eventually systems, the definitions in element-types.lisp are now in the c-array package.
-
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.
-