- Nov 16, 2008
-
-
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.
-
- Aug 31, 2008
-
-
Liam Healy authored
Brought forward commits from the pre-ffa branch that were made after the two branches were split.
-
Liam Healy authored
Tests work and duplicate results from pre-ffa results. This puts completes the initial phase of the ffa port.
-
Liam Healy authored
The function #'euclidean-norm (gsl_blas_*_nrm2) takes one vector argument, not two, and returns the result as a return from the function. Handling of return declaration :component-float-type for a method created with defmfun was wrong, because #'component-type alread returns the C type and does not need to be converted with #'cl-ffa.
-
Liam Healy authored
Several bugs with small fixes, modifications to eliminate warnings: - Bad names for argument variables in maref fixed. - Add depenedencies in gsll.asd to avoid warnings. - Histogram needs #'assign-pointer function which was previously eliminated. - #'scale is a generic function, change defun to defmethod in histogram. - New #'variables-used-in-c-arguments replaces #'c-arguments in defmfun, now is a simplistic code walker but goes to arbitrary depth. This will do for current uses of defmfun. - Export and defgenerics for #'alloc, #'free which are used by histogram and random. In gsl-objects.lisp for lack of a better place. System now completely compiles from scratch with only one warning "Implicitly creating new generic function BIND-GENERATE-BINDINGS." which is from metabang-bind. No new testing.
-
- Aug 29, 2008
-
-
Liam Healy authored
Put maref and cl-array into a new file maref.lisp, each one has three methods (gsl-data, CL array, GSL pointer). The pointer method for maref selects over all possible element types. This compiles but is not tested.
-
- Aug 24, 2008
-
-
Liam Healy authored
Define '+foreign-pointer-class+ to be the class name for foreign pointers, which will be assumed to be GSL vectors or matrix pointers. Use in new method #'cl-array to return a CL array from a pure GSL vector double pointer, such as is returned by several functions in solve-minimize-fit.
-
Liam Healy authored
Any use of foreign read-write is going to require some thought; these can be eliminated for now.
-
Liam Healy authored
Port new chapters to ffa. Fix up BLAS. Compiles; no testing.
-
- Aug 23, 2008
-
-
Liam Healy authored
Missed #'mpointer changes and some renames; also change to new args for maref.
-
Liam Healy authored
The generic function #'maref will work on foreign pointers and assume them to be pointing to either a gsl-vector-c or a gsl-matrix-c, depending on how many indices are given. This then functions like the old #'vref and #'mref. It is used in the new function #'make-vector-from-gsl which creates a CL vector (using make-array*) which is needed by several functions in solve-minimize-fit. It is also useful in the callbacks a user would define for solve-minimize-fit functions. Similar functionality added to (setf aref) which was turned into a generic function. As part of the changes needed to define these methods, the defmfun family was modified to accept optional arguments in #'expand-defmfun-method, which is invoked when :definition :method is given. Functions with optional arguments fall into two categories as far as defmfun is concerned: those that correspond to multiple GSL functions, and those that don't. This should work in both cases.
-
- Aug 22, 2008
-
-
Liam Healy authored
Port ordinary-differential-equations to "ffa" which is really just a few changes to sizet. The example runs and the results look reasonable.
-
Liam Healy authored
Ported Monte-carlo to ffa, with all examples working. This necessitated the introduction of a new local macro in letm, #'a*, which is like #'a, but evaluates its arguments (and thus allows pi).
-
- Aug 21, 2008
-
-
Liam Healy authored
The remainder of the statistics chapter ported to ffa. All compile but none tested.
-
- Aug 17, 2008
-
-
Liam Healy authored
Port mean-variance to ffa. Compiled; not tested.
-
Liam Healy authored
Introduce #'body-optional-arg and #'body-no-optional-arg (formerly functions and the second specifies whether to map down on the C argument list on order to find all variables that are used. All of GSLL compiles.
-
Liam Healy authored
Merge and clean up the changes to defmfun.
-
Liam Healy authored
New function #'complete-definition is for putting together an entire definition with arglist, declaration, and body, such as defun, defmethod, or :method. The old (misleadingly-named) #'expand-defmfun-plain has been removed. Removed possibility of definition &aux variables with :global; it was used only once and easily replaced.
-
Liam Healy authored
Extract new function #'expand-defmfun-body from #'expand-defmfun-plain, then define the latter in terms of the former, with the idea that it will be easier to define other forms (defmethod, :method by calling this new function separately. GSLL compiles with the new function.
-
Liam Healy authored
Little actual ffa usage, just the port to 'sizet, method and use of #'mpointer in the histogram context. It would be nice to be able to adapt defmfun to discriminating between 1d and 2d histograms rather than using histo-1d2d, but I will put that off for now. This compiles but is not tested.
-