1. 18 Nov, 2012 1 commit
    • Substitute for dim0 and dim1 in funcallables when scalarsp=NIL · 127d3d02
      Previously, the funcallable form made by #'make-funcallable-form (for
      e.g. ODE solvers) when scalarsp=T involved substituting the symbols
      'dim0 and 'dim1, but when scalarsp=NIL, would not do the substitution.
      This caused an error when those unevaluated and unbound symbols
      appeared in the lambda.  By altering #'faify-form with an additional
      'dimension-values argument and calling 
      (value-from-dimensions argspec dimension-values) 
      instead of 
      (parse-callback-argspec argspec 'dimensions), 
      this problem is fixed.
      Liam M. Healy committed
  2. 13 Jan, 2012 1 commit
  3. 30 Oct, 2011 1 commit
  4. 26 May, 2011 1 commit
  5. 04 May, 2011 1 commit
  6. 08 Apr, 2011 1 commit
  7. 10 Jan, 2011 2 commits
  8. 01 Jul, 2010 1 commit
  9. 30 Jun, 2010 1 commit
  10. 27 Jun, 2010 1 commit
  11. 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 committed
  12. 27 Dec, 2009 1 commit
  13. 01 Dec, 2009 1 commit
  14. 23 Aug, 2009 1 commit
  15. 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 committed
  16. 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 committed
  17. 01 Apr, 2009 1 commit
  18. 30 Mar, 2009 1 commit
    • ODE solver functional with funcallables · 741fd237
      Changed the defmobject definitions to handle a 'callback-included-cl
      object.  Changed the ODE solver definitions to take separate arguments
      for the function and Jacobian, as well as scalarsp.  Not completely
      finished, but tests
      (integrate-vanderpol 1.0d0 1.d-4 +step-rk2+ nil)
      (integrate-vanderpol 1.0d0 1.d-4 +step-rkf45+ nil)
      work correctly.
      Liam Healy committed
  19. 29 Mar, 2009 1 commit
    • Most mobject-based callbacks ported to funcallables · 1349c73a
      All mobject-based callbacks now use the funcallable mechanism, except
      ODE, which has been ported but fails to compile.  All other tests
      pass.  In the event of some or all arguments are scalars and not
      arrays, #'array-element-refs will return just the argument symbol.  To
      avoid double quoting the function name when calling the object maker,
      let bind 'function-designator in #'make-funcallable-form which does
      the quoting.
      Liam Healy committed
  20. 26 Mar, 2009 1 commit
    • Start port new spec of callback arguments, make-funcallable, ODE · c125397a
      New specification of callback arguments
      parse-callback-argspec takes 
        io, element-type, array-type, dimensions
      Not at all implemented anywhere in the code.
      Made file funcallable.lisp out of the old defmcallback, designed to
      create a lambda for compilation that will be funcalled by the (new)
      defmcallback body.  This still uses the old specification for function
      arguments.  Started porting ODE callbacks, but this has been suspended
      while the first two changes are being completed.  None of this works
      in any way.
      Liam Healy committed
  21. 23 Feb, 2009 1 commit
  22. 16 Feb, 2009 1 commit
  23. 15 Feb, 2009 3 commits
    • Consistent apply-step, apply-evolution function names and arguments · f4489bf4
      The arguments have been changed in apply-step, apply-evolution so that
      they match for the first three arguments.  The function name
      apply-step was changed so the two are similar.  The macro
      with-ode-integration defines a local function #'next-step instead of a
      symbol macro 'make-next-step because symbols in the body of a simple
      loop violate the CL standard.  Some documentation has been updated
      with the contribution of Mirko Vikovic.
      Liam Healy committed
    • Callback struct stored in ode-stepper slot · 47ce1e4a
      Changed the code so that the callback struct is now in ode-stepper
      instead of ode-evolution, because all solvers need stepper but only
      variable step integrators need evolution.  The ode examples/tests
      work.
      Liam Healy committed
    • ODE evolution ported to callbacks-included · b6561c8e
      Mobject 'ode-evolution is now made as a subclass of 'callbacks-included-cl, a
      new class that is a subclass of 'callbacks-included, but which stores the
      cbstruct pointer in a CL slot rather than in a foreign struct.  This example is
      correct,
      (integrate-vanderpol 1.0d0 1.d-4 *step-rk4* nil)
      40
      1.0d0
      -1.4568569264026898d0
      -11.547449151779395d0
      Liam Healy committed
  24. 27 Jan, 2009 1 commit
    • Non-native and :callback-toplevel-only fixes · 86da4ec7
      Fixed several bugs that affected non-native implementations, where
      :inputs, :outputs, or both were not properly declared.  According to
      the CFFI manual, "Portability note: defcallback will not work
      correctly on some Lisps if it's not a top-level form." Evidently, this
      includes Clozure CL, so a new symbol :callback-toplevel-only has been
      pushed onto *features* if openmcl.  This changes examples with
      callbacks to define the callbacks in a separate defparameter rather
      than in-line when the mobject is made of the function is called.  As a
      result of both these changes, the only errors left in CCL tests were
      ones seen previously.  
      CCL 64: TOTAL: 1259 assertions passed, 3 failed, 0 execution errors.
      SBCL 64: TOTAL: 1257 assertions passed, 5 failed, 0 execution errors.
      Liam Healy committed
  25. 26 Jan, 2009 1 commit
  26. 25 Jan, 2009 2 commits
  27. 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 committed
  28. 21 Jan, 2009 1 commit
  29. 19 Jan, 2009 1 commit
    • Redefine defmcallback to provide and accept scalars from CL functions · c83788ed
      New definition for defmcallback will now convert C array pointers
      passed to the function by GSL into individual scalar arguments of the
      CL function, and will take multiple value returns and assign as
      elements of the return C arrays.  Applied to def-ode-functions and the
      van der Pol oscillator example.  Redefined #'maref-function-picker as
      a macro from a function, eliminating the need for an eval-when form.
      Liam Healy committed
  30. 22 Aug, 2008 1 commit
  31. 25 Jul, 2008 1 commit
  32. 18 Feb, 2008 1 commit
  33. 29 Jan, 2008 1 commit
  34. 21 Jan, 2008 1 commit
  35. 16 Jan, 2008 1 commit
  36. 06 Jan, 2008 1 commit