1. 15 Jun, 2016 1 commit
  2. 12 Jun, 2016 1 commit
    • Add Monte Carlo parameter setting · bcde4754
      With GSL 1.13, the GSL API defines a way to set the parameters for the
      MISER and VEGAS Monte Carlo methods. This commit defines two generic
      functions, #'parameter and #'(setf parameter), to get and set the
      parameters, respectively.  It loads but has not been tested.
      The previous way of setting the parameters, with macros
      > #'miser-parameter and #'vegas-parameter, are conditional to
      > #+obsolete-gsl and so do not normally load.
      Liam M. Healy authored
  3. 23 Jan, 2015 1 commit
  4. 22 Jan, 2015 1 commit
    • Make callbacks reentrant · 9c043926
      Rebind callback dynamic variables upon entry into the callback function.
      With this fix callbacks can be called recursively.
      Eugene Zhemchugov authored
  5. 13 Jan, 2012 1 commit
  6. 30 Oct, 2011 1 commit
  7. 17 Aug, 2011 1 commit
  8. 10 Jan, 2011 1 commit
  9. 08 Aug, 2010 1 commit
    • Replace 'pi with 'dpi, the double-float version · 7aa0111c
      The standard declares that 'pi is an implementation-dependent
      long-float, but GSL requires double float, so the constant 'dpi has
      been defined as (coerce pi 'double-float).  This should make CLISP at
      the least happier.
      Liam Healy authored
  10. 07 Jul, 2010 2 commits
    • Use grid:copy-to instead of cl-array · 2597eaec
      Do not use cl-array in tests because it isn't always available.  The
      safer way is by doing a copy out to a new CL array.
      Liam M. Healy authored
    • Add :grid-type keyword to copy function call · 46532b12
      The generic function #'copy now needs a keyword argument for the
      destination :grid-type.  Eliminate unnecessary copy tests; these are
      better tested in grid as they didn't use any GSL functions.
      Liam Healy authored
  11. 30 Jun, 2010 1 commit
  12. 27 Jun, 2010 1 commit
  13. 23 May, 2010 1 commit
    • Simplified paths to the foreign libraries; use gsl-config for header · 610e8dc2
      The paths to the foreign libraries have been simplified, making use of
      CFFI's statement "Most, if not all, Lisps supported by CFFI have a
      reasonable default search algorithm for foreign libraries."
      Therefore, the paths have been eliminated.  If they need to be added,
      this should be done by modifying the variable
      cffi:*foreign-library-directories*.  The header files location set
      with cc-flags for Darwin has been changed to use (gsl-config "--cflags").
      Liam Healy authored
  14. 27 Dec, 2009 1 commit
  15. 23 Aug, 2009 1 commit
    • Handle cflags in the grovel file · 6f287646
      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.
      Liam Healy authored
  16. 06 Jun, 2009 1 commit
    • Define C structures using CFFI-grovel · 8c0e6eb7
      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.
      Liam Healy authored
  17. 25 May, 2009 1 commit
    • Use CFFI-grovel to define enumerations and programming constants · 5b255beb
      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.
      Liam Healy authored
  18. 27 Apr, 2009 1 commit
    • Redeclare foreign-allocated variables called by reference · 9848c6ad
      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.
      Liam Healy authored
  19. 05 Apr, 2009 2 commits
    • Standardized names of GSL function structs · eb1420b4
      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.
      Liam Healy authored
    • Internal variable rename 'cbinfo · 3987beef
      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.
      Liam Healy authored
  20. 04 Apr, 2009 1 commit
    • Added integration methods QAWS, QAWO, QAWF; new tests for numerical integration · 2217c408
      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
      SBCL 64: TOTAL: 1522 assertions passed, 5 failed, 0 execution errors.
      CCL 64:  TOTAL: 1525 assertions passed, 2 failed, 0 execution errors.
      Liam Healy authored
  21. 02 Apr, 2009 1 commit
    • Monte Carlo has more optional arguments · c0c80c3d
      Arguments now optional to make-monte-carlo-plain: 
             (* *monte-carlo-default-samples-per-dimension*
      	  (dim0 lower-limits)))
      (generator (make-random-number-generator +mt19937+ 0))
      (state (make-monte-carlo-plain (dim0 lower-limits)))
      (scalars t)
      and similarly for -vegas, -miser.  Argument 'number-of-samples renamed
      from 'calls to clarify.
      Liam Healy authored
  22. 01 Apr, 2009 1 commit
    • Pure defmfun callbacks dynamically specified fully functional · 42e2d608
      Redefine the form of :callback-dynamic to be
      (dimensions (function scalarsp) ...)
      and usage in numerical-differentiation, numerical-integration, and
      monte-carlo.  Parse this variable in callbacks.lisp with #'cbd-dimensions
      and #'cbd-functions.  Fix error in wfo-declare which had gsl-function
      hardwired.  If manually defined (defconstant +success+ 0),
      all tests that pass in master also pass here:
      TOTAL: 1451 assertions passed, 5 failed, 0 execution errors.
      TOTAL: 1454 assertions passed, 2 failed, 0 execution errors.
      Liam Healy authored
  23. 31 Mar, 2009 1 commit
    • Pure-defmfun callbacks with funcallables · 74c8475e
      Both numerical-differentiation and numerical-integration have new
      :callbacks and the expansion calls new function
      #'make-compiled-funcallable which makes the funcallable at
      function-call time.  Spot tests of both work.  If a function passed to
      set-slot-function is nil, it will set the slot to null-pointer.
      Liam Healy authored
  24. 23 Mar, 2009 1 commit
    • Dynamic callbacks for nonlinear-least-squares · 26e3b36e
      Dynamic callbacks now operational for nonlinear-least-squares, test
      passes.  Callback struct slot name(s) and value(s) now properly set in
      pure function calls, even though this only affects Monte Carlo, which
      doesn't care whether the dimension is set or not.  The first optional
      argument to the mobject maker generated by #'mobject-maker can now
      have a default value, and the settingp will be added correctly.
      Liam Healy authored
  25. 22 Mar, 2009 1 commit
    • Third element of :callbacks is list of dimension names · cd435bbf
      Previously, the dimension-names always defaulted.  Changed all
      relevant definitions so that third element of :callbacks is a list of
      the dimension names, which must be explicitly specified.  All the
      expected tests pass on recompilation.
      Liam Healy authored
  26. 08 Mar, 2009 1 commit
    • Dynamic dimensions for callbacks · 00d7b1db
      Dimensions that have been placed into the dynamic-variable are now
      read and used for array input, as for example in Monte Carlo.
      Functions that use callbacks with scalar input and output (as for
      example in numerical-integration and numerical-differentiation) are
      now expanded directly with a funcall instead of call-maybe-scalar.
      Modifications and new definitions to set arrays partly written and
      untested, await changes to defmobject where callbacks setting array
      values exist.
      Liam Healy authored
  27. 02 Mar, 2009 2 commits
    • Separate :callback-dynamic from :callbacks arguments · ce520713
      The :callback argument to defmfun has now been split into two pieces,
      a set of values that will be specified at run time, which is in
      :callback-dynamic, and the values needed to build the callback and
      the callback structure, which remains in :callback.  The contents are
      explained in callback.lisp.  For mobject callbacks, the :callback part
      will be in the defmobject, and the :callback-dynamic will be in the
      defmfuns that use the mobject.  Currently, the dimensions template in
      :callback is not read, just the first dimension in :callback-dynamic
      is used.  This needs to be fixed.  The numerical-integration,
      numerical-differentiation, and monte-carlo examples work.
      Liam Healy authored
    • Dynamic callback functions in defmfun for array arguments · 69639247
      Extended the dynamic binding of callback functions to include a flag
      on whether to use scalars, and the dimension of the arguments, so that
      callback functions that have more than one scalar input and are
      defined in a defmfun will work.  This includes exactly Monte Carlo
      functions.  Scalar argument functions in numerical differentiation and
      numerical integration still work.
      Liam Healy authored
  28. 01 Mar, 2009 1 commit
    • In defmfun, :callbacks argument extended; formalize reading · 3b409c13
      The :callbacks argument to defmfun is now has at least four elements,
      the first two specifying the callback argument name and the structure
      name, and the remaining pairs specify the slot name and name of the
      variable bound to the function.  Functions defined for extracting
      these pieces: callback-carg, callback-structure-type,
      callback-slots-fns.  Even though in defmfun it is not necessary to
      define more than one callback function, it is possibile to define
      more.  This has been tested on integration-QNG only.
      Liam Healy authored
  29. 28 Feb, 2009 1 commit
    • Scalar functions passed as callback arguments · 01164ead
      A dynamic (special) variable whose name is gensymmed is used to bind
      the function passed by the user as the argument to the GSLL function.
      The defmfun that defines this function also sets the callback
      structure to another gensymmed name, and it calls a function that
      funcalls the dynamic variable.  This has been implemented for
      integration-QNG and works.
      Liam Healy authored
  30. 27 Feb, 2009 1 commit
  31. 16 Feb, 2009 2 commits
    • Rename constants to +...+ · b28a6a5a
      Rename constant pointers into the GSL library to +...+ from *...*.
      Liam Healy authored
    • Monte Carlo uses direct function callbacks · bcf61476
      Direct function callbacks may now be used with GSL structs other than
      'gsl-function, and will set the 'dimension slot as well by looking at
      the arglist of the function sent.  This uses an #'arglist borrowed
      from CLOCC:port.  Rewrite make-callbacks based on a hash table rather
      than a generic function.  All the usualy tests pass.
      SBCL 64:
      TOTAL: 1259 assertions passed, 5 failed, 0 execution errors.
      CCL 64:
      TOTAL: 1260 assertions passed, 4 failed, 0 execution errors.
      Liam Healy authored
  32. 15 Feb, 2009 1 commit
    • Direct use of callbacks in functions · 575fe965
      Simple function passing to functions which don't use mobjects is
      possible with some modifications to defmfun which treat the C argument
      'callback and the CL argument 'function specially, generating a
      callback structure based on 'gsl-function and filling it
      appropriately.  Ported numerical-differentiation and
      numerical-integration.  Also simplified calls in numerical-integration
      by making the workspace argument optional and at the end of the
      arglist; it defaults to the right size based on 'limit.  Changed one
      of the tests for numerical-integration because the limit test doesn't
      make sense with the workspace automatically allocated.
      Liam Healy authored
  33. 25 Jan, 2009 2 commits
    • Keyword arguments to defmobject · cd6a85f8
      Change optional arguments to defmobject to keyword arguments, and add
      :gsl-version argument that will create the maker function to signal an
      error if the installed version of GSL is too old.
      Liam Healy authored
    • Use lambda forms in callbacks · b134ed94
      It is possible to use lambda forms as well as function names in
      callback definers; this is demonstrated in the Monte Carlo example.
      Eliminated make-mfunction and folded its functionality into
      make-solver-functions.  Added a section to the documentation to
      explain how function definitions work.
      Liam Healy authored
  34. 24 Jan, 2009 1 commit
    • Define callbacks by returning the struct pointer, without setting specials · f0c7ecec
      Macro defcbstruct and all the macros built on it now simply return the
      C struct needed by GSL functions instead of binding a special whose
      name is then passed to the GSL functions.  Specials can still be used
      of course in the standard way like defparameter, but the results can
      also be bound locally with a let or passed in directly.  The name of a
      callback passed to defmcallback and to defcbstruct in all the macros
      that expand both is now gensymmed (since it is used only long enough
      to put in a slot of the cbstruct) instead of taken to be the name of
      the CL function, in order to make clear the different objects.
      Unfortunately, there is appears to be a bug in CFFI using defcallback
      with an uninterned symbol in CCL, so I have put a workaround in.
      However, there is still another error even with this workaround.
      Thus test results are:
      SBCL 64: TOTAL: 1248 assertions passed, 5 failed, 0 execution errors.
      CCL 64: TOTAL: 1229 assertions passed, 2 failed, 6 execution errors.
      Liam Healy authored
  35. 19 Jan, 2009 1 commit
    • More callbacks take and return scalars · f15ffdda
      More usage of callbacks using or computing multiple quantities
      now do so on scalars because the macros in GSLL pull out the
      individual elements of foreign arrays, and accept multiple values and
      put them into the right foreign arrays.  In roots-multi,
      #'multiroot-slot takes a mobject and extracts the mpointer before
      calling the foreign slot value.  Several examples in
      solve-minimize-fit now have optional 'print-steps argument.  These
      examples are now the basis for additional tests.
      Liam Healy authored