- 25 Oct, 2009 1 commit
-
-
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.
-
- 20 Sep, 2009 1 commit
-
-
Liam Healy authored
Matrices (and vectors) may be created from functions of the element indices. This is needed to create the matrices used in testing the linear algebra functions. It also can be of general use, especially with further generalization. For now, there are no exported symbols from these definitions.
-
- 27 Aug, 2009 1 commit
-
-
Liam Healy authored
Ported ntuple to cbinfo form with tests duplicating the GSL tests in ntuple/test.c.
-
- 24 Aug, 2009 1 commit
-
-
Liam Healy authored
ASDF definition of modules are with symbols, so the :depends-on reference to those modules is also with symbols, not strings.
-
- 23 Aug, 2009 1 commit
-
-
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.
-
- 18 Jun, 2009 1 commit
-
-
Liam Healy authored
Some files in init depend on libgsl, so dependency is now given in gsll.asd.
-
- 16 Jun, 2009 1 commit
-
-
Liam Healy authored
ASDF load-op on cffi-grovel prior to defsystem so that cffi-grovel:grovel-file works.
-
- 15 Jun, 2009 1 commit
-
-
Liam Healy authored
-
- 10 Jun, 2009 1 commit
-
-
Liam Healy authored
In the previous conversion of callbacks, ntuple was somehow missed.
-
- 08 Jun, 2009 1 commit
-
-
Liam Healy authored
Stelian Ionescu has modified CFFI-grovel to generate double-float constants with :type double-float in constant. GSLL has been ported to use that. This requires a version of CFFI which includes the patch of Mon Jun 8 10:29:44 EDT 2009. It works, but until this has a release number, it will stay out of the master GSLL branch.
-
- 06 Jun, 2009 1 commit
-
-
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.
-
- 05 Jun, 2009 1 commit
-
-
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.
-
- 04 Jun, 2009 1 commit
-
-
Liam Healy authored
The iterate extensions will be loaded if iterate and asdf-system-connections are present. The example works in SBCL but there is an error in CCL.
-
- 29 May, 2009 1 commit
-
-
Liam Healy authored
All physical constants in gsl/gsl_const_mksa.h and gsl/gsl_const_cgsm.h are defined as Lisp constants and exported. This requires a patch to CFFI grovel/grovel.lisp. Since this patch has just been sent to the CFFI mailing list and is not generally available, this will remain off the master branch until the patched CFFI is generally available.
-
- 25 May, 2009 3 commits
-
-
Liam Healy authored
Started writing definitions of constants based on GSL's physical constants, using cffi-grovel. This has not proceeded beyond the first definition because cffi-grovel at the present time casts everything to an integer.
-
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.
-
Liam Healy authored
The random number distribution functions have been made methods of #'sample, with 'source being the generator.
-
- 20 May, 2009 1 commit
-
-
Liam Healy authored
Simulated annealing is now loaded with the defsystem, and its presence advertised in documentation/index.html. The file simulated-annealing.lisp has been moved to solve-minimize-fit. The GSL "make check" tests have been added at the end of the file, but they are not added to GSLL's examples/tests yet because of how slow it runs.
-
- 03 May, 2009 1 commit
-
-
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.
-
- 20 Apr, 2009 1 commit
-
-
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.
-
- 12 Apr, 2009 1 commit
-
-
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.
-
- 05 Apr, 2009 1 commit
-
-
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.
-
- 04 Apr, 2009 2 commits
-
-
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.
-
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.
-
- 03 Apr, 2009 1 commit
-
-
Liam Healy authored
Created file init/utility.lisp, which now includes make-symbol-cardinal and make-symbol-cardinals. These functions in turn will now take a list for name, and join the symbols together with "-", and will optionally intern in a package. In #'callback-args in callback.lisp, the args are now numbered sequentionally (still uninterned, but no longer gensymmed). In #'expand-defmfun-wrap in defmfun.lisp, the symbols for specials "dynfn" and "cbfn" that are made are now interned, numbered sequentially, and named after the function in which they occur. This doesn't affect the functionality of the functions, it is just for readability of the macroexpansion. Expected tests pass.
-
- 01 Apr, 2009 1 commit
-
-
Liam Healy authored
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: SBCL TOTAL: 1451 assertions passed, 5 failed, 0 execution errors. CCL TOTAL: 1454 assertions passed, 2 failed, 0 execution errors.
-
- 31 Mar, 2009 1 commit
-
-
Liam Healy authored
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.
-
- 29 Mar, 2009 1 commit
-
-
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.
-
- 23 Mar, 2009 1 commit
-
-
Liam Healy authored
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.
-
- 21 Mar, 2009 1 commit
-
-
Liam Healy authored
Argument 'scalarsp added at end of optional arguments to mobject maker; it is then passed to reinitialize-instance. Even though it is not specified as an argument there, it is accepted to set the slot of that name. Ported minimization-multi to dynamic callbacks; examples all work. Linear least squares re-enabled in gsll.asd; no changes.
-
- 19 Mar, 2009 1 commit
-
-
Liam Healy authored
Add the slot 'scalarsp and eliminate the slot 'callback-dynamic from the class callback-included, and modify the defmobject uses accordingly. All dynamic quantities (function, scalarsp, dimensions) will be set from slot values at run time. This works for the objects ported so far: (lisp-unit:run-tests chebyshev) CHEBYSHEV: 1 assertions passed, 0 failed. (lisp-unit:run-tests roots-one) ROOTS-ONE: 6 assertions passed, 0 failed. (lisp-unit:run-tests minimization-one) MINIMIZATION-ONE: 2 assertions passed, 0 failed. Started working on roots-multi; it now compiles but does not run.
-
- 17 Mar, 2009 1 commit
-
-
Liam Healy authored
The array-type as given in the callback-argspec is either :cvector or :marray. The functions list-to-arrays and list-to-array expect argument 'marrayps or 'marrayp which are T or NIL. That means I need to map the 'marrays argument in #'call-maybe-scalar which is :marray or :cvector to T/NIL. Wrote function #'marrayp to do this. Example in one-dimensional-root-solver-fdf (roots-one-example-derivative +newton-fdfsolver+ nil) now works; in fact all roots-one tests pass: (lisp-unit:run-tests roots-one) ROOTS-ONE: 6 assertions passed, 0 failed. Ported minimization-one, tests pass: (lisp-unit:run-tests minimization-one) MINIMIZATION-ONE: 2 assertions passed, 0 failed.
-
- 15 Mar, 2009 2 commits
-
-
Liam Healy authored
In roots-one.lisp, added arguments for dynamic callbacks. This is not complete; (roots-one-example-derivative +newton-fdfsolver+ nil) causes both SBCL and CCL to crash to low-level debuggers. These changes included using a new function list-to-arrays in call-maybe-scalar so that multiple arrays can be set. New file callback-compile-defs has definitions that are needed at compile time of later files. Added a call record-callbacks-for-class in defmobject, in addition to the expansion in the form, because the hash table *callbacks-for-classes* needs to be updated with the class being defined for the macro make-cbstruct-object to work. Added comments above defmobject to explain some of the arguments.
-
Liam Healy authored
The class 'callback-included has been simplified by replacing several obsolete slots with 'callbacks and 'callback-dynamic. The :callbacks static information is saved to a hash table so that it may be retrieved when the defmfun is expanded. The function make-cbstruct-object to make the callback structure as an &aux variable in reinitialize-instance :after form expanded in defmobject is now a form expansion executed at macroexpand time. The argument :callback-object has been added to defmfun; this will result in the binding of the dynfn dynamic variable on expansion. The callback arguments for chebyshev definitions have been updated and the example works.
-
- 14 Mar, 2009 1 commit
-
-
Liam Healy authored
Separate out the file callback-included.lisp from callback.lisp to define callback-related subclasses of mobject and macros to make instances.
-
- 08 Mar, 2009 1 commit
-
-
Liam Healy authored
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.
-
- 16 Feb, 2009 2 commits
-
-
Liam Healy authored
Added all Mathieu functions and tests that match the GSL tests.
-
Liam Healy authored
The generalized (symmetric and non-symmetric) eigensystem definitions have been added, and four separate files made for all eigensystem definitions. Not too much attention has been paid to consistent or unified names.
-
- 15 Feb, 2009 1 commit
-
-
Liam Healy authored
As a way of making it easier to use something other than a gsl-function and with additional slots set, and to make more clear where specific variable names are treated specially, define and use: callback-arg-p callback-replace-arg callback-remove-arg callback-set-slots Also split off #'set-cbstruct which #'make-cbstruct and callback-set-slots both use.
-
- 12 Feb, 2009 1 commit
-
-
Liam Healy authored
The function #'copy will now copy contents between marrays and CL arrays. The destination array can be supplied literally, or created by this function by specifying the desired type: when copying from a marray to a CL array, specify 'array; when copying from a CL array to a marray, specify the element type of the marray. For example, (COPY (COPY (MAKE-MARRAY '(COMPLEX DOUBLE-FLOAT) :INITIAL-CONTENTS '((-34.5 8.24 3.29 -8.93 34.12 -6.15) (-8.93 34.12 -6.15 49.27 -13.49 32.5) (49.27 -13.49 32.5 42.73 -17.24 43.31))) 'ARRAY) '(COMPLEX DOUBLE-FLOAT)) copies from the matrix-complex-double-float made in the make-marray form to a CL array, then copies the contents to a new matrix-complex-double-float.
-