diff --git a/numerical-differentiation.lisp b/numerical-differentiation.lisp
index 805c86ee536ecdda03e4c2136ade97056c97926c..f36d4bcd0084c5529fcf0b1dd3954b515c730da8 100644
--- a/numerical-differentiation.lisp
+++ b/numerical-differentiation.lisp
@@ -1,6 +1,6 @@
 ;; Numerical differentiation.                
 ;; Liam Healy Mon Nov 12 2007 - 22:07
-;; Time-stamp: <2008-02-17 18:36:19EST numerical-differentiation.lisp>
+;; Time-stamp: <2008-09-20 18:23:28EDT numerical-differentiation.lisp>
 ;; $Id$
 
 (in-package :gsl)
@@ -68,19 +68,133 @@
 
 ;;;; Examples and unit test
 
-;;; This is the example given in the GSL manual, Sec. 27.2.
-(defun-single 3/2-power (x) (expt x 3/2))
-;;; (3/2-power 2.0d0)
+;;; Examples from gsl-1.11/deriv/test.c
+
+(defun-single deriv-f1 (x) (exp x))
+(defun deriv-f1-d (x) (exp x))
+(defun-single deriv-f2 (x) (if (not (minusp x)) (expt x 3/2) 0.0d0))
+(defun deriv-f2-d (x) (if (not (minusp x)) (* 3/2 (sqrt x)) 0.0d0))
+(defun-single deriv-f3 (x) (if (not (zerop x)) (sin (/ x)) 0.0d0))
+(defun deriv-f3-d (x) (if (not (zerop x)) (/ (- (cos (/ x))) (expt x 2)) 0.0d0))
+(defun-single deriv-f4 (x) (exp (- (expt x 2))))
+(defun deriv-f4-d (x) (* -2 x (exp (- (expt x 2)))))
+(defun-single deriv-f5 (x) (expt x 2))
+(defun deriv-f5-d (x) (* 2 x))
+(defun-single deriv-f6 (x) (/ x))
+(defun deriv-f6-d (x) (- (expt x -2)))
+
+(central-derivative deriv-f1 1.0d0 1.0d-4)
+(forward-derivative deriv-f1 1.0d0 1.0d-4)
+(backward-derivative deriv-f1 1.0d0 1.0d-4)
+(central-derivative deriv-f2 0.1d0 1.0d-4)
+(forward-derivative deriv-f2 0.1d0 1.0d-4)
+(backward-derivative deriv-f2 0.1d0 1.0d-4)
+(central-derivative deriv-f3 0.45d0 1.0d-4)
+(forward-derivative deriv-f3 0.45d0 1.0d-4)
+(backward-derivative deriv-f3 0.45d0 1.0d-4)
+(central-derivative deriv-f4 0.5d0 1.0d-4)
+(forward-derivative deriv-f4 0.5d0 1.0d-4)
+(backward-derivative deriv-f4 0.5d0 1.0d-4)
+(central-derivative deriv-f5 0.0d0 1.0d-4)
+(forward-derivative deriv-f5 0.0d0 1.0d-4)
+(backward-derivative deriv-f5 0.0d0 1.0d-4)
+(central-derivative deriv-f6 10.0d0 1.0d-4)
+(forward-derivative deriv-f6 10.0d0 1.0d-4)
+(backward-derivative deriv-f6 10.0d0 1.0d-4)
 
 #|
 (make-tests numerical-differentiation
-   ;; Compare to (* 3/2 (sqrt 2.0d0))
-  (central-derivative 3/2-power 2.0d0 1.d-8))
+	    (central-derivative deriv-f1 1.0d0 1.0d-4)
+	    (forward-derivative deriv-f1 1.0d0 1.0d-4)
+	    (backward-derivative deriv-f1 1.0d0 1.0d-4)
+	    (central-derivative deriv-f2 0.1d0 1.0d-4)
+	    (forward-derivative deriv-f2 0.1d0 1.0d-4)
+	    (backward-derivative deriv-f2 0.1d0 1.0d-4)
+	    (central-derivative deriv-f3 0.45d0 1.0d-4)
+	    (forward-derivative deriv-f3 0.45d0 1.0d-4)
+	    (backward-derivative deriv-f3 0.45d0 1.0d-4)
+	    (central-derivative deriv-f4 0.5d0 1.0d-4)
+	    (forward-derivative deriv-f4 0.5d0 1.0d-4)
+	    (backward-derivative deriv-f4 0.5d0 1.0d-4)
+	    (central-derivative deriv-f5 0.0d0 1.0d-4)
+	    (forward-derivative deriv-f5 0.0d0 1.0d-4)
+	    (backward-derivative deriv-f5 0.0d0 1.0d-4)
+	    (central-derivative deriv-f6 10.0d0 1.0d-4)
+	    (forward-derivative deriv-f6 10.0d0 1.0d-4)
+	    (backward-derivative deriv-f6 10.0d0 1.0d-4))
 |#
 
 (LISP-UNIT:DEFINE-TEST NUMERICAL-DIFFERENTIATION
   (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 2.121320312002221d0 4.0642813729715275d-7)
+   (LIST 2.718281828441488 4.123659913167868e-10)
+   (MULTIPLE-VALUE-LIST
+    (CENTRAL-DERIVATIVE DERIV-F1 1.0 1.e-4)))
+  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
+   (LIST 2.7182817825298398 9.540320743340577e-7)
+   (MULTIPLE-VALUE-LIST
+    (FORWARD-DERIVATIVE DERIV-F1 1.0 1.e-4)))
+  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
+   (LIST 2.7182818293827378 9.086969640080628e-7)
+   (MULTIPLE-VALUE-LIST
+    (BACKWARD-DERIVATIVE DERIV-F1 1.0 1.e-4)))
+  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
+   (LIST 0.474341649024533 3.3922603135575853e-11)
+   (MULTIPLE-VALUE-LIST
+    (CENTRAL-DERIVATIVE DERIV-F2 0.1 1.e-4)))
+  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
+   (LIST 0.47434164943235285 9.102230432046565e-8)
+   (MULTIPLE-VALUE-LIST
+    (FORWARD-DERIVATIVE DERIV-F2 0.1 1.e-4)))
+  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
+   (LIST 0.4743416462049176 8.787851752748856e-8)
+   (MULTIPLE-VALUE-LIST
+    (BACKWARD-DERIVATIVE DERIV-F2 0.1 1.e-4)))
+  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
+   (LIST 2.9941773945923913 6.730277498876722e-10)
+   (MULTIPLE-VALUE-LIST
+    (CENTRAL-DERIVATIVE DERIV-F3 0.45 1.e-4)))
+  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
+   (LIST 2.994177385772526 1.6952086150997503e-6)
+   (MULTIPLE-VALUE-LIST
+    (FORWARD-DERIVATIVE DERIV-F3 0.45 1.e-4)))
+  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
+   (LIST 2.9941775182635064 1.568063267060477e-6)
+   (MULTIPLE-VALUE-LIST
+    (BACKWARD-DERIVATIVE DERIV-F3 0.45 1.e-4)))
+  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
+   (LIST -0.7788007830653751 1.7227267499194736e-10)
+   (MULTIPLE-VALUE-LIST
+    (CENTRAL-DERIVATIVE DERIV-F4 0.5 1.e-4)))
+  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
+   (LIST -0.7788007884386108 2.530006603059119e-7)
+   (MULTIPLE-VALUE-LIST
+    (FORWARD-DERIVATIVE DERIV-F4 0.5 1.e-4)))
+  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
+   (LIST -0.7788007743421791 2.503617930568489e-7)
+   (MULTIPLE-VALUE-LIST
+    (BACKWARD-DERIVATIVE DERIV-F4 0.5 1.e-4)))
+  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
+   (LIST 0.0 6.66133814775094e-20)
+   (MULTIPLE-VALUE-LIST
+    (CENTRAL-DERIVATIVE DERIV-F5 0.0 1.e-4)))
+  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
+   (LIST -2.6337311035821125e-26 1.606762230663824e-11)
+   (MULTIPLE-VALUE-LIST
+    (FORWARD-DERIVATIVE DERIV-F5 0.0 1.e-4)))
+  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
+   (LIST 2.6337311035821125e-26 1.606762230663824e-11)
+   (MULTIPLE-VALUE-LIST
+    (BACKWARD-DERIVATIVE DERIV-F5 0.0 1.e-4)))
+  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
+   (LIST -0.009999999999871223 2.6645352591887814e-12)
+   (MULTIPLE-VALUE-LIST
+    (CENTRAL-DERIVATIVE DERIV-F6 10.0 1.e-4)))
+  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
+   (LIST -0.010000000266238856 4.9950606958271945e-9)
+   (MULTIPLE-VALUE-LIST
+    (FORWARD-DERIVATIVE DERIV-F6 10.0 1.e-4)))
+  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
+   (LIST -0.010000000076196142 4.641550044799095e-9)
    (MULTIPLE-VALUE-LIST
-    (CENTRAL-DERIVATIVE 3/2-POWER 2.0d0 1.d-8))))
+    (BACKWARD-DERIVATIVE DERIV-F6 10.0 1.e-4))))
 
diff --git a/numerical-integration.lisp b/numerical-integration.lisp
index d3021e71fadacb93573864b87b43787a357e54f2..b2e163190c468e48ed4b76b2a309d0affbd2d583 100644
--- a/numerical-integration.lisp
+++ b/numerical-integration.lisp
@@ -1,6 +1,6 @@
 ;; Numerical integration
 ;; Liam Healy, Wed Jul  5 2006 - 23:14
-;; Time-stamp: <2008-09-14 21:55:47EDT numerical-integration.lisp>
+;; Time-stamp: <2008-09-16 22:43:59EDT numerical-integration.lisp>
 ;; $Id$
 
 ;;; To do: QAWS, QAWO, QAWF, more tests
@@ -50,7 +50,7 @@
 
 (defmfun integration-workspace-free (pointer)
   "gsl_integration_workspace_free"
-  ((mpointer :pointer))
+  ((pointer :pointer))
   :c-return :void
   :export nil
   :index (letm integration-workspace)
@@ -234,6 +234,8 @@
   (letm ((ws (integration-workspace 20)))
      (integration-QAG one-sine 0.0d0 pi :gauss15 50 ws)))
 
+|#
+
 (LISP-UNIT:DEFINE-TEST NUMERICAL-INTEGRATION
   (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
    (LIST 2.0d0 2.220446049250313d-14 21)
@@ -249,5 +251,3 @@
    'GSL-CONDITION
    (LETM ((WS (INTEGRATION-WORKSPACE 20)))
      (INTEGRATION-QAG ONE-SINE 0.0d0 PI :GAUSS15 50 WS))))
-
-|#
diff --git a/random/beta.lisp b/random/beta.lisp
index b135c9229c522f56134e9de1d3da0f5093705d60..21efdd302783eab512672026c9d74efe14212af5 100644
--- a/random/beta.lisp
+++ b/random/beta.lisp
@@ -1,6 +1,6 @@
 ;; Beta distribution
 ;; Liam Healy, Sat Sep 30 2006
-;; Time-stamp: <2008-02-17 13:18:37EST beta.lisp>
+;; Time-stamp: <2008-09-20 21:20:32EDT beta.lisp>
 ;; $Id$
 
 (in-package :gsl)
@@ -68,29 +68,30 @@
 (LISP-UNIT:DEFINE-TEST BETA
   (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
    (LIST
-    (LIST 8.390009419017379d-5 0.024211646813900284d0
-	  0.045507713472575685d0 0.30321144534029304d0
-	  0.5693572151110255d0 0.5146515206667992d0
-	  0.230096194772543d0 0.3928348825648452d0
-	  0.5143874122537551d0 0.2337836858050161d0
-	  0.19851288668620246d0))
+    (LIST 0.3935474359990073 0.7063621551518341
+	  0.044515648447265056 0.09286083229785232
+	  0.210544366728104 0.010114317425185686
+	  0.4595767375719009 0.1515157002550483
+	  0.1731331145031117 0.4270743075655188
+	  0.3353314142479658))
    (MULTIPLE-VALUE-LIST
     (LETM ((RNG (RANDOM-NUMBER-GENERATOR *MT19937* 0)))
       (LOOP FOR I FROM 0 TO 10 COLLECT
-	    (BETA-RD RNG 1.0d0 2.0d0)))))
+	   (BETA-RD RNG 1.0 2.0)))))
   (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 1.8000000000000016d0)
-   (MULTIPLE-VALUE-LIST (BETA-PDF 0.1d0 1.0d0 2.0d0)))
+   (LIST 1.8000000000000016)
+   (MULTIPLE-VALUE-LIST (BETA-PDF 0.1 1.0 2.0)))
   (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.19000000000000017d0)
-   (MULTIPLE-VALUE-LIST (BETA-P 0.1d0 1.0d0 2.0d0)))
+   (LIST 0.19000000000000017)
+   (MULTIPLE-VALUE-LIST (BETA-P 0.1 1.0 2.0)))
   (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.8099999999999998d0)
-   (MULTIPLE-VALUE-LIST (BETA-Q 0.1d0 1.0d0 2.0d0)))
+   (LIST 0.8099999999999998)
+   (MULTIPLE-VALUE-LIST (BETA-Q 0.1 1.0 2.0)))
   (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.09999999999999988d0)
-   (MULTIPLE-VALUE-LIST (BETA-PINV 0.19d0 1.0d0 2.0d0)))
+   (LIST 0.09999999999999992)
+   (MULTIPLE-VALUE-LIST (BETA-PINV 0.19 1.0 2.0)))
   (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.09999999999999987d0)
-   (MULTIPLE-VALUE-LIST (BETA-QINV 0.81d0 1.0d0 2.0d0))))
+   (LIST 0.09999999999999988)
+   (MULTIPLE-VALUE-LIST (BETA-QINV 0.81 1.0 2.0))))
+
 
diff --git a/random/chi-squared.lisp b/random/chi-squared.lisp
index 434319cfea7d4bfa699f62e08c64ef75548697da..0e34fe6b3e1b7e1c39c357432d65350b42796942 100644
--- a/random/chi-squared.lisp
+++ b/random/chi-squared.lisp
@@ -1,6 +1,6 @@
 ;; Chi-squared distribution
 ;; Liam Healy, Sat Oct  7 2006 - 16:13
-;; Time-stamp: <2008-02-17 13:12:43EST chi-squared.lisp>
+;; Time-stamp: <2008-09-20 21:23:34EDT chi-squared.lisp>
 ;; $Id$
 
 (in-package :gsl)
@@ -68,31 +68,32 @@
 (LISP-UNIT:DEFINE-TEST CHI-SQUARED
   (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
    (LIST
-    (LIST 9.190439057230117d0 3.9593845312309113d0
-	  5.434933385075541d0 13.023107419896268d0
-	  13.670690841729192d0 6.982359715352029d0
-	  13.75663972164132d0 11.359458045417648d0
-	  16.06828259064875d0 12.999514252538129d0
-	  11.147347424355443d0))
+    (LIST 13.043328884186328 11.427227829236712
+	  16.55811815484942 7.128795406995407
+	  5.120266499239882 10.464572605669142
+	  5.8126929867006405 8.784940866479005
+	  7.559275305609187 8.35181083950897
+	  4.140798004825149))
    (MULTIPLE-VALUE-LIST
     (LETM ((RNG (RANDOM-NUMBER-GENERATOR *MT19937* 0)))
       (LOOP FOR I FROM 0 TO 10 COLLECT
-	    (CHI-SQUARED RNG 10.0d0)))))
+	   (CHI-SQUARED RNG 10.0)))))
   (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.43939128946772227d0)
-   (MULTIPLE-VALUE-LIST (CHI-SQUARED-PDF 0.5d0 1.0d0)))
+   (LIST 0.43939128946772227)
+   (MULTIPLE-VALUE-LIST (CHI-SQUARED-PDF 0.5 1.0)))
   (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.5204998778130462d0)
-   (MULTIPLE-VALUE-LIST (CHI-SQUARED-P 0.5d0 1.0d0)))
+   (LIST 0.5204998778130462)
+   (MULTIPLE-VALUE-LIST (CHI-SQUARED-P 0.5 1.0)))
   (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.4795001221869538d0)
-   (MULTIPLE-VALUE-LIST (CHI-SQUARED-Q 0.5d0 1.0d0)))
+   (LIST 0.4795001221869538)
+   (MULTIPLE-VALUE-LIST (CHI-SQUARED-Q 0.5 1.0)))
   (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.5000000000000003d0)
+   (LIST 0.5000000000000003)
    (MULTIPLE-VALUE-LIST
-    (CHI-SQUARED-PINV 0.5204998778130463d0 1.0d0)))
+    (CHI-SQUARED-PINV 0.5204998778130463 1.0)))
   (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.5000000000000003d0)
+   (LIST 0.5000000000000003)
    (MULTIPLE-VALUE-LIST
-    (CHI-SQUARED-QINV 0.4795001221869537d0 1.0d0))))
+    (CHI-SQUARED-QINV 0.4795001221869537 1.0))))
+
 
diff --git a/random/dirichlet.lisp b/random/dirichlet.lisp
index 529e1e7264b53066718b44f172848c6fd9af2f77..492539651b6475d0fc470f7081677ef4caefa762 100644
--- a/random/dirichlet.lisp
+++ b/random/dirichlet.lisp
@@ -1,6 +1,6 @@
 ;; Dirichlet distribution
 ;; Liam Healy, Sun Oct 29 2006
-;; Time-stamp: <2008-09-14 22:08:40EDT dirichlet.lisp>
+;; Time-stamp: <2008-09-20 21:24:25EDT dirichlet.lisp>
 ;; $Id$
 
 (in-package :gsl)
@@ -73,26 +73,27 @@
 (LISP-UNIT:DEFINE-TEST DIRICHLET
   (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
    (LIST
-    #(3.9283332456352124d-5 0.468176310887376d0
-      0.34075044031099977d0 0.19103396546916782d0))
+    #(0.12448073544131681 0.19182353706734917
+      0.46054388544826397 0.22315184204307006))
    (MULTIPLE-VALUE-LIST
     (LETM
 	((RNG (RANDOM-NUMBER-GENERATOR *MT19937* 0))
-	 (ALPHA (VECTOR-DOUBLE-FLOAT (A 1.0d0 2.0d0 3.0d0 4.0d0)))
+	 (ALPHA (VECTOR-DOUBLE-FLOAT (A 1.0 2.0 3.0 4.0)))
 	 (THETA (VECTOR-DOUBLE-FLOAT 4)))
       (DIRICHLET RNG ALPHA THETA) (CL-ARRAY THETA))))
   (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 2.8800000000000043d0)
+   (LIST 2.8800000000000043)
    (MULTIPLE-VALUE-LIST
     (LETM
-	((ALPHA (VECTOR-DOUBLE-FLOAT (A 1.0d0 2.0d0 3.0d0 4.0d0)))
-	 (THETA (VECTOR-DOUBLE-FLOAT (A 0.1d0 0.3d0 0.4d0 0.2d0))))
+	((ALPHA (VECTOR-DOUBLE-FLOAT (A 1.0 2.0 3.0 4.0)))
+	 (THETA (VECTOR-DOUBLE-FLOAT (A 0.1 0.3 0.4 0.2))))
       (DIRICHLET-PDF ALPHA THETA))))
   (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 1.057790294147856d0)
+   (LIST 1.057790294147856)
    (MULTIPLE-VALUE-LIST
     (LETM
-	((ALPHA (VECTOR-DOUBLE-FLOAT (A 1.0d0 2.0d0 3.0d0 4.0d0)))
-	 (THETA (VECTOR-DOUBLE-FLOAT (A 0.1d0 0.3d0 0.4d0 0.2d0))))
+	((ALPHA (VECTOR-DOUBLE-FLOAT (A 1.0 2.0 3.0 4.0)))
+	 (THETA (VECTOR-DOUBLE-FLOAT (A 0.1 0.3 0.4 0.2))))
       (DIRICHLET-LOG-PDF ALPHA THETA)))))
 
+
diff --git a/random/fdist.lisp b/random/fdist.lisp
index a3f40e7ba1fe011c1458dd288291a23e968e190d..8d1458d950807fd6f2c1530f589b6c9cdd96777b 100644
--- a/random/fdist.lisp
+++ b/random/fdist.lisp
@@ -1,6 +1,6 @@
 ;; Fdist distribution
 ;; Liam Healy, Sat Sep 30 2006
-;; Time-stamp: <2008-02-17 13:14:44EST fdist.lisp>
+;; Time-stamp: <2008-09-20 21:25:00EDT fdist.lisp>
 ;; $Id$
 
 (in-package :gsl)
@@ -76,31 +76,33 @@
 (LISP-UNIT:DEFINE-TEST FDIST
   (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
    (LIST
-    (LIST 103.77423336538772d0 2.124850132212401d0
-	  0.3044106947086728d0 0.30018868738752463d0
-	  0.0011228206844788875d0 0.29210940078495257d0
-	  0.0635729092565007d0 0.4779663652167387d0
-	  0.03472116760794376d0 0.4869748230412714d0
-	  2.531794516961295d0))
+    (LIST 18.411308904958695 5.120881381831058
+	  18.104535265974707 0.15934280606960227
+	  0.06272171507636773 2.2809441726456456
+	  0.5259458753395939 1.8256109001076744
+	  0.845346894458977 2.5212086970057763
+	  0.5212415547032052))
    (MULTIPLE-VALUE-LIST
     (LETM ((RNG (RANDOM-NUMBER-GENERATOR *MT19937* 0)))
       (LOOP FOR I FROM 0 TO 10 COLLECT
-	    (FDIST RNG 1.0d0 2.0d0)))))
+	   (FDIST RNG 1.0 2.0)))))
   (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.1594719884624466d0)
-   (MULTIPLE-VALUE-LIST (FDIST-PDF 1.2d0 1.0d0 2.0d0)))
+   (LIST 0.1594719884624466)
+   (MULTIPLE-VALUE-LIST (FDIST-PDF 1.2 1.0 2.0)))
   (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.6123724356957948d0)
-   (MULTIPLE-VALUE-LIST (FDIST-P 1.2d0 1.0d0 2.0d0)))
+   (LIST 0.6123724356957948)
+   (MULTIPLE-VALUE-LIST (FDIST-P 1.2 1.0 2.0)))
   (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.3876275643042052d0)
-   (MULTIPLE-VALUE-LIST (FDIST-Q 1.2d0 1.0d0 2.0d0)))
+   (LIST 0.3876275643042052)
+   (MULTIPLE-VALUE-LIST (FDIST-Q 1.2 1.0 2.0)))
+  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL (LIST 1.2)
+				     (MULTIPLE-VALUE-LIST
+				      (FDIST-PINV
+				       0.612372435695795
+				       1.0 2.0)))
   (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 1.200000000000001d0)
+   (LIST 1.1999999999999995)
    (MULTIPLE-VALUE-LIST
-    (FDIST-PINV 0.612372435695795d0 1.0d0 2.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 1.2000000000000006d0)
-   (MULTIPLE-VALUE-LIST
-    (FDIST-QINV 0.38762756430420503d0 1.0d0 2.0d0))))
+    (FDIST-QINV 0.38762756430420503 1.0 2.0))))
+
 
diff --git a/random/gamma.lisp b/random/gamma.lisp
index 7f1bd758f2a5eb367065315796110ead75ca8b7a..37ebaa592e30ef474d56666c3028e5afde377bc9 100644
--- a/random/gamma.lisp
+++ b/random/gamma.lisp
@@ -1,6 +1,6 @@
 ;; Gamma distribution
 ;; Liam Healy, Sat Sep 30 2006
-;; Time-stamp: <2008-02-17 13:10:14EST gamma.lisp>
+;; Time-stamp: <2008-09-20 21:25:37EDT gamma.lisp>
 ;; $Id$
 
 (in-package :gsl)
@@ -80,45 +80,46 @@
 |#
 
 (LISP-UNIT:DEFINE-TEST GAMMA-RANDIST
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST
-    (LIST 5.165688917678959d-4 3.6291162855975294d0
-	  2.5273196108679516d0 0.10848774504124709d0
-	  2.9249988468316213d0 1.4473215859071986d0
-	  0.08690724899367205d0 0.590607841809058d0
-	  1.2322105878131593d0 0.6023372667078228d0
-	  0.5490215963871072d0))
-   (MULTIPLE-VALUE-LIST
-    (LETM ((RNG (RANDOM-NUMBER-GENERATOR *MT19937* 0)))
-      (LOOP FOR I FROM 0 TO 10 COLLECT
-	    (GAMMA-RD RNG 1.0d0 2.0d0)))))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST
-    (LIST 2.6001378761310767d0 2.5222666954201554d0
-	  7.731422092125877d0 4.227279926486253d0
-	  0.09519304347489156d0 0.5710920106874436d0
-	  0.8910637719460512d0 0.8263221202545431d0
-	  3.1830665720573026d0 0.0038084003613199297d0
-	  1.0320117334083205d0))
-   (MULTIPLE-VALUE-LIST
-    (LETM ((RNG (RANDOM-NUMBER-GENERATOR *MT19937* 0)))
-      (LOOP FOR I FROM 0 TO 10 COLLECT
-	    (GAMMA-MT RNG 1.0d0 2.0d0)))))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.475614712250357d0)
-   (MULTIPLE-VALUE-LIST (GAMMA-PDF 0.1d0 1.0d0 2.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.04877057549928599d0)
-   (MULTIPLE-VALUE-LIST (GAMMA-P 0.1d0 1.0d0 2.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.951229424500714d0)
-   (MULTIPLE-VALUE-LIST (GAMMA-Q 0.1d0 1.0d0 2.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.10000000000000006d0)
-   (MULTIPLE-VALUE-LIST
-    (GAMMA-PINV 0.048770575499286005d0 1.0d0 2.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.10000000000000003d0)
-   (MULTIPLE-VALUE-LIST
-    (GAMMA-QINV 0.951229424500714d0 1.0d0 2.0d0))))
+                       (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
+                        (LIST
+                         (LIST 3.012983063768798 2.216796987787054
+                               5.033971231985026 0.6152002566487763
+                               0.1876159751197978 1.7884608326846099
+                               0.30812625873110316 1.1328459017528132
+                               0.7363931539298727 0.9843618987581162
+                               0.06871686155296197))
+                        (MULTIPLE-VALUE-LIST
+                         (LETM ((RNG (RANDOM-NUMBER-GENERATOR *MT19937* 0)))
+                               (LOOP FOR I FROM 0 TO 10 COLLECT
+                                     (GAMMA-RD RNG 1.0 2.0)))))
+                       (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
+                        (LIST
+                         (LIST 3.012983063768798 2.216796987787054
+                               5.033971231985026 0.6152002566487763
+                               0.1876159751197978 1.7884608326846099
+                               0.30812625873110316 1.1328459017528132
+                               0.7363931539298727 0.9843618987581162
+                               0.06871686155296197))
+                        (MULTIPLE-VALUE-LIST
+                         (LETM ((RNG (RANDOM-NUMBER-GENERATOR *MT19937* 0)))
+                               (LOOP FOR I FROM 0 TO 10 COLLECT
+                                     (GAMMA-MT RNG 1.0 2.0)))))
+                       (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
+                        (LIST 0.475614712250357)
+                        (MULTIPLE-VALUE-LIST (GAMMA-PDF 0.1 1.0 2.0)))
+                       (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
+                        (LIST 0.04877057549928599)
+                        (MULTIPLE-VALUE-LIST (GAMMA-P 0.1 1.0 2.0)))
+                       (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
+                        (LIST 0.951229424500714)
+                        (MULTIPLE-VALUE-LIST (GAMMA-Q 0.1 1.0 2.0)))
+                       (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
+                        (LIST 0.10000000000000006)
+                        (MULTIPLE-VALUE-LIST
+                         (GAMMA-PINV 0.048770575499286005 1.0 2.0)))
+                       (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
+                        (LIST 0.10000000000000003)
+                        (MULTIPLE-VALUE-LIST
+                         (GAMMA-QINV 0.951229424500714 1.0 2.0))))
+
 
diff --git a/random/gaussian.lisp b/random/gaussian.lisp
index 0de8401ae5835c6ae43d7b7edc04ab4ec197d41d..b46530c6dd1927885d489cad1a41855f12cdc3bb 100644
--- a/random/gaussian.lisp
+++ b/random/gaussian.lisp
@@ -1,6 +1,6 @@
 ;; Gaussian distribution
 ;; Liam Healy, Sun Jul 16 2006 - 22:09
-;; Time-stamp: <2008-02-17 12:23:52EST gaussian.lisp>
+;; Time-stamp: <2008-09-20 21:28:07EDT gaussian.lisp>
 ;; $Id$
 
 (in-package :gsl)
@@ -148,40 +148,43 @@
 (LISP-UNIT:DEFINE-TEST GAUSSIAN
   (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
    (LIST
-    (LIST 1.3391860811867589d0 -0.8810099183143839d0
-	  16.744084062537738d0 7.336411072925795d0
-	  9.975246316020124d0 -12.775020810027664d0
-	  -23.967152827332075d0 -6.79280164729211d0
-	  -0.3909131843358723d0 8.935555455208181d0
-	  -0.17647794589783283d0))
+    (LIST 1.3391860811867589 -0.8810099183143839
+	  16.744084062537738 7.336411072925795
+	  9.975246316020124 -12.775020810027664
+	  -23.967152827332075 -6.79280164729211
+	  -0.3909131843358723 8.935555455208181
+	  -0.17647794589783283))
    (MULTIPLE-VALUE-LIST
     (LETM ((RNG (RANDOM-NUMBER-GENERATOR *MT19937* 0)))
       (LOOP FOR I FROM 0 TO 10 COLLECT
-	    (GAUSSIAN RNG 10.0d0)))))
+	   (GAUSSIAN RNG 10.0)))))
   (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.039894228040143274d0)
-   (MULTIPLE-VALUE-LIST (GAUSSIAN-PDF 0.0d0 10.0d0)))
+   (LIST 0.039894228040143274)
+   (MULTIPLE-VALUE-LIST (GAUSSIAN-PDF 0.0 10.0)))
   (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
    (LIST
-    (LIST 6.107926637756835d0 -15.764917894916914d0
-	  -7.200971392533084d0 19.5115024682162d0
-	  5.248202921580308d0 10.408510262302668d0
-	  -14.333242326151595d0 0.9455088719230575d0
-	  -11.120343985926329d0 -3.0791957427954d0
-	  -2.090680773068803d0))
+    (LIST 7.648734260124924 -11.307312946196086
+	  4.523361654215173 -4.5181725947577185
+	  13.64676540828912 3.553650119391929
+	  -5.567035948404032 10.097727863788887
+	  2.519120940798607 -9.024585521868676
+	  -9.463283369593537))
    (MULTIPLE-VALUE-LIST
     (LETM ((RNG (RANDOM-NUMBER-GENERATOR *MT19937* 0)))
       (LOOP FOR I FROM 0 TO 10 COLLECT
-	    (GAUSSIAN-ZIGGURAT RNG 10.0d0)))))
+	   (GAUSSIAN-ZIGGURAT RNG 10.0)))))
   (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.9772498680518208d0)
-   (MULTIPLE-VALUE-LIST (UGAUSSIAN-P 2.0d0)))
+   (LIST 0.9772498680518208)
+   (MULTIPLE-VALUE-LIST (UGAUSSIAN-P 2.0)))
   (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.022750131948179212d0)
-   (MULTIPLE-VALUE-LIST (UGAUSSIAN-Q 2.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 2.0d0)
-   (MULTIPLE-VALUE-LIST (UGAUSSIAN-PINV 0.9772498680518208d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 2.0d0)
-   (MULTIPLE-VALUE-LIST (UGAUSSIAN-QINV 0.02275013194817921d0))))
+   (LIST 0.022750131948179212)
+   (MULTIPLE-VALUE-LIST (UGAUSSIAN-Q 2.0)))
+  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL (LIST 2.0)
+				     (MULTIPLE-VALUE-LIST
+				      (UGAUSSIAN-PINV
+				       0.9772498680518208)))
+  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL (LIST 2.0)
+				     (MULTIPLE-VALUE-LIST
+				      (UGAUSSIAN-QINV
+				       0.02275013194817921))))
+
diff --git a/random/negative-binomial.lisp b/random/negative-binomial.lisp
index 42b6f38662e936cba20f806ee0404a900322728b..ffb5e9dc7dc6efeca7c9d8220559958b78d39c4d 100644
--- a/random/negative-binomial.lisp
+++ b/random/negative-binomial.lisp
@@ -1,6 +1,6 @@
 ;; Negative binomial and Pascal distributions
 ;; Liam Healy, Sat Nov 25 2006 - 16:00
-;; Time-stamp: <2008-02-17 13:44:16EST negative-binomial.lisp>
+;; Time-stamp: <2008-09-20 21:28:50EDT negative-binomial.lisp>
 ;; $Id$
 
 (in-package :gsl)
@@ -108,36 +108,35 @@
 
 (LISP-UNIT:DEFINE-TEST NEGATIVE-BINOMIAL
   (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST (LIST 10 7 12 23 20 24 18 12 4 22 15))
+   (LIST (LIST 15 21 19 15 8 18 23 18 33 16 10))
    (MULTIPLE-VALUE-LIST
     (LETM ((RNG (RANDOM-NUMBER-GENERATOR *MT19937* 0)))
       (LOOP FOR I FROM 0 TO 10 COLLECT
-	    (NEGATIVE-BINOMIAL RNG 0.4d0 12.0d0)))))
+	   (NEGATIVE-BINOMIAL RNG 0.4 12.0)))))
   (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.0056984767089869d0)
+   (LIST 0.0056984767089869)
    (MULTIPLE-VALUE-LIST
-    (NEGATIVE-BINOMIAL-PDF 5 0.4d0 12.0d0)))
+    (NEGATIVE-BINOMIAL-PDF 5 0.4 12.0)))
   (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.010594202555514881d0)
-   (MULTIPLE-VALUE-LIST
-    (NEGATIVE-BINOMIAL-P 5 0.4d0 12.0d0)))
+   (LIST 0.010594202555514881)
+   (MULTIPLE-VALUE-LIST (NEGATIVE-BINOMIAL-P 5 0.4 12.0)))
   (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.9894057974444851d0)
-   (MULTIPLE-VALUE-LIST
-    (NEGATIVE-BINOMIAL-Q 5 0.4d0 12.0d0)))
+   (LIST 0.9894057974444851)
+   (MULTIPLE-VALUE-LIST (NEGATIVE-BINOMIAL-Q 5 0.4 12.0)))
   (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST (LIST 10 7 12 23 20 24 18 12 4 22 15))
+   (LIST (LIST 15 21 19 15 8 18 23 18 33 16 10))
    (MULTIPLE-VALUE-LIST
     (LETM ((RNG (RANDOM-NUMBER-GENERATOR *MT19937* 0)))
       (LOOP FOR I FROM 0 TO 10 COLLECT
-	    (PASCAL RNG 0.4d0 12)))))
+	   (PASCAL RNG 0.4 12)))))
   (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.0056984767089869d0)
-   (MULTIPLE-VALUE-LIST (PASCAL-PDF 5 0.4d0 12)))
+   (LIST 0.0056984767089869)
+   (MULTIPLE-VALUE-LIST (PASCAL-PDF 5 0.4 12)))
   (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.010594202555514881d0)
-   (MULTIPLE-VALUE-LIST (PASCAL-P 5 0.4d0 12)))
+   (LIST 0.010594202555514881)
+   (MULTIPLE-VALUE-LIST (PASCAL-P 5 0.4 12)))
   (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.9894057974444851d0)
-   (MULTIPLE-VALUE-LIST (PASCAL-Q 5 0.4d0 12))))
+   (LIST 0.9894057974444851)
+   (MULTIPLE-VALUE-LIST (PASCAL-Q 5 0.4 12))))
+
 
diff --git a/special-functions/exponential-functions.lisp b/special-functions/exponential-functions.lisp
index 2597b4bba89bdd2438ff0068eeef9c1c88a7e9c6..80c40f492536de8cb7e5207084262664a042d345 100644
--- a/special-functions/exponential-functions.lisp
+++ b/special-functions/exponential-functions.lisp
@@ -1,6 +1,6 @@
 ;; Exponential functions
 ;; Liam Healy, Tue Mar 21 2006 - 17:05
-;; Time-stamp: <2008-02-16 21:01:05EST exponential-functions.lisp>
+;; Time-stamp: <2008-09-16 22:51:18EDT exponential-functions.lisp>
 ;; $Id$
 
 (in-package :gsl)
@@ -97,7 +97,7 @@
 #|
 (make-tests exponential-functions
   (gsl-exp 3.0d0)
-  (exp-scaled 555.0d0)
+  (exp-scaled 2000.0d0)
   (exp-mult 101.0d0 5.0d0)
   (exp-mult-scaled 555.0d0 101.0d0)
   (expm1 0.0001d0)
@@ -113,8 +113,8 @@
    (LIST 20.085536923187668d0 8.91977022163267d-15)
    (MULTIPLE-VALUE-LIST (GSL-EXP 3.0d0)))
   (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 1.0800340716201098d0 241 2.666751014771678d-13)
-   (MULTIPLE-VALUE-LIST (EXP-SCALED 555.0d0)))
+   (LIST 3.8811801942838993 868 3.448904081776264e-12)
+   (MULTIPLE-VALUE-LIST (EXP-SCALED 2000.0)))
   (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
    (LIST 3.6535299896840335d44 8.355840218353793d30)
    (MULTIPLE-VALUE-LIST (EXP-MULT 101.0d0 5.0d0)))