Hi,
I just installed the latest gsll and gsl (1.14) on red-hat/linux/64-bit sbcl 1.0.34 on . A couple observations on (what I think are) minor unit-tests errors and failures.
*** CHOLESKY:
The following error
CHOLESKY: Function CHOLESKY-INVERT (gsl_linalg_cholesky_invert) is not available in the currently loaded release 1.14 of GSL; it was introduced in release 1.12.
does not make sense since gsl_linalg_cholesky_invert is present in gsl1.14 (http://www.gnu.org/software/gsl/manual/html_node/Cholesky-Decomposition.html) - admittedly, I did not dig into the c code to verify if the code and documentation are out of line
*** ELLIPTIC-FUNCTIONS: failure shows up when doing (lisp-unit:run-tests), but not when doing the individual tests:
GSL> (lisp-unit:run-tests) ... ELLIPTIC-FUNCTIONS: (MULTIPLE-VALUE-LIST (JACOBIAN-ELLIPTIC-FUNCTIONS 0.2d0 0.81d0)) failed: Expected (0.19762082367187703d0 0.9802785369736752d0 0.9840560289645665d0 0.0d0 0.0d0 0.0d0) but saw (0.19762082367187703d0 0.9802785369736752d0 0.9840560289645665d0 0.5000000000000027d0 7.618282373747058d-16 2.5991577338697564d-13) ...
GSL> (lisp-unit:run-tests elliptic-functions) ELLIPTIC-FUNCTIONS: 2 assertions passed, 0 failed.
Does GSL set-up some of lisp-unit's precision variables *epsilon* or *significant-figures*?
*** MATHIEU: failure can be eliminated with lower precision:
GSL> (let ((lisp-unit::*epsilon* 1d-15)) (lisp-unit:run-tests mathieu)) produces two errors, but
GSL> (let ((lisp-unit::*epsilon* 1d-13)) (lisp-unit:run-tests elliptic-functions)) ELLIPTIC-FUNCTIONS: 2 assertions passed, 0 failed.
*** TDIST
When doing the bulk test run, it produces three failures, two of which could be eliminated with slightly higher tolerances: TDIST: (MULTIPLE-VALUE-LIST (TDIST-PINV 0.6475836176504334d0 1.0d0)) failed: Expected (0.500000000000001d0) but saw (0.5000000000000003d0) TDIST: (MULTIPLE-VALUE-LIST (TDIST-QINV 0.3524163823495667d0 1.0d0)) failed: Expected (0.5d0) but saw (0.5000000000000002d0)
But these two failures do not show up when doing an individual test run (lisp-unit:run-tests tdist)
The one remaining error might be due to the reference data out of order:
Expected ((0.14989366374481017d0 0.6794142879291215d0 -1.615833951108472d0 -1.6008862825783456d0 -1.7010935505767397d0 -0.04370959749808691d0 0.12761159276595174d0 -0.019731218255494867d0 -0.6534666117199732d0 0.2035771324523077d0 !!!1.77650300477611d0!!!)) but saw ((0.14989366374481017d0 0.6794142879291215d0 ***2.3228005857300897d0*** -1.615833951108472d0 -1.6008862825783456d0 -1.7010935505767397d0 -0.04370959749808691d0 0.12761159276595174d0 -0.019731218255494867d0 -0.6534666117199732d0 0.2035771324523077d0))
Third element in observed (marked with ***) is absent in the reference list. After that, the elements seem to agree pairwise (but offset by one location), until the last element. There the !!! element in the reference list is absent from the expected list.
Cheers,
Mirko