Skip to content
Snippets Groups Projects
  1. Dec 21, 2009
    • Liam Healy's avatar
      Define foreign-array as subclass of grid:grid · 0c0834e1
      Liam Healy authored
      Define foreign-array as subclass of grid:grid with access to elements
      through grid:gref.
      0c0834e1
    • Liam Healy's avatar
      Move copy, copy-making-destination to grid · 3680b307
      Liam Healy authored
      Moved the definition of the generic function copy-making-destination
      to copy objects while making a destination object, and the wrapper
      function #'copy for that and copy-to-destination to grid/ and c-array:
      package.
      3680b307
    • Liam Healy's avatar
      Move copy-to-destination to grid · 06f99392
      Liam Healy authored
      The generic function definition for copy-to-destination is now in
      grid/ and the c-array package.  This will make it accessible to
      non-GSLL foreign library interfaces, but the new location is a bit
      deceptive because a new method needn't be a subclass of foreign-array.
      06f99392
    • Liam Healy's avatar
      Moved some maref definitions to grid · f3a45c98
      Liam Healy authored
      Moved the defgeneric and methods for CL arrays and foreign-array for
      cl-array, maref and (setf maref) to a new file
      grid/element-reference.lisp.  The old file data/maref.lisp remains
      with the GSL pointer methods.
      f3a45c98
    • Liam Healy's avatar
      Move foreign-array and foreign-friendly to grid · a9cf4a74
      Liam Healy authored
      Continuing the separation of definitions useful for any libraries
      using C arrays, foreign-array.lisp and foreign-friendly.lisp have been
      moved to the grid subdirectory and placed in the c-array package.
      All tests pass on SBCL 64,
      TOTAL: 1627 assertions passed, 6 failed, 0 execution errors.
      a9cf4a74
    • Liam Healy's avatar
      Move symbol-type and number-conversion to grid · ce261d71
      Liam Healy authored
      Move number-conversion.lisp from init/ to grid/ and symbol-type
      portion of init/interface.lisp to grid/symbol-type.lisp.
      All tests pass
      TOTAL: 1627 assertions passed, 6 failed, 0 execution errors.
      ce261d71
  2. Dec 08, 2009
    • Liam Healy's avatar
      Moved element-types.lisp from init to grid · 2317ccf0
      Liam Healy authored
      Continued separation of GSLL into two packages and eventually systems,
      the definitions in element-types.lisp are now in the c-array package.
      2317ccf0
    • 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
  3. Nov 30, 2009
  4. Nov 18, 2009
  5. Nov 16, 2009
  6. Nov 14, 2009
  7. Nov 13, 2009
  8. Nov 07, 2009
  9. Nov 01, 2009
    • 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.
      9d22c860
  10. Oct 25, 2009
    • 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.
      68d8dee7
  11. Oct 18, 2009
    • 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.
      5a5906dd
  12. Aug 26, 2009
    • 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
      :ri-c-return.
      8555fb6a
  13. Aug 24, 2009
    • 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.
      9990ee06
  14. Aug 23, 2009
    • Liam Healy's avatar
      Handle cflags in the grovel file · 6f287646
      Liam Healy authored
      Handle conditional cflags in the grovel file instead of modifying the
      cffi-grovel::*cc-flags* variable.  Also use strings for depends-on
      in asdf file.
      6f287646
  15. Aug 22, 2009
  16. Jun 16, 2009
    • Liam Healy's avatar
      Constants defined for conditions with eval-when · 5ef7b269
      Liam Healy authored
      The constants used for GSL conditions (+EDOM+ etc.) are defined inside
      an eval-when so that implementations like CLISP that don't evaluate at
      compile time will still be able to use the constants in the following
      parts of the file.  This now compiles in CLISP (as well as SBCL and
      CCL).
      5ef7b269
  17. Jun 10, 2009
  18. Jun 06, 2009
    • Liam Healy's avatar
      Define C structures using CFFI-grovel · 8c0e6eb7
      Liam Healy authored
      Almost all GSL structures are now defined using CFFI-grovel, which
      makes the code more robust should there be changes in GSL.  The
      exceptions are complex-float-c, complex-double-c, and
      simulated-annealing-parameters; because these structures are used by
      value, they need to be defined with fsbv:defcstruct at the present.
      8c0e6eb7
  19. Jun 05, 2009
    • 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. May 25, 2009
    • 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
    • Liam Healy's avatar
      Generic function #'size · 453f3364
      Liam Healy authored
      A new generic function #'size replaces the old ordinary functions
      #'size (for Chebyshev) and #'combination-size, #'permutation-size,
      #'rng-size, and #'mfminimizer-size.
      453f3364
    • Liam Healy's avatar
      Random number distribution functions are methods of #'sample · 09648af2
      Liam Healy authored
      The random number distribution functions have been made methods of
      #'sample, with 'source being the generator.
      09648af2
  21. May 08, 2009
  22. May 04, 2009
  23. May 03, 2009
    • Liam Healy's avatar
      Complex functions · 149844bb
      Liam Healy authored
      Additional definition of functions of complex numbers and/or returning
      complex numbers.  Most of these duplicate functions that Lisp has
      already, so everything is defined with a "cx-" prefix.  No effort has
      been made to unify the interface; this requires some thought.  A fix
      has been made to body-expand; previously, it would not properly
      compile a function that returned a structure by value but didn't have
      structures by value as arguments.
      149844bb
    • 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
    • Liam Healy's avatar
      Call GSL functions with complex scalars · 0ca58836
      Liam Healy authored
      With improved fsbv:foreign-funcall that does the conversion of values
      between Lisp and C, the function foreign-funcall-indirect has been
      eliminated in favor of using fsbv:foreign-funcall directly.  Spot
      checks on various functions that use complex scalars like #'evaluate
      polynomials at a complex point, or set-all on complex marrays, or the
      functions in complex.lisp, show that these all work.  Everything
      compiles/loads and the usual tests pass in SBCL.
      0ca58836
  24. Apr 30, 2009
    • 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
  25. Apr 28, 2009
  26. Apr 27, 2009
    • 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
  27. Apr 26, 2009
    • Liam Healy's avatar
      Use fsbv:defcstruct for complex, type spec (:pointer type) · 0b3847ba
      Liam Healy authored
      Define complex-float-c and complex-double-c using fsbv:defcstruct so
      that they can be passed by value.  A type specification of the form
      (:pointer type) is accepted for allocated objects passed by reference
      to foreign functions so that their values can be set and returned from
      the CL function.  This expands correctly for #'minmax, not tested
      yet.
      0b3847ba
  28. Apr 20, 2009
    • Liam Healy's avatar
      Use fsbv:with-foreign-objects in body-expand · 8dea4bbc
      Liam Healy authored
      The setting of foreign structures will now be handled by
      fsbv:with-foreign-objects for a suitably defined fsbv:defcstruct. 
      The new definitions are loaded but GSLL will not compile completely.
      8dea4bbc
Loading