1. 07 Jul, 2010 3 commits
  2. 01 Jul, 2010 1 commit
  3. 30 Jun, 2010 2 commits
  4. 27 Jun, 2010 1 commit
  5. 05 Feb, 2010 2 commits
  6. 19 Jan, 2010 2 commits
  7. 28 Dec, 2009 1 commit
  8. 27 Dec, 2009 1 commit
  9. 26 Dec, 2009 1 commit
    • Liam Healy's avatar
      Be strict on initial marray values; default marrays · 2a6a743f
      Liam Healy authored
      Removed some marrays marked as :input when their values were not used.
      This failed in CCL because the arrays in those cases were created with
      no initial values, and no values were set, so that they were marked
      cl-invalid.  Created #'make-marray-or-default to facilitate defaulting
      of marrays in defmfun, and marking validity appropriately.
      Test results:
      SBCL 64:
      TOTAL: 1627 assertions passed, 6 failed, 0 execution errors.
      CCL 64:
      TOTAL: 1620 assertions passed, 13 failed, 0 execution errors.
      2a6a743f
  10. 23 Dec, 2009 1 commit
    • Liam Healy's avatar
      Replace create-matrix and constant-matrix using grid functions · e48ba0cb
      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.
      e48ba0cb
  11. 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
  12. 14 Nov, 2009 1 commit
  13. 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.
      33d52a9f
  14. 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.
      a42b3a3a
    • 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.
      bcb8e0b5
  15. 25 Sep, 2009 1 commit
  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
      matrix-generation.lisp.
      44b9d868
  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.
      75f04669
    • 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.
      72eaac6d
  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.
      03ad93e0
  19. 05 Jun, 2009 1 commit
    • Liam Healy's avatar
      Reader macro #m evaluates arguments · 70bd2986
      Liam Healy authored
      The reader macro #m now evaluates its arguments, so creating a vector
      with e.g. #m(pi (sqrt 3) (cos (/ pi 4))) is now possible.  Matrices
      are specified by using ^ in the list to separate rows.  GSLL now
      requires cl-utilities once again.
      70bd2986
  20. 25 May, 2009 1 commit
    • Liam Healy's avatar
      Use CFFI-grovel to define enumerations and programming constants · 5b255beb
      Liam Healy authored
      Instead of hardwiring GSL's #define or enum values, define them in
      init/libgsl-unix.lisp and run CFFI-grovel on them.  This has the
      advantage that if these values change in GSL, GSLL will automatically
      get the new values; also, there was an error in the 'integrate-method
      enum due to an incorrect starting value.  It has the disadvantage that
      building GSLL now requires a C compiler and some of the header (.h)
      files for GSL.  Also, it's not clear what the form for libgsl-*.lisp
      files are for non-unix OSes.
      5b255beb
  21. 06 May, 2009 1 commit
  22. 03 May, 2009 2 commits
    • Liam Healy's avatar
      Define fsbv:defcfun for efficiency · 8d2ef1de
      Liam Healy authored
      For FSBV calls, define fsbv:defcfun in the defmfun expansion, then in
      the fsbv:foreign-funcall, refer to the symbol function name rather
      than string function name.  This tells FSBV to use the prepared
      closure associated with that function by the fsbv:defcfun, meaning
      that the definitions in that lexical environment are reused.
      
      Fix conditionalization for #'conjugate-rank-1-update in blas2.lisp.
      
      Test results:
      SBCL 64 #+fsbv
      TOTAL: 1522 assertions passed, 5 failed, 0 execution errors.
      CCL 64 #+fsbv
      TOTAL: 1522 assertions passed, 5 failed, 0 execution errors.
      SBCL 64 #-fsbv
      TOTAL: 1502 assertions passed, 5 failed, 0 execution errors.
      CCL 64 #-fsbv
      TOTAL: 1502 assertions passed, 5 failed, 0 execution errors.
      8d2ef1de
    • Liam Healy's avatar
      Conditionalize FSBV · 8a08f552
      Liam Healy authored
      All source code is now conditionalized so that FSBV is optional.  If
      present, functions using complex scalars will work.  If absent, GSLL
      will compile and load correctly, and all functions except those using
      complex scalars will work.  The examples and tests are defined
      appropriately.  Documentation on FSBV dependence has been added to
      index.html.
      8a08f552
  23. 30 Apr, 2009 1 commit
    • Liam Healy's avatar
      Use FSBV for functions taking complex scalars · 913040d8
      Liam Healy authored
      The BLAS matrix-product functions now work on complex arrays using
      FSBV, but there are no tests yet.  New tests vector-set-all and
      matrix-set-all replace set-all tests with addition, and work for all
      types including complex using FSBV.  Default optional argument marrays
      are initialized to 0.  Polynomial evaluation with complex argument
      uncommented, but not yet working.
      913040d8
  24. 28 Apr, 2009 1 commit
  25. 27 Apr, 2009 1 commit
    • Liam Healy's avatar
      Redeclare foreign-allocated variables called by reference · 9848c6ad
      Liam Healy authored
      Variables called using with-foreign-objects that are passed to GSL for
      the purposes of returning computed values (i.e., are not mentioned in
      the CL arglist) need to be declared (:pointer type) because they are
      calls by reference.  Everything now compiles though there are
      execution errors in the tests.
      9848c6ad
  26. 18 Mar, 2009 1 commit
    • Liam Healy's avatar
      LU remultiplication with permutation; unify permutation functions · b7074c43
      Liam Healy authored
      The LU remultiplication tests now permute the answer at the end so
      that it ends up with the original vector with the elements in the
      original order.  The permutation functions #'permute and
      #'permute-inverse now include all arguments, including marrays and
      pointers to C arrays.  Formerely, there were separate functions
      #'permute-vector and #'permute-vector-inverse.
      SBCL64: TOTAL: 1451 assertions passed, 5 failed, 0 execution errors.
      CCL64:  TOTAL: 1452 assertions passed, 4 failed, 0 execution errors.
      b7074c43
  27. 15 Mar, 2009 1 commit
    • Liam Healy's avatar
      Non-square matrix multiplication; marking cl-invalid · b009f3e6
      Liam Healy authored
      Fixed a problem in #'matrix-product-dimensions reported by 
      Norman Werner that prevented taking the product of non-square
      matrices, and added a test to check for the multiplication for all
      four element types supported.  This revealed a problem in non-native
      marray initialization (found in CCL) which has been fixed by marking
      foreign-arrays :cl-invalid when neither :initial-contents nor
      :initial-element have been specified.
      SBCL 64: TOTAL: 1449 assertions passed, 7 failed, 0 execution errors.
      CCL64: TOTAL: 1450 assertions passed, 6 failed, 0 execution errors.
      b009f3e6
  28. 24 Feb, 2009 1 commit
    • Liam Healy's avatar
      Optional arguments for linear algebra functions; unification of solve and svx · fa1dbfc1
      Liam Healy authored
      Most linear algebra functions now have optional arguments which create
      workspace and answer arrays.  All solver function that have _solve
      (separate solution vector) and _svx (solve in-place) forms have been
      unified into a single CL function.  In qrpt functoins where signum is
      computed, it is no longer taken as input but allocated internally and
      return as one of the multiple values.  This necessitated a change in
      body-expand that will now apply the cl-convert-form conversion to
      returned variables that are part of a multiple value list for
      :return.
      fa1dbfc1
  29. 23 Feb, 2009 1 commit
    • Liam Healy's avatar
      Default values for LU functions; added test · c04147d7
      Liam Healy authored
      LU-solve and LU-decomposition now have optional arguments.  For
      LU-solve, the choice of whether to solve in-place or in a new vector
      depends on how this last argument is specified.  Because of the
      different call paths, it is possible that x is a vector or nil.  If it
      is a vector, it will change after the foreign call, which means it
      needs to be added to :outputs.  In order to prevent an error from the
      call to (setf cl-invalid) and (setf c-invalid) when x is nil, these
      two functions have been defined for class T to do nothing but return
      the value.  Also, copy-c-to-cl and copy-cl-to-c check whether the
      argument is a mobject, though this change isn't needed.  
      
      There are two additional tests in 'lu that do a solve and then
      remultiply the results with matrix-product-triangular.  In both SBCL
      and CCL, the answer comes out reversed.  When multiplied by
      matrix-product, it is correct.
      c04147d7
  30. 18 Feb, 2009 1 commit
    • Liam Healy's avatar
      GSL features added in version 1.11; cholesky-solve and linear fit unification · cb88b8db
      Liam Healy authored
      Added +halton+, +reverse-halton+ to random/quasi.lisp. 
      
      Added #'multi-linear-residuals in
      solve-minimize-fit/linear-least-squares.lisp.  Changed +sobol+,
      +niederreiter2+ from *..* apparently overlooked before.
      
      #'cholesky-solve now written so that if x-spec = T, a marray is
      created and the solution put in it and returned.  If it is NIL, the
      solution will replace b.  This required a modification to
      expand-defmfun-generic to remove &aux args from the defgeneric
      arglist.
      
      solve-minimize-fit/linear-least-squares.lisp
      Specify the weight as an optional argument, unifying the weighted and
      unweighted functions:
      linear-fit, multiplier-fit, linear-mfit, linear-mfit-svd.
      This necessitated a change in the order of the arguments.
      Changed call in basis-splines.lisp.
      cb88b8db
  31. 17 Feb, 2009 1 commit
    • Liam Healy's avatar
      GSL features added in version 1.10 · 94413b43
      Liam Healy authored
      Functions added to GSL with version 1.10, and related changes: 
      - Cholesky routines for complex matrices; Cholesky functions _solve and
      _svx (solution separate and in-place) now combined into a single
      generic function with an optional argument #'cholesky-solve.
      Unfortunately a default marray maker can't be included in the optional
      argument.
       - Correlation added, and covariance and correlation tests expanded to
      all supported matrix element types.
       - Added #'exponential-integral-En for nth-order exponential integral.
       - Also rewrote #'callback-set-slots and #'body-expand to eliminate
      gratuitous (progn nil ...) in some defmfun expansions.
      Test results:
      SBCL 64: TOTAL: 1379 assertions passed, 5 failed, 0 execution errors.
      CCL 64: TOTAL: 1380 assertions passed, 4 failed, 0 execution errors.
      94413b43
  32. 16 Jan, 2009 1 commit
    • Liam Healy's avatar
      New directory "calculus" and small changes · 65a33d3e
      Liam Healy authored
      New directory "calculus" to hold numerical-differentiation,
      numerical-integeration, and monte-carlo.  Converted some return array
      arguments in BLAS to optional arguments.  Define a condition
      'obsolete-gsl-version to use in #'complete-definition.  Try to
      incorporate cygwin into init.lisp; needs testing by a cygwin user.
      65a33d3e