Skip to content
Snippets Groups Projects
  1. 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
  2. Nov 30, 2009
  3. Nov 18, 2009
  4. Nov 16, 2009
  5. Nov 14, 2009
  6. Nov 13, 2009
  7. Nov 07, 2009
  8. 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
  9. 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
  10. 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
  11. 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
  12. 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
  13. 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
  14. Aug 22, 2009
  15. 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
  16. Jun 10, 2009
  17. 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
  18. 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
  19. 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
  20. May 08, 2009
  21. May 04, 2009
  22. 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
  23. 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
  24. Apr 28, 2009
  25. 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
  26. 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
  27. 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
  28. Apr 16, 2009
    • Liam Healy's avatar
      New macro foreign-funcall-indirect · bdaaaeb2
      Liam Healy authored
      Move body-expand and the supporting cast to a new file
      body-expand.lisp, and introduce foreign-funcall-indirect which will
      use with-foreign-objects to allocate all arguments at additional level
      of indirection and make the appropriate assignments.  This appears to
      expand correctly except for values that are not symbols,
      e.g. (mpointer object) used in set-all.  I will need a new syntax for
      specifying structures that are passed by pointer but which need to
      have the structure type stated, e.g. solve-cubic-complex, because for
      now it defmfun will expand into the foreign-funcall-indirect.
      bdaaaeb2
  29. Apr 12, 2009
    • Liam Healy's avatar
      Use FSBV; complex-types.lisp work · bf7b9bc7
      Liam Healy authored
      Use Foreign Structures By Value (FSBV) to handle passing and returning
      complex scalars defined by one of the GSL structs.  This works
      correctly for the four functions in complex.lisp, but there is
      compiler error in SBCL on set-all: "cannot use values types here",
      though the expansion looks correct.  Does not work on
      solve-quadratic-complex and solve-cubic-complex in polynomial.lisp
      because defmfun takes the structure type specified and converts it to
      :pointer automatically.  Not tried on functions that return complex
      scalars yet.
      bf7b9bc7
  30. Apr 05, 2009
    • Liam Healy's avatar
      Standardized names of GSL function structs · eb1420b4
      Liam Healy authored
      All defcstruct definitions for functions are in the new file
      init/callback-struct.lisp.  They all have standard name format
      beginning with "fnstruct" and have been consolidated where there were
      redundant definitions.
      eb1420b4
    • Liam Healy's avatar
      Internal variable rename 'cbinfo · 3987beef
      Liam Healy authored
      Internally call the :callbacks argument to defmobject or defmfun
      'cbinfo, to better distinguish it in the source code.  In numerical
      integration example functions, apply #'realpart, because
      implementations are permitted to return complex numbers from #'expt
      when the second argument is a float.
      3987beef
  31. Apr 04, 2009
    • Liam Healy's avatar
      Added integration methods QAWS, QAWO, QAWF; new tests for numerical integration · 2217c408
      Liam Healy authored
      Integration methods 
      integration-QAWS: adaptive integration for singular functions
      integration-QAWO: adaptive integration for oscillatory functions
      integration-QAWF: adaptive integration for Fourier integrals
      have been added in a file numerical-integration-with-tables.lisp.
      These require tables with are new mobjects.  All of the tests from GSL
      in gsl-1.11/integration/test.c and gsl-1.11/integration/tests.c for
      ported functions are now in either this file or
      numerical-integration.lisp. 
      SBCL 64: TOTAL: 1522 assertions passed, 5 failed, 0 execution errors.
      CCL 64:  TOTAL: 1525 assertions passed, 2 failed, 0 execution errors.
      2217c408
    • Liam Healy's avatar
      Eliminated dependency on cl-utilities; error for obsolete defmpar · 45ca8e88
      Liam Healy authored
      The defmobject argument 'class-slots-instance is no longer used, so
      #'callback-arg-p and the only use of with-unique-names can be
      eliminated, and thus the dependency on cl-utilities.
      
      Constant GSL functions in the library (such as minimizers) which
      were introduced in a GSL version newer than loaded now expand as
      symbol macros which signal the 'obsolete-gsl-version error.
      45ca8e88
Loading