- Dec 22, 2008
-
-
Liam Healy authored
Merged in minor changes from master.
-
Liam Healy authored
Redefine 'mobject from 'gsl-object. The class 'gsl-data in data.lisp is now a subclass of it, and does not explicitly have the mpointer slot, because mobject does. Adapted #'defmobject to work with objects that have no "setter" (initialization). This expands correctly for basis-splines (no setter) and hankel (setter). The basis-splines defintions rely on the new mobjects.
-
- Dec 16, 2008
-
-
Liam Healy authored
In the defmobject expansion, export the make-<class> symbol, include keywords in call to make-instance, add a docstring.
-
- Dec 15, 2008
-
-
Liam Healy authored
In gsl-objects, define a prototype defmobject which defines: - the class for the gsl object - initialize-instance :after method to correspond to GSL "alloc" and attach the finalizer, - define reinitialize-instance :after method to correspond to a setter or intialize in GSL, - define a make-<class-name> function that will be the customary user interface, and will call make-instance and possibly reinitialize-instance if defined. Worked up example in hankel.lisp. This compiles successfully and looks correct, but has not been tested.
-
Liam Healy authored
-
- Dec 14, 2008
-
-
Liam Healy authored
Add :qualifier argument to defmfun, used when methods are defined to allow qualifiers such as :after or :before. Permit &key arguments. Check the :after argument to defmfun for usage of argument variables to prevent them from being declared ignored. Note: This uses stupid-code-walk-find-variables, and is, well, stupid. These changes are all designed to permit the definition of #'initialize-instance and #'reinitialize-instance methods for GSL objects.
-
- Dec 08, 2008
-
-
Liam Healy authored
A somewhat comprhensive attempt to make sure :inputs, :outputs, and :return arguments in defmfuns match what the function is expecting and will return, so that non-native implementations will work correctly for copying, and native ones will work correctly for pinning. The :return argument now defaults to :outputs in most circumstances.
-
- Dec 07, 2008
-
-
Liam Healy authored
Define and call copy-cl-to-c and copy-c-to-cl only for non-native implementations; they include checks of the flags c-invalid and cl-invalid. Make sure synchronization is called at the right points. Make sure that flags are set at the right points and cleared after a copy. Not tested yet. Any per-function problems are likely from incorrect listing of inputs and/or outputs.
-
Liam Healy authored
Instead of making the ffa in make-array*, we now make it in the initialize-instance :after method for gsl-data. This means that subclasses (permutations, combinations) will automatically make the arrays. Rewrote make-array* so that it is just a wrapper for make-instance, computing the dimensions from the specified initial parameters. Permutations and combinations are now made with make-* functions.
-
- Dec 06, 2008
-
-
Liam Healy authored
The letm expansion definitions for arrays, permutations, and combinations has been eliminated. These objects are now made with there own functions and may be created anywhere, not necessarily inside a letm.
-
- Dec 01, 2008
-
-
Liam Healy authored
GSL arrays are garbage-collected objects, and so can be made like any other lisp object; they do not need to be make inside a wrapper form. #m is a macro which makes them; it expands to a #'make-array* call. Examples and usage ported to this new form. Compiled only; not tested yet. No effort to port to non-native implementation yet; tests as expanded in the tests/ directory are not ported yet.
-
- Nov 29, 2008
-
-
Liam Healy authored
Use :pointer for arguments to GSL functions instead of gsl-matrix-c. Function #'cholesky-solvex had the wrong argument name.
-
Liam Healy authored
Redefine #'alloc-gsl-struct as a generic function and define a method specifically for combinations. Define #'native-pointer in defmfun.lisp with a new function #'native-pointer-protect made from its body left in data.lisp, so that now floating-point and mathematical can be compiled and loaded as defined in the asd file. Use :pointer for foreign argument types instead of gsl-vector-c.
-
- Nov 28, 2008
-
-
Liam Healy authored
Native arrays are now completely dynamic, i.e., they are garbarge collected and there is no need for any kind of wrapper, because the with-pinned-objects is wrapped at the defmfun level. Most tests pass on SBCL, but there are still a number that fail. The GSL parts are always present; there is potentially unnecessary allocation of all GSL-required structs at creation time, which might merit some investigation for a more just-in-time creation procedure. Potential problems on non-native implementations completely uninvestigated.
-
- Nov 23, 2008
-
-
Liam Healy authored
Using trivial-garbage to define a portable finalizer in #'alloc-gsl-struct. Removed #'free-gsl-struct; #'expand-data no longer calls #'free-gsl-struct. As in the old free-gsl-struct, the finalizer removes the gsl-vector-c or gsl-matrix-c, and the gsl-block-c if applicable. Test results are the same (1 failure for unrelated reason).
-
- Nov 17, 2008
-
-
Liam Healy authored
Started in file init/analysis.lisp some definitions that will aid in gauging how much of GSL GSLL covers. It will not normally be loaded (and depends on port system which is not required for GSLL) because it is mainly used by developers. It is not yet finished. Hash size for *gsl-symbol-equivalence* increased to reflect actual number of symbols present when GSLL is loaded. Improved documentation.
-
- Nov 16, 2008
-
-
Liam Healy authored
Renamed conditions in init/conditions.lisp and elsewhere to be more lisp like; e.g. EDOM is not 'input-domain. All tests except one pass.
-
Liam Healy authored
Tests are now separated from examples and defined in a new system gsll-tests. Change name of condition 'input-error from 'EDOM.
-
Liam Healy authored
GSL uses doubles for scalar addition and multiplication, regardless of the element type of the array, so modified the definitions of #'m*c, #'m+c accordingly.
-
Liam Healy authored
New dependency; simplified terminology.
-
Liam Healy authored
By incorporating a few definitions modified from Tamas Papp's FFA directly into GSLL, there is no dependence anymore on FFA separately. With the conversion of a few definitions, the dependency on iterate has therefore been eliminated also. This compiles without errors or warnings on SBCL.
-
- Nov 12, 2008
-
-
Liam Healy authored
Include #'make-ffa from Tamas Papp's ffa/ffa.lisp to foreign-friendly.lisp and eliminate the call to #'match-array-element-type, so that 'element-type must be a CL type. Temporarily rename this to #'make-ffa*; once I no longer load or import ffa, it can be renamed back to #'make-ffa.
-
Liam Healy authored
To make terminology consistent, the "C standard" form of type, also what I call "CFFI" form, is called that instead of "FFA" in some places. Specifically, #'cl-cffi is renamed from #'cl-ffa and now the name matches the already-existing #'cffi-cl.
-
Liam Healy authored
In early experimentation with foreign-friendly arrays, I developed a way to directly use the foreign-friendly arrays in GSL code using raw C arrays. This was successful. Subsequently, I rewrote the gsl-data objects to have foreign-friendly arrays underlying them, whether they create raw C arrays, GSL arrays, or both, so the early experiment is obsolete and is deleted in this commit.
-
- Nov 09, 2008
-
-
Liam Healy authored
Added tests for all array element types for BLAS2 and BLAS3. Those functions that take complex scalars as arguments will not work due to CFFI's lack of support for passing structs directly. The rank n update functions in BLAS2 gives an "Matrix, vector lengths are not conformant" error (EBADLEN), which needs to be tracked down. Therefore, none of these tests are defined in either file. Fixed arguments to C function in #'matrix-product-symmetric and #'inverse-matrix-product in BLAS3.
-
Liam Healy authored
Defined a complete set of BLAS1 tests for all element types. The duplicate Givens function and the "modified" Givens rotations, which are not explained in the GSL documentation, are excluded.
-
Liam Healy authored
Define some sorting functions for matrices, using the gsl_sort functions that work on C pointers. Define sorting tests for all element types. Update documentation to clarify lack of stride option.
-
Liam Healy authored
Define mean and variance functions for matrices as well as vectors. This required a modification to #'expand-defmfun-generic and to #'actual-array-c-type to permit the use of "both" when there is an optional argument, and thus two C argument lists. Defined tests for all unweighted functions and element types. Because there appears to be a bug in the GSL library in computing single floats, no tests have yet been defined for these functions.
-
Liam Healy authored
Create vector-only and matrix-only tests, and eliminate old comments and test definitions. Define outputs and returns for some vector and matrix functions that didn't have them.
-
Liam Healy authored
Complete set of tests on array operations that are defined for both vectors and matrices. Added documentation to generate-tests to explain how it works and why it's there. Fixed bug in #'expand-defmfun-generic that occured when both arrays are generated, due to key-args being altered.
-
- Nov 02, 2008
-
-
Liam Healy authored
For testing, both vectors and matrices can be made with #'array-default, replacing #'vector-default. The numbers in *double-float-pool* in are now double floats (with d0), and the #'make-list-from-pool coerces to the right type. In both.lisp, #'set-value and #'get-value are for vectors only, not both, because matrices require an extra index argument. Since these functions are for debugging only as the comment says, I'm writing equivalent matrix functions, and I'm not doing tests for them.
-
Liam Healy authored
Complex arrays can be initialized with either reals or complexes. If initialized with reals, there must be an even number. Now created complex arrays are the right length and are not always zero in the imaginary part. Pool data supplied in *signed-byte-pool* is between ±127 inclusive, instead of ±255, which is required for making (signed-byte 8). Added some tests from functions in both.lisp to generate-tests.lisp.
-
- Oct 25, 2008
-
-
Liam Healy authored
All remaning tests are now defined with save-test, and the LISP-UNIT:DEFINE-TEST has been eliminated from the definition files, except for arrays.
-
- Oct 22, 2008
-
-
Liam Healy authored
New function #'save-test saves test forms to a special, and nothing more. Function #'write-test-to-file in generate-tests.lisp will write it to a file, which ought to be done rarely. I have started the task of moving all test definitions to save-test, in the special-functions. The files generated have been checked against the old definitions, but they have not been checked in yet.
-
- Oct 14, 2008
-
-
Liam Healy authored
New macro #'save-tests will put list of tests onto *all-generated-tests*. The corresponding lisp-unit test can be generated with #'create-test. The macro #'generate-all-array-tests now uses #'save-tests, so all tests defined that way will be put onto the lists. All tests can be written to a file with #'write-tests-to-file, but this writes to a single file and I think I will want to write each test to a separate file so that it is easier to replace or augment one test without touching the others. Two sections, Airy and Clausen, use these definitions.
-
- Sep 21, 2008
-
-
Liam Healy authored
All the lisp-unit tests defined in the old GSLL have been updated and will load by default, with all tests passing on Debian Lenny amd64 and GSL 1.11. TOTAL: 491 assertions passed, 0 failed, 0 execution errors.
-
Liam Healy authored
Several random distribution functions have new tests as the previous test results are no longer generated; it is not clear why. New tests for numerical-differentiation based on GSL's own tests in deriv/test.c. Fixed typo in #'integration-workspace-free which caused crash. All uncommented tests now pass. TOTAL: 452 assertions passed, 0 failed, 0 execution errors.
-
- Sep 15, 2008
-
-
Liam Healy authored
Multiple fixes to restore tests: change to #'cl-array from #'data, use #'a macro, comment out a few tests do defer repair until later. Two errors in definitions of functions in histogram/updating-accessing.lisp fixed. Some uncommented-out test failures remain.
-
- Sep 14, 2008
-
-
Liam Healy authored
Start infrastructure for making array tests. Simple examples do the right thing, but it hasn't been folded into a test-generation application yet. Make complex foreign-friendly vectors with initial values.
-
- Sep 01, 2008
-
-
Liam Healy authored
Updated the documentation to reflect changes in the new branch with foreign-friendly arrays. This is now better reflective or the current definitions, but work needs to be done. Added a dependency that was missing: matrix exponential needs special functions to define sf-mode.
-