1. 28 Dec, 2008 1 commit
  2. 24 Dec, 2008 1 commit
    • Liam Healy's avatar
      GSL object makers with mixed arguments · adbbbbcd
      Liam Healy authored
      GSL objects made with defmobject and that have use at least one
      argument in some way for both initialization and reinitialization, or
      for using functions of those arguments, are accomodated with an
      optional argument 'arglists-function to defmobject.  This should be a
      function that produces three arglists: for the maker, the
      initialization method, and the reinitialization method.  The order of
      arguments generated for other cases is now preserved with :from-end in
      #'variables-used-in-c-arguments.  Examples for interpolation and
      acceleration (lookup), still commented out.
      adbbbbcd
  3. 15 Dec, 2008 1 commit
  4. 14 Dec, 2008 1 commit
    • Liam Healy's avatar
      Changes to defmfun to permit method qualifiers and &key arguments · 92b0b413
      Liam Healy authored
      Add :qualifier argument to defmfun, used when methods are defined to
      allow qualifiers such as :after or :before.  Permit &key arguments.
      Check the :after argument to defmfun for usage of argument variables
      to prevent them from being declared ignored.  Note:  This uses
      stupid-code-walk-find-variables, and is, well, stupid.  These changes
      are all designed to permit the definition of #'initialize-instance and
      #'reinitialize-instance methods for GSL objects.
      92b0b413
  5. 08 Dec, 2008 1 commit
    • Liam Healy's avatar
      Array input and output declarations · 1a2ebe96
      Liam Healy authored
      A somewhat comprhensive attempt to make sure :inputs, :outputs, and
      :return arguments in defmfuns match what the function is expecting and
      will return, so that non-native implementations will work correctly
      for copying, and native ones will work correctly for pinning.  The
      :return argument now defaults to :outputs in most circumstances.
      1a2ebe96
  6. 29 Nov, 2008 2 commits
  7. 28 Nov, 2008 1 commit
    • Liam Healy's avatar
      Native arrays do not need wrapper · 9b1ed35d
      Liam Healy authored
      Native arrays are now completely dynamic, i.e., they are garbarge
      collected and there is no need for any kind of wrapper, because the
      with-pinned-objects is wrapped at the defmfun level.  Most tests pass
      on SBCL, but there are still a number that fail.  The GSL parts are
      always present; there is potentially unnecessary allocation of all
      GSL-required structs at creation time, which might merit some
      investigation for a more just-in-time creation procedure.  Potential
      problems on non-native implementations completely uninvestigated.
      9b1ed35d
  8. 16 Nov, 2008 1 commit
  9. 12 Nov, 2008 1 commit
    • Liam Healy's avatar
      New function #'cl-cffi renamed from #'cl-ffa · d9e5bb32
      Liam Healy authored
      To make terminology consistent, the "C standard" form of type, also
      what I call "CFFI" form, is called that instead of "FFA" in some
      places.  Specifically, #'cl-cffi is renamed from #'cl-ffa and now the
      name matches the already-existing #'cffi-cl.
      d9e5bb32
  10. 09 Nov, 2008 2 commits
    • Liam Healy's avatar
      Mean and variance for all arrays · 370307e4
      Liam Healy authored
      Define mean and variance functions for matrices as well as vectors.
      This required a modification to #'expand-defmfun-generic and to
      #'actual-array-c-type to permit the use of "both" when there is an
      optional argument, and thus two C argument lists.  Defined tests for
      all unweighted functions and element types.  Because there appears to
      be a bug in the GSL library in computing single floats, no tests have
      yet been defined for these functions.
      370307e4
    • Liam Healy's avatar
      Complete "both" array tests · 32b971a4
      Liam Healy authored
      Complete set of tests on array operations that are defined for both
      vectors and matrices.  Added documentation to generate-tests to
      explain how it works and why it's there.  Fixed bug in
      #'expand-defmfun-generic that occured when both arrays are generated,
      due to key-args being altered.
      32b971a4
  11. 14 Sep, 2008 1 commit
  12. 31 Aug, 2008 2 commits
    • 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
  13. 23 Aug, 2008 1 commit
    • 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
  14. 21 Aug, 2008 1 commit
  15. 17 Aug, 2008 4 commits
    • 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
  16. 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
  17. 11 Aug, 2008 1 commit
    • 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
  18. 10 Aug, 2008 1 commit
    • 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
  19. 09 Aug, 2008 2 commits
  20. 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
  21. 04 Aug, 2008 1 commit
    • Liam Healy's avatar
      BLAS1 completed (untested) · acdc5d17
      Liam Healy authored
      Change the generic specializer for scalars to :element-type (from
      :element-c-type), and restore BLAS1 to gsll.asd.
      acdc5d17
  22. 02 Aug, 2008 1 commit
    • Liam Healy's avatar
      BLAS1 function #'scale with real or complex scalar · d5c1871f
      Liam Healy authored
      There are two BLAS1 functions "gsl_blas_csscal" and "gsl_blas_zdscal"
      that scale complex vectors with a real scalar alpha.  In order to
      distinguish a call to #'scale between these and the equivalent
      functions gsl_blas_cscal and gsl_blas_zscal that take complex scalars,
      it is necessary to specialize on the scalar class (float or complex).
      Modified defmfun so that the pseudo-classes :component-float-type and
      :element-c-type are recognized and the appropriate substitution is
      made.  Compiled without errors or warnings but not tested.
      d5c1871f
  23. 25 Jul, 2008 10 commits