1. 12 Nov, 2009 2 commits
  2. 10 Nov, 2009 2 commits
    • Sumant Oemrawsingh's avatar
      Vector size passed to GSL functions now take stride into account. · 3c6a2d2e
      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's avatar
      Rewrite test-real-radix2 for clarity · a25477a5
      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.
  3. 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.
    • 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.
    • 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.
  4. 08 Nov, 2009 2 commits
  5. 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.
    • 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.
  6. 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.
    • 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.
  7. 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.
  8. 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.
    • 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
    • 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.
    • 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
  9. 31 Oct, 2009 4 commits
  10. 25 Oct, 2009 2 commits
    • Sumant Oemrawsingh's avatar
      Mixed radix complex float FFTs implemented · f321a591
      Sumant Oemrawsingh authored
      The mixed radix complex single-float and double-floats now seem to work
      correctly. This would mean that all the complex FFTs are working, and only
      need a nicer interface (e.g. automatic determination of whether to use a
      radix-2 or mixed-radix algorithm).
    • Sumant Oemrawsingh's avatar
      Preliminary FFT functionality · 68d8dee7
      Sumant Oemrawsingh authored
      Only complex fast fourier transforms have been added. The radix-2 versions
      have been tested and found to work. The decimation-in-frequency versions have
      been added, but not tested. The mixed-radix versions only work for complex
      double-float at the moment.
  11. 18 Oct, 2009 1 commit
    • Liam Healy's avatar
      Fix defmfun expansion of default optional/key values · 5a5906dd
      Liam Healy authored
      For methods on marrays, all default values for optional and key
      arguments were wrongly coerced to the array element type.  This
      doesn't affect any current definitions in GSLL, but FFT functions with
      the stride specified, it will wrongly change the default value to the
      element type.  This has been fixed by changing #'actual-class-arglist
      so that it looks up the type intended to be passed to the C function
      and coerces to that if it is available.  Otherwise the expansion
      leaves the default value alone.
  12. 16 Oct, 2009 1 commit
    • Liam Healy's avatar
      Generalize set-matrix to have index limits · 33d52a9f
      Liam Healy authored
      Index limits may be passed to set-matrix and to some of the functions
      dependent on it, so that e.g. a tridiagonal matrix can be defined
      without iterating over all elements.  If the optional argument
      'pass-element is non-NIL, the function will be passed a final argument
      which is the prior value of the current element.
  13. 26 Sep, 2009 2 commits
    • Liam Healy's avatar
      QRPT: add tests, make arguments optional, fix bugs · a42b3a3a
      Liam Healy authored
      Added the translated GSL tests to the linear algebra for QR
      decomposition with column pivoting.  More arguments corresponding to
      values returned by the functions are now optional.  Fixed the order of
      return values from QRPT-decomposition so that permutation is before
      signum.  Fixed argument lists to QRPT-QRsolve.
    • Liam Healy's avatar
      Cholesky: add tests; return argument for matrix-product · bcb8e0b5
      Liam Healy authored
      Added eight tests from GSL's test for Cholesky decomposition and
      solving.  The four decomposition tests incorrectly produce zero in
      CCL.  The first optional argument in matrix-product and
      matrix-product-symmetric can now be nil, to indicate a matrix of the
      right dimensions should be constructed.  This is the default; the
      default previously was to make that matrix directly, which meant if
      any other optional arguments were supplied, the complicated default
      construction for the return matrix would have to be re-entered.
  14. 25 Sep, 2009 1 commit
  15. 22 Sep, 2009 1 commit
    • Liam Healy's avatar
      Test result is double-float · df63f1b6
      Liam Healy authored
      Add "d0" to test result for (test-qr-lssolve-dim *M53*) so that it's
      read as double-float; without that it is interpreted as single-float
      which gives a substantial discrepancy from the double-float result.
  16. 21 Sep, 2009 1 commit
    • Liam Healy's avatar
      QR: More optional arguments, add tests form GSL · 44b9d868
      Liam Healy authored
      Changed required to optional arguments for several of the QR linear
      algebra functions, for returned quantities.  45 new tests added for QR
      that are translated from GSL's tests.  Matrices and solutions that are
      used by more than one of the linear algebra techniques are defined in
  17. 20 Sep, 2009 2 commits
    • Liam Healy's avatar
      LU linear algebra tests from GSL · 75f04669
      Liam Healy authored
      Added nine tests derived from the self-tests that GSL has for LU
      decomposition.  All tests except the complex matrix pass within the
      tolerances prescribed by GSL.
    • Liam Healy's avatar
      Matrix generation for linear algebra tests · 72eaac6d
      Liam Healy authored
      Matrices (and vectors) may be created from functions of the element
      indices.  This is needed to create the matrices used in testing the
      linear algebra functions.  It also can be of general use, especially
      with further generalization.  For now, there are no exported symbols
      from these definitions.
  18. 18 Sep, 2009 1 commit
    • Liam Healy's avatar
      SVD: More optional arguments, add tests · 03ad93e0
      Liam Healy authored
      For the singular value decomposition functions, make the S vector and
      V matrix optional arguments, as they are quantities returned by the
      functions.  Add tests translated from the GSL tests.
  19. 27 Aug, 2009 2 commits
  20. 26 Aug, 2009 1 commit
    • Liam Healy's avatar
      List argument to defmobject :initialize-suffix · 8555fb6a
      Liam Healy authored
      A list argument to defmobject :initialize-suffix now means what a list
      argument to defmfun to defmfun c-arguments does: there are two foreign
      functions corresponding to the Lisp function; in this case, to
      reinitialize-instance.  The old meaning of having the second element
      specify the c-return reinitialize-instance has been eliminated;
      instead, this information is conveyed in a new key argument
  21. 25 Aug, 2009 1 commit
    • Liam Healy's avatar
      Added tests of minimization-one setting with values · 13447017
      Liam Healy authored
      Two new tests of minimization-one setting values have been added,
      duplicating the test which do not set values.  Patch by Evgeniy
      SBCL 64:
      TOTAL: 1525 assertions passed, 5 failed, 0 execution errors.
  22. 24 Aug, 2009 2 commits
    • Liam Healy's avatar
      Use symbols to refer to modules in asd file · 4df83bca
      Liam Healy authored
      ASDF definition of modules are with symbols, so the :depends-on
      reference to those modules is also with symbols, not strings.
    • Liam Healy's avatar
      Multiple foreign functions in the reinitialize-instance for mobjects · 9990ee06
      Liam Healy authored
      It is now possible to specify two foreign functions for the
      reinitialize-instance for defmobject.  The switch between the function
      depends on the presence or absence of optional/key arguments.  This is
      used in the definition of one-dimensional-minimizer to switch between
      gsl_min_fminimizer_set and gsl_min_fminimizer_set_with_values
      depending on the non-NIL value of f-minimum.  The set-with-values case
      has not yet been tested.