Commit 0fb0effc authored by Liam Healy's avatar Liam Healy

Save test forms with save-test; generate separate files with actual tests

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.
parent 6bb17e91
;; Tests of array functions
;; Liam Healy 2008-10-20 22:41:48EDT array-tests.lisp
;; Time-stamp: <2008-10-20 22:42:46EDT array-tests.lisp>
;; $Id: $
(in-package :gsl)
;;; doesn't work for complex because:
;;; Cannot pass complex scalars to and from GSL functions (structs passed by value).
(generate-all-array-tests
set-all-m+ :no-complex
(letm ((v1 (vector-default 3 t))
(v2 (vector-default 3)))
(set-all v1 (scalar-default 2))
(cl-array (m+ v1 v2))))
;; Definition of GSLL system
;; Liam Healy
;; Time-stamp: <2008-10-13 16:26:01EDT gsll.asd>
;; Time-stamp: <2008-10-20 22:43:24EDT gsll.asd>
;; $Id$
(asdf:defsystem "gsll"
......@@ -41,6 +41,7 @@
(:file "matrix" :depends-on (data vector))
(:file "maref" :depends-on (data vector matrix))
(:file "both" :depends-on (data vector matrix))
(:file "array-tests" :depends-on (both))
(:file "permutation" :depends-on (data))
(:file "combination" ; preload defgeneric
:depends-on (data matrix both permutation))))
......
;; Make tests and examples
;; Liam Healy 2008-09-07 21:00:48EDT generate-tests.lisp
;; Time-stamp: <2008-10-13 16:28:20EDT generate-tests.lisp>
;; Time-stamp: <2008-10-21 22:40:41EDT generate-tests.lisp>
;; $Id: $
(in-package :gsl)
......@@ -9,6 +9,11 @@
;;;; Data pool
;;;;****************************************************************************
(defun numerical-serialize (form)
(if (typep form 'list)
(cons 'list (mapcar #'numerical-serialize form))
form))
;;; (make-test '(legendre-conicalP-half 3.5d0 10.0d0))
(defun make-test (form)
"Make a test for lisp-unit."
......@@ -27,8 +32,8 @@
(mapcar #'make-test forms)))
(defparameter *all-generated-tests* nil)
(defmacro save-tests (name &rest forms)
"Save the each of the tests with the given name."
(defmacro save-test (name &rest forms)
"Save the test with the given name."
`(setf
(getf *all-generated-tests* ',name)
(remove-duplicates
......@@ -43,6 +48,34 @@
`(lisp-unit:define-test ,test-name)
(mapcar #'make-test (getf *all-generated-tests* test-name))))
(defun write-test-to-file (test path)
"Write the test to a file with the same name under path.
Use this function with caution; it will replace an existing
test file and thus the opportunity for regression test will be lost."
(let ((pathname (merge-pathnames (format nil "~(~a~).lisp" test) path))
(*read-default-float-format* 'single-float))
(with-open-file
(stream pathname :direction :output :if-exists :rename)
(format
stream
";; Regression test ~a for GSLL, automatically generated~%~%" test)
(format stream "(in-package :gsl)~%~%")
(format t "Writing test ~a to file ~a~&" test pathname)
(format stream "~s~%~%" (create-test test)))))
;;; This is commented out because it shouldn't be run. It will
;;; regenerate all tests, so there will be no regression tests to
;;; previous versions.
#+(or)
(defun write-tests (path)
"Write all the tests to the appropriate file."
(iter
(for (key val) on *all-generated-tests* by #'cddr)
(write-test-to-file key path)))
#|
;;; Obsolete; to put all tests in one file.
(defun write-tests-to-file (filename)
"Write all the saved tests with expected results to the file."
(with-open-file (stream filename :direction :output :if-exists :supersede)
......@@ -53,7 +86,6 @@
(format t "Writing test ~a to file~&" test-name)
(format stream "~s~%~%" (create-test test-name)))))
#|
(defmacro make-tests (name &rest forms)
(append
`(lisp-unit:define-test ,name)
......@@ -157,19 +189,5 @@
'(vector-default scalar-default)))))
(defmacro generate-all-array-tests (name element-types test)
`(save-tests ,name ,@(generate-all-array-tests-body element-types test)))
`(save-test ,name ,@(generate-all-array-tests-body element-types test)))
#|
(generate-all-array-tests
set-all-m+ :no-complex
(letm ((v1 (vector-default 3 t))
(v2 (vector-default 3)))
(set-all v1 (scalar-default 2))
(cl-array (m+ v1 v2))))
;;; doesn't work for complex because:
;;; Cannot pass complex scalars to and from GSL functions (structs passed by value).
|#
......@@ -49,11 +49,6 @@
always (numerical-equal (aref result1 i j)
(aref result2 i j)))))))))
(defun numerical-serialize (form)
(if (typep form 'list)
(cons 'list (mapcar #'numerical-serialize form))
form))
(defmacro assert-numerical-equal (expected form &rest extras)
(lisp-unit::expand-assert
:equal form form expected extras
......
;; Airy functions
;; Liam Healy, Fri Mar 17 2006 - 18:41
;; Time-stamp: <2008-10-13 10:07:52EDT airy.lisp>
;; Time-stamp: <2008-10-20 22:27:27EDT airy.lisp>
;; $Id$
(in-package :gsl)
......@@ -80,7 +80,7 @@
;;;; Examples and unit test
;;;;****************************************************************************
(save-tests airy
(save-test airy
(airy-ai 2.5d0)
(airy-bi 2.5d0)
(airy-ai-scaled 2.5d0)
......@@ -94,61 +94,6 @@
(airy-zero-ai-deriv 1)
(airy-zero-bi-deriv 1))
#|
(make-tests airy
(airy-ai 2.5d0)
(airy-bi 2.5d0)
(airy-ai-scaled 2.5d0)
(airy-bi-scaled 2.5d0)
(airy-ai-deriv 2.5d0)
(airy-bi-deriv 2.5d0)
(airy-ai-deriv-scaled 2.5d0)
(airy-bi-deriv-scaled 2.5d0)
(airy-zero-ai 1)
(airy-zero-bi 1)
(airy-zero-ai-deriv 1)
(airy-zero-bi-deriv 1))
|#
(LISP-UNIT:DEFINE-TEST AIRY
(LISP-UNIT::ASSERT-NUMERICAL-EQUAL
'(0.01572592338047048d0 2.1573014423586447d-17)
(MULTIPLE-VALUE-LIST (AIRY-AI 2.5d0)))
(LISP-UNIT::ASSERT-NUMERICAL-EQUAL
'(6.48166073846058d0 8.77836191730236d-15)
(MULTIPLE-VALUE-LIST (AIRY-BI 2.5d0)))
(LISP-UNIT::ASSERT-NUMERICAL-EQUAL
'(0.21932220512871203d0 5.966864198455728d-17)
(MULTIPLE-VALUE-LIST (AIRY-AI-SCALED 2.5d0)))
(LISP-UNIT::ASSERT-NUMERICAL-EQUAL
'(0.4647504801960925d0 1.1831869152362144d-16)
(MULTIPLE-VALUE-LIST (AIRY-BI-SCALED 2.5d0)))
(LISP-UNIT::ASSERT-NUMERICAL-EQUAL
'(-0.02625088103590322d0 4.306971270221159d-17)
(MULTIPLE-VALUE-LIST (AIRY-AI-DERIV 2.5d0)))
(LISP-UNIT::ASSERT-NUMERICAL-EQUAL
'(9.421423317334305d0 1.5213125884867257d-14)
(MULTIPLE-VALUE-LIST (AIRY-BI-DERIV 2.5d0)))
(LISP-UNIT::ASSERT-NUMERICAL-EQUAL
'(-0.36610893847516224d0 1.167515239400716d-16)
(MULTIPLE-VALUE-LIST (AIRY-AI-DERIV-SCALED 2.5d0)))
(LISP-UNIT::ASSERT-NUMERICAL-EQUAL
'(0.6755384441644995d0 1.978922049880242d-16)
(MULTIPLE-VALUE-LIST (AIRY-BI-DERIV-SCALED 2.5d0)))
(LISP-UNIT::ASSERT-NUMERICAL-EQUAL
'(-2.338107410459767d0 5.19164136227827d-16)
(MULTIPLE-VALUE-LIST (AIRY-ZERO-AI 1)))
(LISP-UNIT::ASSERT-NUMERICAL-EQUAL
'(-1.173713222709128d0 2.606166888317336d-16)
(MULTIPLE-VALUE-LIST (AIRY-ZERO-BI 1)))
(LISP-UNIT::ASSERT-NUMERICAL-EQUAL
'(-1.018792971647471d0 2.2621748288986134d-16)
(MULTIPLE-VALUE-LIST (AIRY-ZERO-AI-DERIV 1)))
(LISP-UNIT::ASSERT-NUMERICAL-EQUAL
'(-2.294439682614123d0 5.094679528503672d-16)
(MULTIPLE-VALUE-LIST (AIRY-ZERO-BI-DERIV 1))))
#|
;;; Mathematica results
In[4]:= AiryAi[2.5]
......@@ -160,6 +105,3 @@ Out[6]= -0.02625088103590323
In[7]:= AiryBiPrime[2.5]
Out[7]= 9.4214233173343
|#
This diff is collapsed.
;; Clausen function
;; Liam Healy, Sat Mar 18 2006 - 23:18
;; Time-stamp: <2008-10-13 10:04:52EDT clausen.lisp>
;; Time-stamp: <2008-10-20 22:26:30EDT clausen.lisp>
;; $Id$
(in-package :gsl)
......@@ -10,4 +10,4 @@
:documentation ; FDL
"The Clausen integral Cl_2(x).")
(save-tests clausen (clausen 2.5d0))
(save-test clausen (clausen 2.5d0))
;; Coulumb functions
;; Liam Healy, Sat Mar 18 2006 - 23:23
;; Time-stamp: <2008-09-20 22:08:50EDT coulomb.lisp>
;; Time-stamp: <2008-10-21 22:46:00EDT coulomb.lisp>
;; $Id$
(in-package :gsl)
......@@ -127,8 +127,7 @@
;;;; Examples and unit test
;;;;****************************************************************************
#|
(make-tests coulomb
(save-test coulomb
(hydrogenicr-1 1.0d0 2.5d0)
(hydrogenicr 3 1 1.0d0 2.5d0)
(coulomb-wave-FG 0.0d0 1.0d0 2.0d0 0)
......@@ -144,65 +143,3 @@
(coulomb-cl 1.0d0 2.5d0)
(letm ((cl (vector-double-float 3)))
(coulomb-CL-array 0.0d0 1.0d0 cl) (cl-array cl)))
|#
(LISP-UNIT:DEFINE-TEST COULOMB
(LISP-UNIT::ASSERT-NUMERICAL-EQUAL
(LIST 0.1641699972477976d0 1.8226531089715347d-16)
(MULTIPLE-VALUE-LIST (HYDROGENICR-1 1.0d0 2.5d0)))
(LISP-UNIT::ASSERT-NUMERICAL-EQUAL
(LIST 0.07666468084146327d0 4.203054519905891d-16)
(MULTIPLE-VALUE-LIST (HYDROGENICR 3 1 1.0d0 2.5d0)))
(LISP-UNIT::ASSERT-NUMERICAL-EQUAL
(LIST 0.06203505201137388d0 0.17709857491700906d0
3.6050175661599693d0 -5.8282618416439025d0 0.0d0
0.0d0 4.3793707124032857d-16
1.2502291640824433d-15 3.5328525523867457d-14
5.711592064490999d-14)
(MULTIPLE-VALUE-LIST
(COULOMB-WAVE-FG 0.0d0 1.0d0 2.0d0 0)))
(LISP-UNIT::ASSERT-NUMERICAL-EQUAL
(LIST
#(0.6617816138326813d0 0.3614128577450535d0
0.13267757609917497d0))
(MULTIPLE-VALUE-LIST
(LETM ((ARR (VECTOR-DOUBLE-FLOAT 3)))
(COULOMB-WAVE-F-ARRAY 0.0d0 1.0d0 2.0d0 ARR)
(CL-ARRAY ARR))))
(LISP-UNIT::ASSERT-NUMERICAL-EQUAL
(LIST 0.07161779967468254d0 0.1278101031568499d0
2.2510703464871114d0 -1.4245543587641651d0 0.0d0
0.0d0 8.269219937869759d-15
1.4757362807662922d-14 2.5991577338697564d-13
1.644835970887306d-13)
(MULTIPLE-VALUE-LIST
(COULOMB-WAVE-FG 1.0d0 2.0d0 2.5d0 1)))
(LISP-UNIT::ASSERT-NUMERICAL-EQUAL
(LIST
(LIST 0.035021584603913254d0 0.005752500614202263d0
7.116955601984411d-4 6.471726496134135d0
27.57457472159366d0 170.56037293106908d0))
(MULTIPLE-VALUE-LIST
(LETM
((FARR (VECTOR-DOUBLE-FLOAT 3)) (GARR (VECTOR-DOUBLE-FLOAT 3)))
(COULOMB-WAVE-FG-ARRAY 1.5d0 1.0d0 1.0d0 FARR GARR)
(APPEND (COERCE (CL-ARRAY FARR) 'LIST)
(COERCE (CL-ARRAY GARR) 'LIST)))))
(LISP-UNIT::ASSERT-NUMERICAL-EQUAL
(LIST
#(0.33089080691634065d0 0.18070642887252675d0
0.06633878804958748d0))
(MULTIPLE-VALUE-LIST
(LETM ((ARR (VECTOR-DOUBLE-FLOAT 3)))
(COULOMB-WAVE-SPHF-ARRAY 0.0d0 1.0d0 2.0d0 ARR)
(CL-ARRAY ARR))))
(LISP-UNIT::ASSERT-NUMERICAL-EQUAL
(LIST 0.0013809146441856027d0 2.759621819430441d-17)
(MULTIPLE-VALUE-LIST (COULOMB-CL 1.0d0 2.5d0)))
(LISP-UNIT::ASSERT-NUMERICAL-EQUAL
(LIST
#(0.10842251310207264d0 0.05111086283184191d0
0.011428736368066591d0))
(MULTIPLE-VALUE-LIST
(LETM ((CL (VECTOR-DOUBLE-FLOAT 3)))
(COULOMB-CL-ARRAY 0.0d0 1.0d0 CL) (CL-ARRAY CL)))))
;; Coupling coefficients
;; Liam Healy, Sun Mar 19 2006 - 13:30
;; Time-stamp: <2008-02-16 20:02:09EST coupling.lisp>
;; Time-stamp: <2008-10-21 22:48:31EDT coupling.lisp>
;; $Id$
(in-package :gsl)
......@@ -56,20 +56,7 @@ section are declared in the header file gsl_sf_coupling.h.
ja = two_ja/2, ma = two_ma/2, etc.")
;; Check with online calculator http://www-stone.ch.cam.ac.uk/wigner.html
#|
(make-tests coupling
(save-tests coupling
(coupling-3j 0 1 1 0 1 -1)
(coupling-6j 1 1 2 0 2 1)
(coupling-9j 1 1 2 1 2 1 2 1 1))
|#
(LISP-UNIT:DEFINE-TEST COUPLING
(LISP-UNIT::ASSERT-NUMERICAL-EQUAL
(LIST 0.7071067811865475d0 3.14018491736755d-16)
(MULTIPLE-VALUE-LIST (COUPLING-3J 0 1 1 0 1 -1)))
(LISP-UNIT::ASSERT-NUMERICAL-EQUAL
(LIST 0.408248290463863d0 5.438959822042073d-16)
(MULTIPLE-VALUE-LIST (COUPLING-6J 1 1 2 0 2 1)))
(LISP-UNIT::ASSERT-NUMERICAL-EQUAL
(LIST 0.1388888888888889d0 6.638400825147663d-16)
(MULTIPLE-VALUE-LIST (COUPLING-9J 1 1 2 1 2 1 2 1 1))))
;; Dawson function
;; Liam Healy, Sun Mar 19 2006 - 14:31
;; Time-stamp: <2008-02-16 20:04:51EST dawson.lisp>
;; Time-stamp: <2008-10-21 22:49:36EDT dawson.lisp>
;; $Id$
#|
......@@ -18,13 +18,6 @@ gsl_sf_dawson.h.
:documentation ; FDL
"Dawson's integral for x.")
#|
(make-tests dawson
(dawson 1.0d0))
|#
(save-test dawson (dawson 1.0d0))
(LISP-UNIT:DEFINE-TEST DAWSON
(LISP-UNIT::ASSERT-NUMERICAL-EQUAL
(LIST 0.5380795069127684d0 1.424354102650492d-15)
(MULTIPLE-VALUE-LIST (DAWSON 1.0d0))))
;; Deybe functions
;; Liam Healy, Sun Mar 19 2006 - 14:34
;; Time-stamp: <2008-02-16 20:07:26EST debye.lisp>
;; Time-stamp: <2008-10-21 22:55:48EDT debye.lisp>
;; $Id$
#|
......@@ -36,24 +36,9 @@ Stegun, Section 27.1.
"The fourth-order Debye function
D_4(x) = (4/x^4) \int_0^x dt (t^4/(e^t - 1)).")
#|
(make-tests debye
(save-test debye
(debye-1 1.0d0)
(debye-2 1.0d0)
(debye-3 1.0d0)
(debye-4 1.0d0))
|#
(LISP-UNIT:DEFINE-TEST DEBYE
(LISP-UNIT::ASSERT-NUMERICAL-EQUAL
(LIST 0.7775046341122482d0 4.117962028082377d-16)
(MULTIPLE-VALUE-LIST (DEBYE-1 1.0d0)))
(LISP-UNIT::ASSERT-NUMERICAL-EQUAL
(LIST 0.7078784756278294d0 4.948781517277596d-16)
(MULTIPLE-VALUE-LIST (DEBYE-2 1.0d0)))
(LISP-UNIT::ASSERT-NUMERICAL-EQUAL
(LIST 0.6744155640778147d0 5.450931753448871d-16)
(MULTIPLE-VALUE-LIST (DEBYE-3 1.0d0)))
(LISP-UNIT::ASSERT-NUMERICAL-EQUAL
(LIST 0.654874068886737d0 5.769372522202218d-16)
(MULTIPLE-VALUE-LIST (DEBYE-4 1.0d0))))
;; Dilogarithm
;; Liam Healy, Fri Mar 17 2006 - 18:44
;; Time-stamp: <2008-07-10 21:36:14EDT dilogarithm.lisp>
;; Time-stamp: <2008-10-21 22:57:50EDT dilogarithm.lisp>
;; $Id$
(in-package :gsl)
......@@ -20,18 +20,8 @@
:definition :method
:return ((complex (val re) (val im)) (complex (err re) (err im))))
#|
(make-tests dilogarithm
(dilogarithm 1.0d0)
(dilogarithm #c(0.0d0 1.0d0)))
|#
(save-test dilogarithm
(dilogarithm 1.0d0)
(dilogarithm #c(0.0d0 1.0d0)))
(LISP-UNIT:DEFINE-TEST DILOGARITHM
(LISP-UNIT::ASSERT-NUMERICAL-EQUAL
(LIST 1.6449340668482264d0 7.304974700020789d-16)
(MULTIPLE-VALUE-LIST (DILOGARITHM 1.0d0)))
(LISP-UNIT::ASSERT-NUMERICAL-EQUAL
(LIST #C(-0.20561675835602822d0 0.915965594177219d0)
#C(2.100180226255977d-15 7.618282373747058d-16))
(MULTIPLE-VALUE-LIST (DILOGARITHM #C(0.0d0 1.0d0)))))
;; Elementary functions
;; Liam Healy, Mon Mar 20 2006 - 21:43
;; Time-stamp: <2008-02-16 20:22:17EST elementary.lisp>
;; Time-stamp: <2008-10-21 22:58:45EDT elementary.lisp>
;; $Id$
(in-package :gsl)
......@@ -19,17 +19,7 @@
errors dx and dy. The product xy +/- xy \sqrt((dx/x)^2 +(dy/y)^2)
is returned.")
#|
(make-tests elementary
(multiply 3.0d0 2.0d0)
(multiply-err 3.0d0 0.1d0 2.0d0 0.1d0))
|#
(save-test elementary
(multiply 3.0d0 2.0d0)
(multiply-err 3.0d0 0.1d0 2.0d0 0.1d0))
(LISP-UNIT:DEFINE-TEST ELEMENTARY
(LISP-UNIT::ASSERT-NUMERICAL-EQUAL
(LIST 6.0d0 2.6645352591003757d-15)
(MULTIPLE-VALUE-LIST (MULTIPLY 3.0d0 2.0d0)))
(LISP-UNIT::ASSERT-NUMERICAL-EQUAL
(LIST 6.0d0 0.5000000000000027d0)
(MULTIPLE-VALUE-LIST
(MULTIPLY-ERR 3.0d0 0.1d0 2.0d0 0.1d0))))
;; Jacobian elliptic functions
;; Liam Healy, Mon Mar 20 2006 - 22:21
;; Time-stamp: <2008-03-27 21:29:35EDT elliptic-functions.lisp>
;; Time-stamp: <2008-10-21 23:08:02EDT elliptic-functions.lisp>
;; $Id$
(in-package :gsl)
......@@ -25,11 +25,9 @@
;;; ;;;error
#|
(make-tests elliptic-functions
(jacobian-elliptic-functions 0.2d0 0.81d0)
(jacobian-elliptic-functions 0.61802d0 1.5d0))
|#
(save-test elliptic-functions
(jacobian-elliptic-functions 0.2d0 0.81d0)
(jacobian-elliptic-functions 0.61802d0 1.5d0))
(LISP-UNIT:DEFINE-TEST ELLIPTIC-FUNCTIONS
(LISP-UNIT::ASSERT-NUMERICAL-EQUAL
......
;; Elliptic integrals
;; Liam Healy, Mon Mar 20 2006 - 21:50
;; Time-stamp: <2008-08-10 17:55:35EDT elliptic-integrals.lisp>
;; Time-stamp: <2008-10-21 23:08:00EDT elliptic-integrals.lisp>
;; $Id$
(in-package :gsl)
......@@ -90,8 +90,7 @@
;;;; Examples and unit test
;;;;****************************************************************************
#|
(make-tests elliptic-integrals
(save-test elliptic-integrals
(elliptic-integral-K-complete 0.0d0)
(elliptic-integral-E-complete 0.0d0)
(elliptic-integral-F -0.5d0 2.0d0)
......@@ -102,46 +101,4 @@
(elliptic-integral-RD 2.0d0 1.0d0 1.0d0)
(elliptic-integral-RF 2.0d0 1.0d0 1.0d0)
(elliptic-integral-RJ 2.0d0 1.0d0 1.0d0 2.0d0))
|#
(LISP-UNIT:DEFINE-TEST ELLIPTIC-INTEGRALS
(LISP-UNIT::ASSERT-NUMERICAL-EQUAL
(LIST 1.5707963267948966d0 4.598091522633788d-16)
(MULTIPLE-VALUE-LIST
(ELLIPTIC-INTEGRAL-K-COMPLETE 0.0d0)))
(LISP-UNIT::ASSERT-NUMERICAL-EQUAL
(LIST 1.5707963267948966d0 3.487868498008632d-16)
(MULTIPLE-VALUE-LIST
(ELLIPTIC-INTEGRAL-E-COMPLETE 0.0d0)))
(LISP-UNIT::ASSERT-NUMERICAL-EQUAL
(LIST -0.6774175382039307d0 3.008338192795582d-16)
(MULTIPLE-VALUE-LIST
(ELLIPTIC-INTEGRAL-F -0.5d0 2.0d0)))
(LISP-UNIT::ASSERT-NUMERICAL-EQUAL
(LIST -0.4018194805534952d0 4.232239429377521d-16)
(MULTIPLE-VALUE-LIST
(ELLIPTIC-INTEGRAL-E -0.5d0 2.0d0)))
(LISP-UNIT::ASSERT-NUMERICAL-EQUAL
(LIST -0.617791316339182d0 1.6365659051690947d-16)
(MULTIPLE-VALUE-LIST
(ELLIPTIC-INTEGRAL-P -0.5d0 2.0d0 1.0d0)))
(LISP-UNIT::ASSERT-NUMERICAL-EQUAL
(LIST -0.06889951441260889d0 3.059753091454848d-17)
(MULTIPLE-VALUE-LIST
(ELLIPTIC-INTEGRAL-D -0.5d0 2.0d0 1.0d0)))
(LISP-UNIT::ASSERT-NUMERICAL-EQUAL
(LIST 0.8813735870195432d0 1.9570424992111216d-16)
(MULTIPLE-VALUE-LIST
(ELLIPTIC-INTEGRAL-RC 2.0d0 1.0d0)))
(LISP-UNIT::ASSERT-NUMERICAL-EQUAL
(LIST 0.7992599630303281d0 1.7747136272346433d-16)
(MULTIPLE-VALUE-LIST
(ELLIPTIC-INTEGRAL-RD 2.0d0 1.0d0 1.0d0)))
(LISP-UNIT::ASSERT-NUMERICAL-EQUAL
(LIST 0.8813735870195432d0 1.9570424992111216d-16)
(MULTIPLE-VALUE-LIST
(ELLIPTIC-INTEGRAL-RF 2.0d0 1.0d0 1.0d0)))
(LISP-UNIT::ASSERT-NUMERICAL-EQUAL
(LIST 0.5228004174989865d0 1.160850121582039d-16)
(MULTIPLE-VALUE-LIST
(ELLIPTIC-INTEGRAL-RJ 2.0d0 1.0d0 1.0d0 2.0d0))))
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment