1. 22 Dec, 2009 1 commit
    • Liam Healy's avatar
      Use slot 'grid:data instead of superfluous slot 'cl-array · 7b6dea21
      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.
      7b6dea21
  2. 21 Dec, 2009 6 commits
    • Liam Healy's avatar
      Define foreign-array as subclass of grid:grid · 0c0834e1
      Liam Healy authored
      Define foreign-array as subclass of grid:grid with access to elements
      through grid:gref.
      0c0834e1
    • Liam Healy's avatar
      Move copy, copy-making-destination to grid · 3680b307
      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.
      3680b307
    • Liam Healy's avatar
      Move copy-to-destination to grid · 06f99392
      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.
      06f99392
    • Liam Healy's avatar
      Moved some maref definitions to grid · f3a45c98
      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.
      f3a45c98
    • Liam Healy's avatar
      Move foreign-array and foreign-friendly to grid · a9cf4a74
      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.
      a9cf4a74
    • Liam Healy's avatar
      Move symbol-type and number-conversion to grid · ce261d71
      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.
      ce261d71
  3. 08 Dec, 2009 2 commits
    • Liam Healy's avatar
      Moved element-types.lisp from init to grid · 2317ccf0
      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.
      2317ccf0
    • Liam Healy's avatar
      Split off grid directory · 8d5cd4a5
      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.
      8d5cd4a5
  4. 06 Dec, 2009 1 commit
  5. 01 Dec, 2009 1 commit
  6. 30 Nov, 2009 2 commits
  7. 26 Nov, 2009 1 commit
    • Sumant Oemrawsingh's avatar
      Added some extra functions for use with FFTs · 976eac7b
      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...).
      976eac7b
  8. 20 Nov, 2009 1 commit
    • Liam Healy's avatar
      Initial test constructor for FFT tests · 7a78c863
      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.
      7a78c863
  9. 19 Nov, 2009 1 commit
    • Liam Healy's avatar
      Simplify FFT test code, handle GSL version <1.12 · e024b6bb
      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.
      e024b6bb
  10. 18 Nov, 2009 2 commits
  11. 17 Nov, 2009 2 commits
    • Liam Healy's avatar
      Split fft-noise test into FFT and DFT; test generation with supplied answer · 999255fe
      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.
      999255fe
    • Sumant Oemrawsingh's avatar
      Initial test function complex case now works. · e635d8e7
      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.
      e635d8e7
  12. 16 Nov, 2009 2 commits
    • Liam M. Healy's avatar
      Eliminate obsolete code · 7663933a
      Liam M. Healy authored
      Eliminate defparameter *pass-complex-scalar-as-two-reals* and
      associate comments which predate FSBV.
      7663933a
    • Liam Healy's avatar
      Define noise tests for all element types · b6d847b1
      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.
      b6d847b1
  13. 15 Nov, 2009 2 commits
  14. 14 Nov, 2009 1 commit
  15. 13 Nov, 2009 1 commit
  16. 12 Nov, 2009 4 commits
  17. 10 Nov, 2009 3 commits
  18. 09 Nov, 2009 3 commits
    • Liam M. Healy's avatar
      Default wavetable/workspace; remove unused constant in GSL 1.13; fix dependency · af3cb9e6
      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.
      af3cb9e6
    • Liam Healy's avatar
      GSL test test-real-radix2 create correct size real array · e2771a1b
      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.
      e2771a1b
    • Liam Healy's avatar
      GSL test test-real-radix2 working · 1477c1a4
      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.
      1477c1a4
  19. 08 Nov, 2009 2 commits
  20. 07 Nov, 2009 2 commits
    • Liam Healy's avatar
      Use make-fft-wavetable and make-fft-workspace to make FFT objects · 503e5186
      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.
      503e5186
    • Liam Healy's avatar
      Fast Fourier transform complete · ce3177ad
      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.
      ce3177ad