1. 28 Dec, 2008 1 commit
  2. 27 Dec, 2008 3 commits
    • Liam Healy's avatar
      Updated tests; all pass · 64fea6a9
      Liam Healy authored
      Fixes to some definitions 
      lognormal, discrete: use #'mpointer
      lu: new syntax for making array
      quasi: order of arguments fixed in make-quasi-random-number-generator
      sorting: syntax to make combination
      All tests have been regenerated because syntax for arrays etc. has
      changed.  Visually inspected that results match previous check in.
      64fea6a9
    • Liam Healy's avatar
      New function #'mpointer replaces #'generator · e88a5593
      Liam Healy authored
      New function #'mpointer replaces #'generator for random functions.
      e88a5593
    • Liam Healy's avatar
      Set mpointer vlaue, show relevant .h file; non-int return for reinitialize-instance · 8a0ac730
      Liam Healy authored
      In defmobject, set the mpointer value if #'allocate is being called.
      For each file that defines a defmobject, I put a comment at the top
      showing the relevant GSL header file.  For generators and quasi, the
      (re)initializing function returns void and not an :int, so that is
      changed in the defmobject definition, which now permits a list of two
      elements in initialize-suffix, with the second element indicating the
      :c-return.
      8a0ac730
  3. 26 Dec, 2008 4 commits
    • Liam Healy's avatar
      Calling mobjects with #'mpointer, generic function #'name · 297c08b2
      Liam Healy authored
      GSL functions that take GSL objects as arguments must have #'mpointer
      called on each argument.  Created a generic function #'name and
      changed all the *-name (or name-*) functions that acted on mobjects to
      this function.
      297c08b2
    • Liam Healy's avatar
      Full use of defmobject; elimination of letm · b09dc9d2
      Liam Healy authored
      All GSL objects are full CL objects with garbage collection.  There is
      no need to manually free the associated memory.  All objects may be
      assigned in the normal CL way, e.g. let, so there is not #'letm macro
      anymore.  Everything compiles cleanly in gsll, but nothing has been
      tested.
      b09dc9d2
    • Liam Healy's avatar
      New class foreign-array, new names: marray, make-marray, mobject.lisp · 7c66d57b
      Liam Healy authored
      New class foreign-array represents foreign (C) arrays, without GSL or
      mobject superclass.  New class name 'marray was 'gsl-data,
      representing arrays in GSL.  These objects are made by #'make-marray,
      formerely #'make-array*.  New file names: init/mobject.lisp was
      init/gsl-objects.lisp and data/marray.lisp was data/data.lisp.
      7c66d57b
    • Liam Healy's avatar
      Permit alternate origin of mpointer; #'clone · 38d9c4f4
      Liam Healy authored
      Redesign #'defmobject so that a new method #'allocate is defined that
      calls the standard GSL allocate function for each object.  Shrink the
      initialize-instance :after method to call #'allocate if the mpointer
      isn't given, and then set the finalizer.  This way, an :mpointer made
      by something other than the allocate function may be supplied to the
      make-instance, and the object will be made correctly.  This is used by
      #'clone functions in histogram and random number generators.  Not
      compiled or tested, but macroexpansions look right.
      38d9c4f4
  4. 25 Dec, 2008 1 commit
  5. 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
  6. 22 Dec, 2008 2 commits
    • Liam Healy's avatar
      Merge from master · d310adfd
      Liam Healy authored
      Merged in minor changes from master.
      d310adfd
    • Liam Healy's avatar
      New class mobject, new hierarchy, clean up files · 9b588763
      Liam Healy authored
      Redefine 'mobject from 'gsl-object.  The class 'gsl-data in data.lisp
      is now a subclass of it, and does not explicitly have the mpointer
      slot, because mobject does.  Adapted #'defmobject to work with objects
      that have no "setter" (initialization).  This expands correctly for
      basis-splines (no setter) and hankel (setter).  The basis-splines
      defintions rely on the new mobjects.
      9b588763
  7. 16 Dec, 2008 1 commit
  8. 15 Dec, 2008 2 commits
    • Liam Healy's avatar
      Prototype defmobject · ed5ce113
      Liam Healy authored
      In gsl-objects, define a prototype defmobject which defines:
       - the class for the gsl object
       - initialize-instance :after method to correspond to GSL
        "alloc" and attach the finalizer,
       - define reinitialize-instance :after method to correspond to a setter
        or intialize in GSL,
       - define a make-<class-name> function that will be the customary user
        interface, and will call make-instance and possibly
        reinitialize-instance if defined.
      Worked up example in hankel.lisp.  This compiles successfully and
      looks correct, but has not been tested.
      ed5ce113
    • Liam Healy's avatar
      d207414c
  9. 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
  10. 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
  11. 01 Dec, 2008 1 commit
    • Liam Healy's avatar
      GSL array making with make-array* and #m · 83cd8040
      Liam Healy authored
      GSL arrays are garbage-collected objects, and so can be made like any
      other lisp object; they do not need to be make inside a wrapper form.
      #m is a macro which makes them; it expands to a #'make-array* call.
      Examples and usage ported to this new form.  Compiled only; not tested
      yet.  No effort to port to non-native implementation yet; tests as
      expanded in the tests/ directory are not ported yet.
      83cd8040
  12. 29 Nov, 2008 2 commits
  13. 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
  14. 17 Nov, 2008 1 commit
    • Liam Healy's avatar
      Analysis of port progress; improve documentation · ebf82b24
      Liam Healy authored
      Started in file init/analysis.lisp some definitions that will aid in
      gauging how much of GSL GSLL covers.  It will not normally be loaded
      (and depends on port system which is not required for GSLL) because it
      is mainly used by developers.  It is not yet finished.  Hash size for
      *gsl-symbol-equivalence* increased to reflect actual number of symbols
      present when GSLL is loaded.  Improved documentation.
      ebf82b24
  15. 16 Nov, 2008 3 commits
    • Liam Healy's avatar
      Renamed conditions to more lisp-like names · 4f2c390f
      Liam Healy authored
      Renamed conditions in init/conditions.lisp and elsewhere to be more
      lisp like; e.g. EDOM is not 'input-domain.  All tests except one pass.
      4f2c390f
    • Liam Healy's avatar
      Tests in separate system gsll-tests · f42d6f00
      Liam Healy authored
      Tests are now separated from examples and defined in a new system
      gsll-tests.  Change name of condition 'input-error from 'EDOM.
      f42d6f00
    • Liam Healy's avatar
      Removed dependence on FFA and iterate · c561b4d5
      Liam Healy authored
      By incorporating a few definitions modified from Tamas Papp's FFA
      directly into GSLL, there is no dependence anymore on FFA separately.
      With the conversion of a few definitions, the dependency on iterate
      has therefore been eliminated also.  This compiles without errors or
      warnings on SBCL.
      c561b4d5
  16. 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
  17. 09 Nov, 2008 3 commits
    • Liam Healy's avatar
      BLAS1 tests · 4c095d18
      Liam Healy authored
      Defined a complete set of BLAS1 tests for all element types.  The
      duplicate Givens function and the "modified" Givens rotations, which
      are not explained in the GSL documentation, are excluded.
      4c095d18
    • 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
  18. 02 Nov, 2008 2 commits
    • Liam Healy's avatar
      #'array-default makes both vectors and matrices; pool numbers with correct type · f8adee82
      Liam Healy authored
      For testing, both vectors and matrices can be made with
      #'array-default, replacing #'vector-default.  The numbers in
      *double-float-pool* in are now double floats (with d0), and the
      #'make-list-from-pool coerces to the right type.  In both.lisp,
      #'set-value and #'get-value are for vectors only, not both, because
      matrices require an extra index argument.  Since these functions are
      for debugging only as the comment says, I'm writing equivalent matrix
      functions, and I'm not doing tests for them.
      f8adee82
    • Liam Healy's avatar
      Complex arrays initialize correctly; pool data 8-bit correct; new array tests · 8f43fe94
      Liam Healy authored
      Complex arrays can be initialized with either reals or complexes.  If
      initialized with reals, there must be an even number.  Now created
      complex arrays are the right length and are not always zero in the
      imaginary part.  Pool data supplied in *signed-byte-pool* is between
      ±127 inclusive, instead of ±255, which is required for making
      (signed-byte 8).  Added some tests from functions in both.lisp to
      generate-tests.lisp.
      8f43fe94
  19. 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
  20. 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
  21. 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
  22. 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
  23. 14 Sep, 2008 1 commit
  24. 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
  25. 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
  26. 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