1. 25 Oct, 2008 1 commit
    • Liam Healy's avatar
      Port tests to save-test · 0343f3ce
      Liam Healy authored
      All remaning tests are now defined with save-test, and the
      LISP-UNIT:DEFINE-TEST has been eliminated from the definition files,
      except for arrays.
      0343f3ce
  2. 22 Oct, 2008 1 commit
    • Liam Healy's avatar
      Save test forms with save-test; generate separate files with actual tests · 0fb0effc
      Liam Healy authored
      New function #'save-test saves test forms to a special, and nothing
      more.  Function #'write-test-to-file in generate-tests.lisp will write
      it to a file, which ought to be done rarely.  I have started the task
      of moving all test definitions to save-test, in the
      special-functions.  The files generated have been checked against the
      old definitions, but they have not been checked in yet.
      0fb0effc
  3. 14 Oct, 2008 1 commit
    • Liam Healy's avatar
      Test generation (including arrays) with save-tests · 6bb17e91
      Liam Healy authored
      New macro #'save-tests will put list of tests onto
      *all-generated-tests*.  The corresponding lisp-unit test can be
      generated with #'create-test.  The macro #'generate-all-array-tests
      now uses #'save-tests, so all tests defined that way will be put onto
      the lists.  All tests can be written to a file with
      #'write-tests-to-file, but this writes to a single file and I think I
      will want to write each test to a separate file so that it is easier
      to replace or augment one test without touching the others.  Two
      sections, Airy and Clausen, use these definitions.
      6bb17e91
  4. 21 Sep, 2008 2 commits
    • Liam Healy's avatar
      Restoration of tests complete except for arrays · 4e6d5886
      Liam Healy authored
      All the lisp-unit tests defined in the old GSLL have been updated and
      will load by default, with all tests passing on Debian Lenny amd64 and
      GSL 1.11.
      TOTAL: 491 assertions passed, 0 failed, 0 execution errors.
      4e6d5886
    • Liam Healy's avatar
      Replace tests · d0d17af0
      Liam Healy authored
      Several random distribution functions have new tests as the previous
      test results are no longer generated; it is not clear why.  New tests
      for numerical-differentiation based on GSL's own tests in
      deriv/test.c.  Fixed typo in #'integration-workspace-free which caused
      crash.  All uncommented tests now pass.
      TOTAL: 452 assertions passed, 0 failed, 0 execution errors.
      d0d17af0
  5. 15 Sep, 2008 1 commit
    • Liam Healy's avatar
      Restore some tests · fe339ae4
      Liam Healy authored
      Multiple fixes to restore tests: change to #'cl-array from #'data, use
      #'a macro, comment out a few tests do defer repair until later.  Two
      errors in definitions of functions in
      histogram/updating-accessing.lisp fixed.  Some uncommented-out test
      failures remain.
      fe339ae4
  6. 14 Sep, 2008 1 commit
  7. 01 Sep, 2008 1 commit
    • Liam Healy's avatar
      Updated documentation · 8d9ce4e8
      Liam Healy authored
      Updated the documentation to reflect changes in the new branch with
      foreign-friendly arrays.  This is now better reflective or the current
      definitions, but work needs to be done.  Added a dependency that was
      missing: matrix exponential needs special functions to define sf-mode.
      8d9ce4e8
  8. 31 Aug, 2008 4 commits
    • Liam Healy's avatar
      Merge branch 'pre-ffa' · 1decdc13
      Liam Healy authored
      Brought forward commits from the pre-ffa branch that were made after
      the two branches were split.
      1decdc13
    • Liam Healy's avatar
      Port remainder of solve-minimize-fit to ffa · 1082a0f5
      Liam Healy authored
      Tests work and duplicate results from pre-ffa results.  This puts
      completes the initial phase of the ffa port.
      1082a0f5
    • Liam Healy's avatar
      Fix definition of #'euclidean-norm and defmfun :component-float-type · c6fa7363
      Liam Healy authored
      The function #'euclidean-norm (gsl_blas_*_nrm2) takes one vector
      argument, not two, and returns the result as a return from the
      function.  Handling of return declaration :component-float-type for a
      method created with defmfun was wrong, because #'component-type alread
      returns the C type and does not need to be converted with #'cl-ffa.
      c6fa7363
    • Liam Healy's avatar
      Clean up several compilation problems · 134132bc
      Liam Healy authored
      Several bugs with small fixes, modifications to eliminate warnings:
      - Bad names for argument variables in maref fixed.
      - Add depenedencies in gsll.asd to avoid warnings.
      - Histogram needs #'assign-pointer function which was previously
        eliminated.
      - #'scale is a generic function, change defun to defmethod in
        histogram.
      - New #'variables-used-in-c-arguments replaces #'c-arguments in
        defmfun, now is a simplistic code walker but goes to arbitrary
        depth.  This will do for current uses of defmfun.
      - Export and defgenerics for #'alloc, #'free which are used by
        histogram and random.  In gsl-objects.lisp for lack of a better
        place.
      System now completely compiles from scratch with only one warning 
      "Implicitly creating new generic function BIND-GENERATE-BINDINGS."
      which is from metabang-bind.  No new testing.
      134132bc
  9. 29 Aug, 2008 1 commit
    • Liam Healy's avatar
      Complete #'maref and #'cl-array generic functions · 60551931
      Liam Healy authored
      Put maref and cl-array into a new file maref.lisp, each one has three
      methods (gsl-data, CL array, GSL pointer).  The pointer method for
      maref selects over all possible element types.  This compiles but is
      not tested.
      60551931
  10. 24 Aug, 2008 3 commits
    • Liam Healy's avatar
      Method #'cl-array for pointers (gsl-vector-c doubles) · 9bf385d1
      Liam Healy authored
      Define '+foreign-pointer-class+ to be the class name for foreign
      pointers, which will be assumed to be GSL vectors or matrix pointers.
      Use in new method #'cl-array to return a CL array from a pure GSL
      vector double pointer, such as is returned by several functions in
      solve-minimize-fit.
      9bf385d1
    • Liam Healy's avatar
      Deleted histogram read-write · 1243f6e7
      Liam Healy authored
      Any use of foreign read-write is going to require some thought; these
      can be eliminated for now.
      1243f6e7
    • Liam Healy's avatar
      Port to ffa · 217fea01
      Liam Healy authored
      Port new chapters to ffa.  Fix up BLAS.  Compiles; no testing.
      217fea01
  11. 23 Aug, 2008 2 commits
    • Liam Healy's avatar
      Fix histogram etc. missed changes · 533b2126
      Liam Healy authored
      Missed #'mpointer changes and some renames; also change to new args
      for maref.
      533b2126
    • Liam Healy's avatar
      Maref and (setf maref) for GSL vector pointers; optional arguments in :method · 3cf4781e
      Liam Healy authored
      The generic function #'maref will work on foreign pointers and assume
      them to be pointing to either a gsl-vector-c or a gsl-matrix-c,
      depending on how many indices are given.  This then functions like the
      old #'vref and #'mref.  It is used in the new function
      #'make-vector-from-gsl which creates a CL vector (using make-array*)
      which is needed by several functions in solve-minimize-fit.  It is
      also useful in the callbacks a user would define for
      solve-minimize-fit functions.  Similar functionality added to (setf
      aref) which was turned into a generic function.
      
      As part of the changes needed to define these methods, the defmfun
      family was modified to accept optional arguments in
      #'expand-defmfun-method, which is invoked when :definition :method is
      given.  Functions with optional arguments fall into two categories as
      far as defmfun is concerned: those that correspond to multiple GSL
      functions, and those that don't.  This should work in both cases.
      3cf4781e
  12. 22 Aug, 2008 2 commits
  13. 21 Aug, 2008 1 commit
  14. 17 Aug, 2008 7 commits
    • Liam Healy's avatar
      Port mean-variance to ffa. · 23c96074
      Liam Healy authored
      Port mean-variance to ffa.  Compiled; not tested.
      23c96074
    • Liam Healy's avatar
      Introduce #'body-optional-arg and #'body-no-optional-arg · cd52a733
      Liam Healy authored
      Introduce #'body-optional-arg and #'body-no-optional-arg (formerly
      functions and the second specifies whether to map down on the C
      argument list on order to find all variables that are used.  All of
      GSLL compiles.
      cd52a733
    • Liam Healy's avatar
      Merge and clean up the changes to defmfun · e098af31
      Liam Healy authored
      Merge and clean up the changes to defmfun.
      e098af31
    • Liam Healy's avatar
      New function #'complete-definition · dfda5c5b
      Liam Healy authored
      New function #'complete-definition is for putting together an entire
      definition with arglist, declaration, and body, such as defun,
      defmethod, or :method.  The old (misleadingly-named)
      #'expand-defmfun-plain has been removed.  Removed possibility of
      definition &aux variables with :global; it was used only once and
      easily replaced.
      dfda5c5b
    • Liam Healy's avatar
      New function #'expand-defmfun-body · 296feb06
      Liam Healy authored
      Extract new function #'expand-defmfun-body from
      #'expand-defmfun-plain, then define the latter in terms of the former,
      with the idea that it will be easier to define other forms (defmethod,
      :method by calling this new function separately.  GSLL compiles with
      the new function.
      296feb06
    • Liam Healy's avatar
      Histogram enabled ffa · ef8f5ab0
      Liam Healy authored
      Little actual ffa usage, just the port to 'sizet, method and use of
      #'mpointer in the histogram context.  It would be nice to be able to
      adapt defmfun to discriminating between 1d and 2d histograms rather
      than using histo-1d2d, but I will put that off for now.  This compiles
      but is not tested.
      ef8f5ab0
    • Liam Healy's avatar
      Random ported to ffa · 6698e65b
      Liam Healy authored
      The vector usage in random, plus a few sizet types, ported.  Not
      tested.
      6698e65b
  15. 16 Aug, 2008 1 commit
  16. 15 Aug, 2008 1 commit
    • Liam Healy's avatar
      Eigensystems port to ffa · 6f51bb7f
      Liam Healy authored
      Eigenvalues, eigenvectors ported to ffa, using generic functions to
      choose between real symmetrix and complex hermitian matrices.  The
      example has been tried and works.
      6f51bb7f
  17. 13 Aug, 2008 1 commit
    • Liam Healy's avatar
      Tri- and bi-diagonal linear systems ported to ffa · 383cfb06
      Liam Healy authored
      Uses generic functions to cover both symmetric and hermitian solutions
      for the tridiagonal functions that have both.  This necessitated
      modifying #'actual-gsl-function-name to allow explicit listing of the
      GSL functions by element type.
      383cfb06
  18. 12 Aug, 2008 1 commit
  19. 11 Aug, 2008 2 commits
    • Liam Healy's avatar
      QR port to ffa · 3ee9947c
      Liam Healy authored
      Port the QR decomposition to ffa.  Functions return the relevant
      quantity(ies).  Compiles but not tested.
      3ee9947c
    • Liam Healy's avatar
      LU decomposition ported to ffa · aa4aa130
      Liam Healy authored
      LU decomposition functions now support real and complex types, and the
      example has been tested and works:
      (invert-matrix
      	     (make-array* '(2 2) 'double-float :initial-contents '(1.0d0 2.0d0 3.0d0 4.0d0)))
      #2A((-1.9999999999999998d0 1.0d0)
          (1.4999999999999998d0 -0.49999999999999994d0))
      aa4aa130
  20. 10 Aug, 2008 3 commits
    • Liam Healy's avatar
      Exponential of a matrix · 4a3fb0c5
      Liam Healy authored
      Function #'matrix-exponential to compute the exponential of a matrix
      using the methods of Moler & Van Loan.  This function is undocumented
      in GSL but seems to work.
      4a3fb0c5
    • Liam Healy's avatar
      Explicit precision specification modes · 6f90daf7
      Liam Healy authored
      The GSL precision mode used mainly in special functions is now
      explicitly given in the CL argument list; remove special treatment of
      :mode in C argument list of defmfun call, which meddled with the CL
      arglist.  Changed sf-mode options to :double, :single, :approx.
      6f90daf7
    • Liam Healy's avatar
      Port BLAS3 to ffa, with changes to BLAS2 · 2557a24b
      Liam Healy authored
      Port of all BLAS3 to ffa, which also means changing BLAS2 because
      common generic functions are used.  These compile but are not tested,
      and there are no regression tests/examples.
      2557a24b
  21. 09 Aug, 2008 2 commits
  22. 08 Aug, 2008 1 commit
    • Liam Healy's avatar
      Allow optional arguments to generic defmfuns · bc22f75c
      Liam Healy authored
      Optional arguments may be included in generic functions defined
      through defmfun.  If the default values are numerical, they will be
      coerced to the appropriate element type.  Declare ignore unused
      variables.  Use #'arglist-plain-and-categories in
      #'expand-defmfun-plain.
      bc22f75c