1. 08 Dec, 2009 1 commit
    • 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
  2. 06 Dec, 2009 1 commit
  3. 01 Dec, 2009 1 commit
  4. 30 Nov, 2009 2 commits
  5. 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
  6. 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
  7. 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
  8. 18 Nov, 2009 2 commits
  9. 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
  10. 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
  11. 15 Nov, 2009 2 commits
  12. 14 Nov, 2009 1 commit
  13. 13 Nov, 2009 1 commit
  14. 12 Nov, 2009 4 commits
  15. 10 Nov, 2009 3 commits
  16. 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
  17. 08 Nov, 2009 2 commits
  18. 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
  19. 04 Nov, 2009 2 commits
    • Liam Healy's avatar
      FFT Unpack · 7192e225
      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.
      7192e225
    • Liam Healy's avatar
      Decimation-in-frequency added to forward FFT · 39c888a4
      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.
      39c888a4
  20. 02 Nov, 2009 1 commit
    • Liam Healy's avatar
      Unify forward FFT into new file and function · b4f09c28
      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.
      b4f09c28
  21. 01 Nov, 2009 4 commits
    • Liam Healy's avatar
      Unify radix2 forward transforms over real and complex types · 9d22c860
      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.
      9d22c860
    • Liam Healy's avatar
      Updated documentation for FFT · 0e3f8c2a
      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.
      0e3f8c2a
    • Sumant Oemrawsingh's avatar
      Added attempt to clean FFT interface · dcc05d7f
      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.
      dcc05d7f
    • Sumant Oemrawsingh's avatar
      Some clean-up of real/half-complex FFT · 48f7e66a
      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.
      48f7e66a
  22. 31 Oct, 2009 1 commit