 09 Feb, 2009 1 commit


Liam Healy authored
New macro #'defmakecallbacks will expand to the appropriate defmethod for makecallbackfn, so that the defmcallbacks are defined appropriately.

 08 Feb, 2009 1 commit


Liam Healy authored
The onedimensional root solvers in rootsone.lisp now works in the callbacksincluded object, including both examples, with and without derivatives. The noderivative case has been modified to automatically listify the function name given. For callbacksincluded classes that do not define 'dimensions (because they are onedimensional), there is a new macro defcisubclass1d that makes 'dimensions slot a class slot with '(1). Defined a printobject method for callbacksincluded classes.

 07 Feb, 2009 3 commits


Liam Healy authored
Defined a new macro #'makecallbacks that is invoked at top level. It is given the mobject class name, the function name(s), dimension(s) and whether it should assume scalar input/output. It will define the appropriate callbacks for use in the mobject. This eliminates the need for defun* and should work with all CL implementations. Tested on both rootsmulti only.

Liam Healy authored
Converted roots solver using the derivative to the new class definition based on 'callbackincluded. Now example #'rootsmultiexamplederivative works. Removed unneeded definitions.

Liam Healy authored
The class 'callbackincluded has the following slots: cbstructname, arraytype, callbacklabels, functions, dimensions; the first three will be :allocation :class in all subclasses. This has been implemented and tested with the 'multidimensionalrootsolverf object in rootsmulti.lisp. The example #'rootsmultiexamplenoderivative works.

 04 Feb, 2009 1 commit


Liam Healy authored
Have the mobject maker build the cbstruct. This is now hacked in and works with rootsmulti in #'rootsmultiexamplenoderivative, but with #'makemultidimensionalrootsolverf having a hardwired dimension of 2. No clear way to communicate the dimension(s) from the other part of the defmobject form. Started to think/write a subclass 'callbackincluded of 'mobject, but this may be overkill as all variables except 'dimensions are exclusive to the cbstruct maker itself so don't really need to be class slots.

 02 Feb, 2009 1 commit


Liam Healy authored
The definition of defmobject has become too large so the parts that are responsible for construction of the various functions are broken out as functions: makeinitializeinstance makereinitializeinstance mobjectmaker The definition of callbacks for GSL will be changed so that the callback function (defmcallback) is defined at the time the function is defined, and the callback GSL structure is made (defcbstruct) at the time the corresponding defmobject is made, along with a freeing function to add to the finalizers. (For callbacks used in functions without mobjects, the struct will be allocated before and then freed after the call.) As a first step toward this organization, defun* is defined to handle in one form the definition of a CL function and of a callback.

 26 Jan, 2009 1 commit


Liam Healy authored
The macro withodeintegration 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.

 25 Jan, 2009 1 commit


Liam Healy authored
It is possible to use lambda forms as well as function names in callback definers; this is demonstrated in the Monte Carlo example. Eliminated makemfunction and folded its functionality into makesolverfunctions. Added a section to the documentation to explain how function definitions work.

 24 Jan, 2009 1 commit


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.

 23 Jan, 2009 1 commit


Liam Healy authored
The minimization functions may now take and return scalars or marrays. The examples take optional arguments with the solver method and whether to print the steps. They are now part of the #'examples and test suite. Use maref instead of clarray in #'rootsmultiexamplenoderivative. Add optional solver method to roots one and roots multi, and add tests for all solvers.

 19 Jan, 2009 2 commits


Liam Healy authored
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 rootsmulti, #'multirootslot takes a mobject and extracts the mpointer before calling the foreign slot value. Several examples in solveminimizefit now have optional 'printsteps argument. These examples are now the basis for additional tests.

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 defodefunctions and the van der Pol oscillator example. Redefined #'mareffunctionpicker as a macro from a function, eliminating the need for an evalwhen form.

 25 Jul, 2008 1 commit


lhealy authored
gitsvnid: svn+ssh://commonlisp.net/project/gsll/svn/trunk@26 af03a46be846041096e5d5653c316fd0

 16 Feb, 2008 1 commit


liam authored
mathematical.lisp to top level and eliminated directory general. gitsvnid: svn+ssh://pop/opt/space/mathematics/gsl/trunk@3291 a3d8a0fbc1db0310ace7a616afeb9e30

 29 Jan, 2008 1 commit


liam authored
hashtable for speed. Fix bug in return value in successfailure and successcontinue cases. gitsvnid: svn+ssh://pop/opt/space/mathematics/gsl/trunk@3277 a3d8a0fbc1db0310ace7a616afeb9e30

 21 Jan, 2008 2 commits


liam authored
defscalarfunction > defsinglefunction defunscalar > defunsingle gitsvnid: svn+ssh://pop/opt/space/mathematics/gsl/trunk@3271 a3d8a0fbc1db0310ace7a616afeb9e30

liam authored
#'defscalarfunction into two macros, #'defmcallback and #'defcbstruct, which are in turn used in other macros #'defsolverfunctions, #'defminimizationfunctions, and #'defodefunctions. Minor bug fixes. gitsvnid: svn+ssh://pop/opt/space/mathematics/gsl/trunk@3270 a3d8a0fbc1db0310ace7a616afeb9e30

 16 Jan, 2008 1 commit


liam authored
'success returns the GSL_SUCCESS code, required for many callback definitions. Introduced macros vref and mref (setfable) to get components of GSL vector doubles and matrix doubles directly from the pointers. gitsvnid: svn+ssh://pop/opt/space/mathematics/gsl/trunk@3265 a3d8a0fbc1db0310ace7a616afeb9e30

 14 Jan, 2008 1 commit


liam authored
makedatafrompointer, gslarrayp, generalize defscalarfunction. Derivativefree solution works. gitsvnid: svn+ssh://pop/opt/space/mathematics/gsl/trunk@3263 a3d8a0fbc1db0310ace7a616afeb9e30

 08 Jan, 2008 1 commit


liam authored
methods, but the derivativebased methods fail. gitsvnid: svn+ssh://pop/opt/space/mathematics/gsl/trunk@3259 a3d8a0fbc1db0310ace7a616afeb9e30

 06 Jan, 2008 1 commit


liam authored
application to Monte Carlo, simulated annealing, ordinary differential equations. Simulated annealing still does not work. gitsvnid: svn+ssh://pop/opt/space/mathematics/gsl/trunk@3258 a3d8a0fbc1db0310ace7a616afeb9e30

 30 Dec, 2007 1 commit


liam authored
associated macros. This places them in the gslfunction structure. gitsvnid: svn+ssh://pop/opt/space/mathematics/gsl/trunk@3257 a3d8a0fbc1db0310ace7a616afeb9e30
