1. 18 Nov, 2012 1 commit
    • Liam M. Healy's avatar
      Substitute for dim0 and dim1 in funcallables when scalarsp=NIL · 127d3d02
      Liam M. Healy authored
      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.
      127d3d02
  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
    • Liam Healy's avatar
      Simplified paths to the foreign libraries; use gsl-config for header · 610e8dc2
      Liam Healy authored
      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").
      610e8dc2
  12. 27 Dec, 2009 1 commit
  13. 01 Dec, 2009 1 commit
  14. 23 Aug, 2009 1 commit
    • 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. 06 Jun, 2009 1 commit
    • 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
  16. 25 May, 2009 1 commit
    • 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
  17. 01 Apr, 2009 1 commit
    • Liam Healy's avatar
      Clean up · ff9d0f7e
      Liam Healy authored
      Remove obsolete definitions for make-callback and move print-object to
      callback-included.lisp.
      ff9d0f7e
  18. 30 Mar, 2009 1 commit
    • Liam Healy's avatar
      ODE solver functional with funcallables · 741fd237
      Liam Healy authored
      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.
      741fd237
  19. 29 Mar, 2009 1 commit
    • Liam Healy's avatar
      Most mobject-based callbacks ported to funcallables · 1349c73a
      Liam Healy authored
      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.
      1349c73a
  20. 26 Mar, 2009 1 commit
    • Liam Healy's avatar
      Start port new spec of callback arguments, make-funcallable, ODE · c125397a
      Liam Healy authored
      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.
      c125397a
  21. 23 Feb, 2009 1 commit
  22. 16 Feb, 2009 1 commit
  23. 15 Feb, 2009 3 commits
    • Liam Healy's avatar
      Consistent apply-step, apply-evolution function names and arguments · f4489bf4
      Liam Healy authored
      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.
      f4489bf4
    • Liam Healy's avatar
      Callback struct stored in ode-stepper slot · 47ce1e4a
      Liam Healy authored
      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.
      47ce1e4a
    • Liam Healy's avatar
      ODE evolution ported to callbacks-included · b6561c8e
      Liam Healy authored
      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
      b6561c8e
  24. 27 Jan, 2009 1 commit
    • Liam Healy's avatar
      Non-native and :callback-toplevel-only fixes · 86da4ec7
      Liam Healy authored
      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.
      86da4ec7
  25. 26 Jan, 2009 1 commit
    • Liam Healy's avatar
      New macro with-ode-integration, new ODE tests · b6d90200
      Liam Healy authored
      The macro with-ode-integration has been significantly altered, using
      marrays and symbol macros to make integration forms easier.  There are
      now 10 ode tests, one for each of the supplied steppers.
      b6d90200
  26. 25 Jan, 2009 2 commits
    • Liam Healy's avatar
      ODE control objects · 4e83fcc4
      Liam Healy authored
      ODE control is now done with GSL objects, including a superclass
      'ode-control.
      4e83fcc4
    • Liam Healy's avatar
      Keyword arguments to defmobject · cd6a85f8
      Liam Healy authored
      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.
      cd6a85f8
  27. 24 Jan, 2009 1 commit
    • Liam Healy's avatar
      Define callbacks by returning the struct pointer, without setting specials · f0c7ecec
      Liam Healy authored
      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.
      f0c7ecec
  28. 21 Jan, 2009 1 commit
  29. 19 Jan, 2009 1 commit
    • Liam Healy's avatar
      Redefine defmcallback to provide and accept scalars from CL functions · c83788ed
      Liam Healy authored
      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.
      c83788ed
  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