diff --git a/calculus/monte-carlo.lisp b/calculus/monte-carlo.lisp
index 6bffa80318a67013dafd1109c920994a7d2502b2..fdd628e6ea7d3d345e1066da5d50b67af5d8af82 100644
--- a/calculus/monte-carlo.lisp
+++ b/calculus/monte-carlo.lisp
@@ -1,8 +1,8 @@
 ;; Monte Carlo Integration
 ;; Liam Healy Sat Feb  3 2007 - 17:42
-;; Time-stamp: <2010-08-07 21:41:14EDT monte-carlo.lisp>
+;; Time-stamp: <2011-01-10 17:59:20EST monte-carlo.lisp>
 ;;
-;; Copyright 2007, 2008, 2009 Liam M. Healy
+;; Copyright 2007, 2008, 2009, 2011 Liam M. Healy
 ;; Distributed under the terms of the GNU General Public License
 ;;
 ;; This program is free software: you can redistribute it and/or modify
@@ -51,7 +51,7 @@
 	      (scalars t))
   "gsl_monte_plain_integrate"
   ((callback :pointer)
-   ((foreign-pointer lower-limits) :pointer) ((foreign-pointer upper-limits) :pointer)
+   ((grid:foreign-pointer lower-limits) :pointer) ((grid:foreign-pointer upper-limits) :pointer)
    ((dim0 lower-limits) sizet) (number-of-samples sizet)
    ((mpointer generator) :pointer)
    ((mpointer state) :pointer)
@@ -112,7 +112,7 @@
 	      (scalars t))
   "gsl_monte_miser_integrate"
   ((callback :pointer)
-   ((foreign-pointer lower-limits) :pointer) ((foreign-pointer upper-limits) :pointer)
+   ((grid:foreign-pointer lower-limits) :pointer) ((grid:foreign-pointer upper-limits) :pointer)
    ((dim0 lower-limits) sizet) (number-of-samples sizet)
    ((mpointer generator) :pointer)
    ((mpointer state) :pointer)
@@ -173,7 +173,7 @@
 	      (scalars t))
   "gsl_monte_vegas_integrate"
   ((callback :pointer)
-   ((foreign-pointer lower-limits) :pointer) ((foreign-pointer upper-limits) :pointer)
+   ((grid:foreign-pointer lower-limits) :pointer) ((grid:foreign-pointer upper-limits) :pointer)
    ((dim0 lower-limits) sizet) (number-of-samples sizet)
    ((mpointer generator) :pointer)
    ((mpointer state) :pointer)
diff --git a/calculus/numerical-integration.lisp b/calculus/numerical-integration.lisp
index f11be59c1700f1c8bf299a540b731952224931c7..e398b2b1a2e05889d52fe42b3aaddb8b4bf3ecaf 100644
--- a/calculus/numerical-integration.lisp
+++ b/calculus/numerical-integration.lisp
@@ -1,8 +1,8 @@
 ;; Numerical integration
 ;; Liam Healy, Wed Jul  5 2006 - 23:14
-;; Time-stamp: <2010-08-07 21:46:21EDT numerical-integration.lisp>
+;; Time-stamp: <2011-01-10 17:59:21EST numerical-integration.lisp>
 ;;
-;; Copyright 2006, 2007, 2008, 2009, 2010 Liam M. Healy
+;; Copyright 2006, 2007, 2008, 2009, 2010, 2011 Liam M. Healy
 ;; Distributed under the terms of the GNU General Public License
 ;;
 ;; This program is free software: you can redistribute it and/or modify
@@ -157,7 +157,7 @@
 	      (limit 1000) (workspace (make-integration-workspace limit)))
   "gsl_integration_qagp"
   ((callback :pointer)
-   ((foreign-pointer points) :pointer) ((dim0 points) sizet)
+   ((grid:foreign-pointer points) :pointer) ((dim0 points) sizet)
    (absolute-error :double) (relative-error :double) (limit sizet)
    ((mpointer workspace) :pointer)
    (result (:pointer :double)) (abserr (:pointer :double)))
diff --git a/data/combination.lisp b/data/combination.lisp
index ae57ad5b50536346dfff795f605619d4f84054c2..737cef19129ba2ea66980334288ac7c7aad20f9f 100644
--- a/data/combination.lisp
+++ b/data/combination.lisp
@@ -1,8 +1,8 @@
 ;; Combinations
 ;; Liam Healy, Sun Mar 26 2006 - 11:51
-;; Time-stamp: <2010-07-16 17:14:03EDT combination.lisp>
+;; Time-stamp: <2011-01-10 17:59:21EST combination.lisp>
 ;;
-;; Copyright 2006, 2007, 2008, 2009, 2010 Liam M. Healy
+;; Copyright 2006, 2007, 2008, 2009, 2010, 2011 Liam M. Healy
 ;; Distributed under the terms of the GNU General Public License
 ;;
 ;; This program is free software: you can redistribute it and/or modify
@@ -37,7 +37,7 @@
     (setf (grid:metadata-slot object 'mpointer)
 	  mptr
 	  (cffi:foreign-slot-value mptr 'gsl-combination-c 'data)
-	  (foreign-pointer object)
+	  (grid:foreign-pointer object)
 	  (cffi:foreign-slot-value mptr 'gsl-combination-c 'range)
 	  range
 	  (cffi:foreign-slot-value mptr 'gsl-combination-c 'size)
diff --git a/data/foreign-array.lisp b/data/foreign-array.lisp
index f5b3a543df049eff58df569e764bf622ad4f497d..e7b28dab452881f42fcc66941fb2aa64fea7fec1 100644
--- a/data/foreign-array.lisp
+++ b/data/foreign-array.lisp
@@ -1,8 +1,8 @@
 ;; A grid:foreign-array with added metadata for GSL.
 ;; Liam Healy 2008-04-06 21:23:41EDT
-;; Time-stamp: <2010-07-13 22:53:02EDT foreign-array.lisp>
+;; Time-stamp: <2011-01-10 17:54:07EST foreign-array.lisp>
 ;;
-;; Copyright 2008, 2009, 2010 Liam M. Healy
+;; Copyright 2008, 2009, 2010, 2011 Liam M. Healy
 ;; Distributed under the terms of the GNU General Public License
 ;;
 ;; This program is free software: you can redistribute it and/or modify
@@ -44,7 +44,7 @@
       (setf (cffi:foreign-slot-value blockptr 'gsl-block-c 'size)
 	    (size object)
 	    (cffi:foreign-slot-value blockptr 'gsl-block-c 'data)
-	    (foreign-pointer object)
+	    (grid:foreign-pointer object)
 	    (grid:metadata-slot object 'block-pointer) blockptr)
       (let ((array-struct (alloc-from-block object blockptr)))
 	(setf
@@ -54,7 +54,7 @@
 	 (cffi:foreign-slot-value
 	  array-struct
 	  (if (typep object 'matrix) 'gsl-matrix-c 'gsl-vector-c) 'data)
-	 (foreign-pointer object))
+	 (grid:foreign-pointer object))
 	(tg:finalize object
 		     (lambda ()
 		       (cffi:foreign-free blockptr)
@@ -92,13 +92,13 @@
 	  (grid:make-grid
 	   (case category
 	     (vector
-	      `((foreign-array ,(cffi:foreign-slot-value mpointer cstruct 'size))
-		,element-type))
+		`((foreign-array ,(cffi:foreign-slot-value mpointer cstruct 'size))
+		  ,element-type))
 	     (matrix
-	      `((foreign-array
-		 ,(cffi:foreign-slot-value mpointer cstruct 'size0)
-		 ,(cffi:foreign-slot-value mpointer cstruct 'size1))
-		,element-type)))
+		`((foreign-array
+		   ,(cffi:foreign-slot-value mpointer cstruct 'size0)
+		   ,(cffi:foreign-slot-value mpointer cstruct 'size1))
+		  ,element-type)))
 	   :foreign-pointer
 	   (cffi:foreign-slot-value mpointer cstruct 'data)
 	   :finalizer finalize)))
diff --git a/data/permutation.lisp b/data/permutation.lisp
index b894b0cd4447ddef8142a16fd827e7cb7a438e12..7713e9d36fc16c392ecda1018d4bb48cb4d6a39f 100644
--- a/data/permutation.lisp
+++ b/data/permutation.lisp
@@ -1,8 +1,8 @@
 ;; Permutations
 ;; Liam Healy, Sun Mar 26 2006 - 11:51
-;; Time-stamp: <2010-11-13 18:44:09EST permutation.lisp>
+;; Time-stamp: <2011-01-10 17:59:22EST permutation.lisp>
 ;;
-;; Copyright 2006, 2007, 2008, 2009, 2010 Liam M. Healy
+;; Copyright 2006, 2007, 2008, 2009, 2010, 2011 Liam M. Healy
 ;; Distributed under the terms of the GNU General Public License
 ;;
 ;; This program is free software: you can redistribute it and/or modify
@@ -38,7 +38,7 @@
     (setf (grid:metadata-slot object 'mpointer)
 	  mptr
 	  (cffi:foreign-slot-value mptr 'gsl-permutation-c 'data)
-	  (foreign-pointer object)
+	  (grid:foreign-pointer object)
 	  (cffi:foreign-slot-value mptr 'gsl-permutation-c 'size)
 	  (first dimensions))
     (tg:finalize object (lambda () (cffi:foreign-free mptr)))))
diff --git a/fast-fourier-transforms/backward.lisp b/fast-fourier-transforms/backward.lisp
index 8b62af1d75d85d97a9707c518a8c994f67fa8166..637ca42d93fd46c3230ad1c514c86b1e9f511d29 100644
--- a/fast-fourier-transforms/backward.lisp
+++ b/fast-fourier-transforms/backward.lisp
@@ -1,8 +1,8 @@
 ;; Backward FFT
 ;; Sumant Oemrawsingh, Sat Oct 24 2009 - 12:55
-;; Time-stamp: <2010-06-27 18:13:59EDT backward.lisp>
+;; Time-stamp: <2011-01-10 17:59:22EST backward.lisp>
 ;;
-;; Copyright 2009 Sumant Oemrawsingh, Liam M. Healy
+;; Copyright 2009, 2011 Sumant Oemrawsingh, Liam M. Healy
 ;; Distributed under the terms of the GNU General Public License
 ;;
 ;; This program is free software: you can redistribute it and/or modify
@@ -33,7 +33,7 @@
 (defmfun backward-fourier-transform-radix2
   ((vector vector) &key (stride 1))
   ("gsl_fft" :type "_radix2_backward")
-  (((foreign-pointer vector) :pointer) (stride sizet) ((floor (size vector) stride) sizet))
+  (((grid:foreign-pointer vector) :pointer) (stride sizet) ((floor (size vector) stride) sizet))
   :definition :generic
   :element-types :complex
   :inputs (vector)
@@ -49,7 +49,7 @@
      (wavetable (make-fft-wavetable element-type (floor (size vector) stride)))
      (workspace (make-fft-workspace element-type (floor (size vector) stride))))
   ("gsl_fft" :type "_backward")
-  (((foreign-pointer vector) :pointer) (stride sizet) ((floor (size vector) stride) sizet)
+  (((grid:foreign-pointer vector) :pointer) (stride sizet) ((floor (size vector) stride) sizet)
    ((mpointer wavetable) :pointer) ((mpointer workspace) :pointer))
   :definition :generic
   :element-types :complex
@@ -69,7 +69,7 @@
 (defmfun backward-fourier-transform-halfcomplex-radix2
     ((vector vector) &key (stride 1))
   ("gsl_fft_halfcomplex" :type "_radix2_backward")
-  (((foreign-pointer vector) :pointer) (stride sizet) ((floor (size vector) stride) sizet))
+  (((grid:foreign-pointer vector) :pointer) (stride sizet) ((floor (size vector) stride) sizet))
   :definition :generic
   :element-types :float
   :inputs (vector)
@@ -86,7 +86,7 @@
      (wavetable (make-fft-wavetable element-type (floor (size vector) stride) t))
      (workspace (make-fft-workspace element-type (floor (size vector) stride))))
   ("gsl_fft_halfcomplex" :type "_backward")
-  (((foreign-pointer vector) :pointer) (stride sizet) ((floor (size vector) stride) sizet)
+  (((grid:foreign-pointer vector) :pointer) (stride sizet) ((floor (size vector) stride) sizet)
    ((mpointer wavetable) :pointer) ((mpointer workspace) :pointer))
   :definition :generic
   :element-types :float
@@ -106,7 +106,7 @@
 (defmfun backward-fourier-transform-dif-radix2
   ((vector vector) &key (stride 1))
   ("gsl_fft" :type "_radix2_dif_backward")
-  (((foreign-pointer vector) :pointer) (stride sizet) ((floor (size vector) stride) sizet))
+  (((grid:foreign-pointer vector) :pointer) (stride sizet) ((floor (size vector) stride) sizet))
   :definition :generic
   :element-types :complex
   :inputs (vector)
diff --git a/fast-fourier-transforms/discrete.lisp b/fast-fourier-transforms/discrete.lisp
index 6d85e2912d3d24730412d65a41ee5159ec24eddb..929c53537756bede7e425365a71948080ba759b5 100644
--- a/fast-fourier-transforms/discrete.lisp
+++ b/fast-fourier-transforms/discrete.lisp
@@ -1,8 +1,8 @@
 ;; Discrete Fourier Transforms
 ;; Liam Healy 2009-11-07 14:24:07EST
-;; Time-stamp: <2010-06-29 22:15:25EDT discrete.lisp>
+;; Time-stamp: <2011-01-10 17:59:23EST discrete.lisp>
 ;;
-;; Copyright 2009 Liam M. Healy
+;; Copyright 2009, 2011 Liam M. Healy
 ;; Distributed under the terms of the GNU General Public License
 ;;
 ;; This program is free software: you can redistribute it and/or modify
@@ -31,8 +31,8 @@
      &key (stride 1)
      (result (grid:make-foreign-array element-type :dimensions (dimensions vector))))
   ("gsl_dft" :type "_forward")
-  (((foreign-pointer vector) :pointer) (stride sizet) ((floor (size vector) stride) sizet)
-   ((foreign-pointer result) :pointer))
+  (((grid:foreign-pointer vector) :pointer) (stride sizet) ((floor (size vector) stride) sizet)
+   ((grid:foreign-pointer result) :pointer))
   :definition :generic
   :element-types :complex
   :inputs (vector)
@@ -47,8 +47,8 @@
      &key (stride 1)
      (result (grid:make-foreign-array element-type :dimensions (dimensions vector))))
   ("gsl_dft" :type "_backward")
-  (((foreign-pointer vector) :pointer) (stride sizet) ((floor (size vector) stride) sizet)
-   ((foreign-pointer result) :pointer))
+  (((grid:foreign-pointer vector) :pointer) (stride sizet) ((floor (size vector) stride) sizet)
+   ((grid:foreign-pointer result) :pointer))
   :definition :generic
   :element-types :complex
   :inputs (vector)
@@ -63,8 +63,8 @@
      &key (stride 1)
      (result (grid:make-foreign-array element-type :dimensions (dimensions vector))))
   ("gsl_dft" :type "_inverse")
-  (((foreign-pointer vector) :pointer) (stride sizet) ((floor (size vector) stride) sizet)
-   ((foreign-pointer result) :pointer))
+  (((grid:foreign-pointer vector) :pointer) (stride sizet) ((floor (size vector) stride) sizet)
+   ((grid:foreign-pointer result) :pointer))
   :definition :generic
   :element-types :complex
   :inputs (vector)
@@ -79,8 +79,8 @@
      &key (stride 1)
      (result (grid:make-foreign-array element-type :dimensions (dimensions vector))))
   ("gsl_dft" :type "_transform")
-  (((foreign-pointer vector) :pointer) (stride sizet) ((floor (size vector) stride) sizet)
-   ((foreign-pointer result) :pointer))
+  (((grid:foreign-pointer vector) :pointer) (stride sizet) ((floor (size vector) stride) sizet)
+   ((grid:foreign-pointer result) :pointer))
   :definition :generic
   :element-types :complex
   :inputs (vector)
diff --git a/fast-fourier-transforms/forward.lisp b/fast-fourier-transforms/forward.lisp
index b90182609112abf4a17807293a2994c26918e738..e20508ae45624598358f92865b21515f485b9ea3 100644
--- a/fast-fourier-transforms/forward.lisp
+++ b/fast-fourier-transforms/forward.lisp
@@ -1,8 +1,8 @@
 ;; Forward FFT.
 ;; Sumant Oemrawsingh, Sat Oct 31 2009 - 23:48
-;; Time-stamp: <2010-06-27 18:13:58EDT forward.lisp>
+;; Time-stamp: <2011-01-10 17:59:23EST forward.lisp>
 ;;
-;; Copyright 2009 Sumant Oemrawsingh, Liam M. Healy
+;; Copyright 2009, 2011 Sumant Oemrawsingh, Liam M. Healy
 ;; Distributed under the terms of the GNU General Public License
 ;;
 ;; This program is free software: you can redistribute it and/or modify
@@ -37,7 +37,7 @@
    single-float "gsl_fft_real_float_radix2_transform"
    complex-double-float "gsl_fft_complex_radix2_forward"
    complex-single-float "gsl_fft_complex_float_radix2_forward")
-  (((foreign-pointer vector) :pointer) (stride sizet) ((floor (size vector) stride) sizet))
+  (((grid:foreign-pointer vector) :pointer) (stride sizet) ((floor (size vector) stride) sizet))
   :definition :generic
   :element-types :float-complex
   :inputs (vector)
@@ -56,7 +56,7 @@
 		single-float "gsl_fft_real_float_transform"
 		complex-double-float "gsl_fft_complex_forward"
 		complex-single-float "gsl_fft_complex_float_forward")
-  (((foreign-pointer vector) :pointer) (stride sizet) ((floor (size vector) stride) sizet)
+  (((grid:foreign-pointer vector) :pointer) (stride sizet) ((floor (size vector) stride) sizet)
    ((mpointer wavetable) :pointer) ((mpointer workspace) :pointer))
   :definition :generic
   :element-types :float-complex
@@ -75,7 +75,7 @@
 (defmfun forward-fourier-transform-halfcomplex-radix2
     ((vector vector) &key (stride 1))
   ("gsl_fft_halfcomplex" :type "_radix2_transform")
-  (((foreign-pointer vector) :pointer) (stride sizet) ((floor (size vector) stride) sizet))
+  (((grid:foreign-pointer vector) :pointer) (stride sizet) ((floor (size vector) stride) sizet))
   :definition :generic
   :element-types :float
   :inputs (vector)
@@ -92,7 +92,7 @@
      (wavetable (make-fft-wavetable element-type (floor (size vector) stride) t))
      (workspace (make-fft-workspace element-type (floor (size vector) stride))))
   ("gsl_fft_halfcomplex" :type "_transform")
-  (((foreign-pointer vector) :pointer) (stride sizet) ((floor (size vector) stride) sizet)
+  (((grid:foreign-pointer vector) :pointer) (stride sizet) ((floor (size vector) stride) sizet)
    ((mpointer wavetable) :pointer) ((mpointer workspace) :pointer))
   :definition :generic
   :element-types :float
@@ -111,7 +111,7 @@
 
 (defmfun forward-fourier-transform-dif-radix2 ((vector vector) &key (stride 1))
   ("gsl_fft" :type "_radix2_dif_forward")
-  (((foreign-pointer vector) :pointer) (stride sizet) ((floor (size vector) stride) sizet))
+  (((grid:foreign-pointer vector) :pointer) (stride sizet) ((floor (size vector) stride) sizet))
   :definition :generic
   :element-types :complex
   :inputs (vector)
diff --git a/fast-fourier-transforms/inverse.lisp b/fast-fourier-transforms/inverse.lisp
index 77545e27e3449e921c1369d917eadeba57e28456..590f2b748ed375b95be9103c49993796dca11a58 100644
--- a/fast-fourier-transforms/inverse.lisp
+++ b/fast-fourier-transforms/inverse.lisp
@@ -1,8 +1,8 @@
 ;; Inverse FFT
 ;; Sumant Oemrawsingh, Sat Oct 24 2009 - 12:55
-;; Time-stamp: <2010-06-27 18:14:00EDT inverse.lisp>
+;; Time-stamp: <2011-01-10 17:59:24EST inverse.lisp>
 ;;
-;; Copyright 2009 Sumant Oemrawsingh, Liam M. Healy
+;; Copyright 2009, 2011 Sumant Oemrawsingh, Liam M. Healy
 ;; Distributed under the terms of the GNU General Public License
 ;;
 ;; This program is free software: you can redistribute it and/or modify
@@ -33,7 +33,7 @@
 (defmfun inverse-fourier-transform-radix2
   ((vector vector) &key (stride 1))
   ("gsl_fft" :type "_radix2_inverse")
-  (((foreign-pointer vector) :pointer) (stride sizet) ((floor (size vector) stride) sizet))
+  (((grid:foreign-pointer vector) :pointer) (stride sizet) ((floor (size vector) stride) sizet))
   :definition :generic
   :element-types :complex
   :inputs (vector)
@@ -49,7 +49,7 @@
      (wavetable (make-fft-wavetable element-type (floor (size vector) stride)))
      (workspace (make-fft-workspace element-type (floor (size vector) stride))))
   ("gsl_fft" :type "_inverse")
-  (((foreign-pointer vector) :pointer) (stride sizet) ((floor (size vector) stride) sizet)
+  (((grid:foreign-pointer vector) :pointer) (stride sizet) ((floor (size vector) stride) sizet)
    ((mpointer wavetable) :pointer) ((mpointer workspace) :pointer))
   :definition :generic
   :element-types :complex
@@ -69,7 +69,7 @@
 (defmfun inverse-fourier-transform-halfcomplex-radix2
     ((vector vector) &key (stride 1))
   ("gsl_fft_halfcomplex" :type "_radix2_inverse")
-  (((foreign-pointer vector) :pointer) (stride sizet) ((floor (size vector) stride) sizet))
+  (((grid:foreign-pointer vector) :pointer) (stride sizet) ((floor (size vector) stride) sizet))
   :definition :generic
   :element-types :float
   :inputs (vector)
@@ -86,7 +86,7 @@
      (wavetable (make-fft-wavetable element-type (floor (size vector) stride) t))
      (workspace (make-fft-workspace element-type (floor (size vector) stride))))
   ("gsl_fft_halfcomplex" :type "_inverse")
-  (((foreign-pointer vector) :pointer) (stride sizet) ((floor (size vector) stride) sizet)
+  (((grid:foreign-pointer vector) :pointer) (stride sizet) ((floor (size vector) stride) sizet)
    ((mpointer wavetable) :pointer) ((mpointer workspace) :pointer))
   :definition :generic
   :element-types :float
@@ -106,7 +106,7 @@
 (defmfun inverse-fourier-transform-dif-radix2
   ((vector vector) &key (stride 1))
   ("gsl_fft" :type "_radix2_dif_inverse")
-  (((foreign-pointer vector) :pointer) (stride sizet) ((floor (size vector) stride) sizet))
+  (((grid:foreign-pointer vector) :pointer) (stride sizet) ((floor (size vector) stride) sizet))
   :definition :generic
   :element-types :complex
   :inputs (vector)
diff --git a/fast-fourier-transforms/select-direction.lisp b/fast-fourier-transforms/select-direction.lisp
index 115fe4e639ba962944c291d972142d3c7bd1c7c5..c505e424d8798cd64495fe4addaa13984c2ef67f 100644
--- a/fast-fourier-transforms/select-direction.lisp
+++ b/fast-fourier-transforms/select-direction.lisp
@@ -1,8 +1,8 @@
 ;; FFT where direction is selected.
 ;; Sumant Oemrawsingh, Sat Oct 24 2009 - 12:55
-;; Time-stamp: <2010-06-27 18:13:58EDT select-direction.lisp>
+;; Time-stamp: <2011-01-10 17:59:24EST select-direction.lisp>
 ;;
-;; Copyright 2009 Sumant Oemrawsingh, Liam M. Healy
+;; Copyright 2009, 2011 Sumant Oemrawsingh, Liam M. Healy
 ;; Distributed under the terms of the GNU General Public License
 ;;
 ;; This program is free software: you can redistribute it and/or modify
@@ -26,7 +26,7 @@
 (defmfun fourier-transform-radix2
     ((vector vector) direction &key (stride 1) (n (expt 2 (floor (log (size vector) 2)))))
   ("gsl_fft" :type "_radix2_transform")
-  (((foreign-pointer vector) :pointer) (stride sizet) (n sizet) (direction fft-direction))
+  (((grid:foreign-pointer vector) :pointer) (stride sizet) (n sizet) (direction fft-direction))
   :definition :generic
   :element-types :complex
   :inputs (vector)
@@ -40,7 +40,7 @@
 (defmfun fourier-transform-dif-radix2
     ((vector vector) direction &key (stride 1) (n (expt 2 (floor (log (size vector) 2)))))
   ("gsl_fft" :type "_radix2_dif_transform")
-  (((foreign-pointer vector) :pointer) (stride sizet) (n sizet) (direction fft-direction))
+  (((grid:foreign-pointer vector) :pointer) (stride sizet) (n sizet) (direction fft-direction))
   :definition :generic
   :element-types :complex
   :inputs (vector)
diff --git a/fast-fourier-transforms/unpack.lisp b/fast-fourier-transforms/unpack.lisp
index 228b4679d5d2ea4b1cc2e8a95568f25fca1fd39d..da474a8a8d7b5e35bb2aa594920a03188b3be640 100644
--- a/fast-fourier-transforms/unpack.lisp
+++ b/fast-fourier-transforms/unpack.lisp
@@ -1,8 +1,8 @@
 ;; Unpack functions for FFT vectors.
 ;; Sumant Oemrawsingh, Sun Oct 25 2009 - 16:35
-;; Time-stamp: <2010-06-29 22:12:06EDT unpack.lisp>
+;; Time-stamp: <2011-01-10 17:59:24EST unpack.lisp>
 ;;
-;; Copyright 2009 Sumant Oemrawsingh, Liam M. Healy
+;; Copyright 2009, 2011 Sumant Oemrawsingh, Liam M. Healy
 ;; Distributed under the terms of the GNU General Public License
 ;;
 ;; This program is free software: you can redistribute it and/or modify
@@ -34,8 +34,8 @@
 		  t
 		  (grid:make-foreign-array '(complex double-float) :dimensions (size vector)))))
   ("gsl_fft_real" :type "_unpack")
-  (((foreign-pointer vector) :pointer)
-   ((foreign-pointer output) :pointer)
+  (((grid:foreign-pointer vector) :pointer)
+   ((grid:foreign-pointer output) :pointer)
    (stride sizet) ((floor (size vector) stride) sizet))
   :definition :generic
   :element-types :float
@@ -58,8 +58,8 @@
 		  t
 		  (grid:make-foreign-array '(complex double-float) :dimensions (size vector)))))
   ("gsl_fft_halfcomplex" :type "_radix2_unpack")
-  (((foreign-pointer vector) :pointer)
-   ((foreign-pointer output) :pointer)
+  (((grid:foreign-pointer vector) :pointer)
+   ((grid:foreign-pointer output) :pointer)
    (stride sizet) ((floor (size vector) stride) sizet))
   :definition :generic
   :element-types :float
@@ -81,8 +81,8 @@
 		  t
 		  (grid:make-foreign-array '(complex double-float) :dimensions (size vector)))))
   ("gsl_fft_halfcomplex" :type "_unpack")
-  (((foreign-pointer vector) :pointer)
-   ((foreign-pointer output) :pointer)
+  (((grid:foreign-pointer vector) :pointer)
+   ((grid:foreign-pointer output) :pointer)
    (stride sizet) ((floor (size vector) stride) sizet))
   :definition :generic
   :element-types :float
diff --git a/hankel.lisp b/hankel.lisp
index dbf4bb3c51b19a33f35d39ed355ff930e8038024..42259c1ecb7fe2652129ccd05a366b627f31d99a 100644
--- a/hankel.lisp
+++ b/hankel.lisp
@@ -1,8 +1,8 @@
 ;; Discrete Hankel Transforms.
 ;; Liam Healy, Sat Dec  8 2007 - 16:50
-;; Time-stamp: <2010-07-07 14:19:28EDT hankel.lisp>
+;; Time-stamp: <2011-01-10 17:59:25EST hankel.lisp>
 ;;
-;; Copyright 2007, 2008, 2009 Liam M. Healy
+;; Copyright 2007, 2008, 2009, 2011 Liam M. Healy
 ;; Distributed under the terms of the GNU General Public License
 ;;
 ;; This program is free software: you can redistribute it and/or modify
@@ -41,8 +41,8 @@
      &optional
      (array-out (grid:make-foreign-array 'double-float :dimensions (dimensions array-in))))
   "gsl_dht_apply"
-  (((mpointer hankel) :pointer) ((foreign-pointer array-in) :pointer)
-   ((foreign-pointer array-out) :pointer))
+  (((mpointer hankel) :pointer) ((grid:foreign-pointer array-in) :pointer)
+   ((grid:foreign-pointer array-out) :pointer))
   :inputs (array-in)
   :outputs (array-out)
   :return (array-out)
diff --git a/histogram/histogram.lisp b/histogram/histogram.lisp
index f657f25a506fea297a6cdee83c60db8857645875..0ef039ef3caca1ac8694a75bbd20eb2e81a3a42a 100644
--- a/histogram/histogram.lisp
+++ b/histogram/histogram.lisp
@@ -1,8 +1,8 @@
 ;; The histogram structure
 ;; Liam Healy, Mon Jan  1 2007 - 11:32
-;; Time-stamp: <2010-11-13 19:24:22EST histogram.lisp>
+;; Time-stamp: <2011-01-10 17:59:25EST histogram.lisp>
 ;;
-;; Copyright 2007, 2008, 2009, 2010 Liam M. Healy
+;; Copyright 2007, 2008, 2009, 2010, 2011 Liam M. Healy
 ;; Distributed under the terms of the GNU General Public License
 ;;
 ;; This program is free software: you can redistribute it and/or modify
@@ -30,7 +30,7 @@
   ((number-of-bins sizet))
   "one-dimensional histogram, including bin boundaries and bin contents"
   :initialize-suffix "set_ranges"
-  :initialize-args (((foreign-pointer ranges) :pointer) ((dim0 ranges) sizet)))
+  :initialize-args (((grid:foreign-pointer ranges) :pointer) ((dim0 ranges) sizet)))
 
 (defmobject histogram2d
     "gsl_histogram2d"
@@ -38,8 +38,8 @@
   "two-dimensional histogram, including bin boundaries and bin contents."
   :initialize-suffix "set_ranges"
   :initialize-args
-  (((foreign-pointer x-ranges) :pointer) ((dim0 x-ranges) sizet)
-   ((foreign-pointer y-ranges) :pointer) ((dim0 y-ranges) sizet)))
+  (((grid:foreign-pointer x-ranges) :pointer) ((dim0 x-ranges) sizet)
+   ((grid:foreign-pointer y-ranges) :pointer) ((dim0 y-ranges) sizet)))
 
 ;;; GSL documentation does not state what the return value for the
 ;;; C function for reinitialization means; assumed to be error code.
diff --git a/init/init.lisp b/init/init.lisp
index 1c860ace62105a8fb4b0e0fec67779e5421a0337..ad13c9cc13b58d18cf36bfd505a863dcc86bd784 100644
--- a/init/init.lisp
+++ b/init/init.lisp
@@ -1,6 +1,6 @@
 ;; Load GSL
 ;; Liam Healy Sat Mar  4 2006 - 18:53
-;; Time-stamp: <2011-01-01 16:14:55EST init.lisp>
+;; Time-stamp: <2011-01-10 17:47:50EST init.lisp>
 ;;
 ;; Copyright 2006, 2007, 2008, 2009, 2010, 2011 Liam M. Healy
 ;; Distributed under the terms of the GNU General Public License
@@ -26,7 +26,7 @@
    #:cl-array #:dimensions #:element-type
    #:foreign-array #:matrix #:dim0 #:dim1 #:^
    #:copy)
-  (:shadowing-import-from :grid #:foreign-pointer)
+  ;;(:shadowing-import-from :grid #:foreign-pointer)
   (:export
    #:cl-array #:dimensions #:element-type #:dim0 #:dim1
    #:copy))
diff --git a/interpolation/evaluation.lisp b/interpolation/evaluation.lisp
index 0c7c6c0c1002f0872e4ce631a388097cea636ba8..1546943b501b5e540bf590f2e0e216d33e984bae 100644
--- a/interpolation/evaluation.lisp
+++ b/interpolation/evaluation.lisp
@@ -1,8 +1,8 @@
 ;; Evaluation of interpolation functions.
 ;; Liam Healy Sun Nov  4 2007 - 18:40
-;; Time-stamp: <2010-06-27 18:13:56EDT evaluation.lisp>
+;; Time-stamp: <2011-01-10 17:59:26EST evaluation.lisp>
 ;;
-;; Copyright 2007, 2008, 2009 Liam M. Healy
+;; Copyright 2007, 2008, 2009, 2011 Liam M. Healy
 ;; Distributed under the terms of the GNU General Public License
 ;;
 ;; This program is free software: you can redistribute it and/or modify
@@ -27,8 +27,8 @@
      &key xa ya (acceleration (make-acceleration)))
   "gsl_interp_eval"
   (((mpointer interpolation) :pointer)
-   ((foreign-pointer xa) :pointer)
-   ((foreign-pointer ya) :pointer)
+   ((grid:foreign-pointer xa) :pointer)
+   ((grid:foreign-pointer ya) :pointer)
    (x :double)
    ((mpointer acceleration) :pointer))
   :definition :method
@@ -51,8 +51,8 @@
      &key xa ya (acceleration (make-acceleration)))
   "gsl_interp_eval_deriv"
   (((mpointer interpolation) :pointer)
-   ((foreign-pointer xa) :pointer)
-   ((foreign-pointer ya) :pointer)
+   ((grid:foreign-pointer xa) :pointer)
+   ((grid:foreign-pointer ya) :pointer)
    (x :double)
    ((mpointer acceleration) :pointer))
   :definition :method
@@ -70,8 +70,8 @@
     ((interpolation interpolation) x &key xa ya (acceleration (make-acceleration)))
   "gsl_interp_eval_deriv2"
   (((mpointer interpolation) :pointer)
-   ((foreign-pointer xa) :pointer)
-   ((foreign-pointer ya) :pointer)
+   ((grid:foreign-pointer xa) :pointer)
+   ((grid:foreign-pointer ya) :pointer)
    (x :double)
    ((mpointer acceleration) :pointer))
   :definition :method
@@ -90,8 +90,8 @@
      &key xa ya (acceleration (make-acceleration)))
   "gsl_interp_eval_integ"
   (((mpointer interpolation) :pointer)
-   ((foreign-pointer xa) :pointer)
-   ((foreign-pointer ya) :pointer)
+   ((grid:foreign-pointer xa) :pointer)
+   ((grid:foreign-pointer ya) :pointer)
    (low :double) (high :double) ((mpointer acceleration) :pointer))
   :definition :method
   :inputs (xa ya)
diff --git a/interpolation/interpolation.lisp b/interpolation/interpolation.lisp
index f7845f4f8efdf5a4b2944ceb75d1c6a35d5f45af..dd5a83fe2c08b995a4e9290261dbe6df571c1d5e 100644
--- a/interpolation/interpolation.lisp
+++ b/interpolation/interpolation.lisp
@@ -1,8 +1,8 @@
 ;; Interpolation allocation, initialization, and freeing.
 ;; Liam Healy, Sun Nov  4 2007 - 17:24
-;; Time-stamp: <2010-06-27 18:13:56EDT interpolation.lisp>
+;; Time-stamp: <2011-01-10 17:59:26EST interpolation.lisp>
 ;;
-;; Copyright 2007, 2008, 2009 Liam M. Healy
+;; Copyright 2007, 2008, 2009, 2011 Liam M. Healy
 ;; Distributed under the terms of the GNU General Public License
 ;;
 ;; This program is free software: you can redistribute it and/or modify
@@ -37,7 +37,7 @@
   strictly ordered; the behavior for other arrangements is not defined."
   :initialize-suffix "init"
   :initialize-args
-  (((foreign-pointer xa) :pointer) ((foreign-pointer ya) :pointer) ((dim0 xa) sizet))
+  (((grid:foreign-pointer xa) :pointer) ((grid:foreign-pointer ya) :pointer) ((dim0 xa) sizet))
   :arglists-function
   (lambda (set)
     `((type &optional xa-or-size (ya nil ,set))
@@ -51,7 +51,7 @@
   "Make an interpolation object of type for size data-points."
   :initialize-suffix "init"
   :initialize-args
-  (((foreign-pointer xa) :pointer) ((foreign-pointer ya) :pointer) ((dim0 xa) sizet))
+  (((grid:foreign-pointer xa) :pointer) ((grid:foreign-pointer ya) :pointer) ((dim0 xa) sizet))
   :inputs (xa ya)
   :arglists-function
   (lambda (set)
diff --git a/linear-algebra/blas1.lisp b/linear-algebra/blas1.lisp
index 401def27e46c40e6a23e3ad11ab8e988b155c851..ed8b70fee764ffc9830448174bdc9a1234c5dd3d 100644
--- a/linear-algebra/blas1.lisp
+++ b/linear-algebra/blas1.lisp
@@ -1,8 +1,8 @@
 ;; BLAS level 1, Vector operations
 ;; Liam Healy, Wed Apr 26 2006 - 15:23
-;; Time-stamp: <2010-07-07 14:25:01EDT blas1.lisp>
+;; Time-stamp: <2011-01-10 17:59:27EST blas1.lisp>
 ;;
-;; Copyright 2006, 2007, 2008, 2009 Liam M. Healy
+;; Copyright 2006, 2007, 2008, 2009, 2011 Liam M. Healy
 ;; Distributed under the terms of the GNU General Public License
 ;;
 ;; This program is free software: you can redistribute it and/or modify
@@ -153,8 +153,8 @@
 
 (defmfun givens-rotation ((x vector) (y vector) (c vector) (s vector))
   ("gsl_blas_" :type "rotg")
-  (((foreign-pointer x) :pointer) ((foreign-pointer y) :pointer)
-   ((foreign-pointer c) :pointer) ((foreign-pointer s) :pointer))
+  (((grid:foreign-pointer x) :pointer) ((grid:foreign-pointer y) :pointer)
+   ((grid:foreign-pointer c) :pointer) ((grid:foreign-pointer s) :pointer))
   :definition :generic
   :element-types :float
   :inputs (x y c s)
@@ -182,9 +182,9 @@
 (defmfun modified-givens-rotation
     ((d1 vector) (d2 vector) (b1 vector) b2 (P vector))
   ("gsl_blas_" :type "rotmg")
-  (((foreign-pointer d1) :pointer) ((foreign-pointer d2) :pointer)
-   ((foreign-pointer b1) :pointer) (b2 :element-c-type)
-   ((foreign-pointer P) :pointer))
+  (((grid:foreign-pointer d1) :pointer) ((grid:foreign-pointer d2) :pointer)
+   ((grid:foreign-pointer b1) :pointer) (b2 :element-c-type)
+   ((grid:foreign-pointer P) :pointer))
   :definition :generic
   :element-types :float
   :inputs (d1 d2 b1 P)
diff --git a/ordinary-differential-equations/evolution.lisp b/ordinary-differential-equations/evolution.lisp
index eff0e004c2072d763c0bce9b119086d66ea4cc4d..37117ff3a21294cdfd29c593dc3d6b60ed7aa244 100644
--- a/ordinary-differential-equations/evolution.lisp
+++ b/ordinary-differential-equations/evolution.lisp
@@ -1,8 +1,8 @@
 ;; Evolution functions for ODE integration.
 ;; Liam Healy, Sun Sep 30 2007 - 14:31
-;; Time-stamp: <2010-06-27 18:13:51EDT evolution.lisp>
+;; Time-stamp: <2011-01-10 17:59:27EST evolution.lisp>
 ;;
-;; Copyright 2007, 2008, 2009 Liam M. Healy
+;; Copyright 2007, 2008, 2009, 2011 Liam M. Healy
 ;; Distributed under the terms of the GNU General Public License
 ;;
 ;; This program is free software: you can redistribute it and/or modify
@@ -32,9 +32,9 @@
   "gsl_odeiv_evolve_apply"
   (((mpointer evolution) :pointer) ((mpointer control) :pointer)
    ((mpointer stepper) :pointer)
-   ((callback-struct stepper) :pointer) ((foreign-pointer time) :pointer)
+   ((callback-struct stepper) :pointer) ((grid:foreign-pointer time) :pointer)
    (max-time :double)
-   ((foreign-pointer step-size) :pointer) ((foreign-pointer y) :pointer))
+   ((grid:foreign-pointer step-size) :pointer) ((grid:foreign-pointer y) :pointer))
   :inputs (time step-size y)
   :outputs (time step-size y)
   :callback-object ((stepper ode-stepper))
diff --git a/ordinary-differential-equations/stepping.lisp b/ordinary-differential-equations/stepping.lisp
index b1deaa2023e35518d44ef502af8fda8aaee6a46c..6efc6754ce7a17a897607d1a55c0bc3d9c8f05a7 100644
--- a/ordinary-differential-equations/stepping.lisp
+++ b/ordinary-differential-equations/stepping.lisp
@@ -1,8 +1,8 @@
 ;; Stepping functions for ODE systems.
 ;; Liam Healy, Mon Sep 24 2007 - 21:33
-;; Time-stamp: <2010-06-27 18:13:51EDT stepping.lisp>
+;; Time-stamp: <2011-01-10 17:59:27EST stepping.lisp>
 ;;
-;; Copyright 2007, 2008, 2009 Liam M. Healy
+;; Copyright 2007, 2008, 2009, 2011 Liam M. Healy
 ;; Distributed under the terms of the GNU General Public License
 ;;
 ;; This program is free software: you can redistribute it and/or modify
@@ -106,10 +106,10 @@ values):
   (((mpointer stepper) :pointer)
    (time :double)
    (step-size :double)
-   ((foreign-pointer y) :pointer)
-   ((foreign-pointer yerr) :pointer)
-   ((foreign-pointer dydt-in) :pointer)
-   ((foreign-pointer dydt-out) :pointer)
+   ((grid:foreign-pointer y) :pointer)
+   ((grid:foreign-pointer yerr) :pointer)
+   ((grid:foreign-pointer dydt-in) :pointer)
+   ((grid:foreign-pointer dydt-out) :pointer)
    ((callback-struct stepper) :pointer))
   :documentation			; FDL
   "Apply the stepping function stepper to the system of equations
diff --git a/polynomial.lisp b/polynomial.lisp
index 84c904a1b7bd6a441ea16e82e0fe194a4109a12d..81065dd9462edae8b20061d7fd7dbbd8fe01669b 100644
--- a/polynomial.lisp
+++ b/polynomial.lisp
@@ -1,6 +1,6 @@
 ;; Polynomials
 ;; Liam Healy, Tue Mar 21 2006 - 18:33
-;; Time-stamp: <2011-01-10 10:29:48EST polynomial.lisp>
+;; Time-stamp: <2011-01-10 17:47:56EST polynomial.lisp>
 ;;
 ;; Copyright 2009, 2011 Liam M. Healy
 ;; Distributed under the terms of the GNU General Public License
@@ -29,10 +29,10 @@
 (defmfun evaluate
     ((coefficients grid:vector-double-float) (x float) &key divided-difference)
   ("gsl_poly_eval" "gsl_poly_dd_eval")
-  ((((foreign-pointer coefficients) :pointer) ((dim0 coefficients) sizet)
+  ((((grid:foreign-pointer coefficients) :pointer) ((dim0 coefficients) sizet)
     (x :double))
-   (((foreign-pointer divided-difference) :pointer)
-    ((foreign-pointer coefficients) :pointer)
+   (((grid:foreign-pointer divided-difference) :pointer)
+    ((grid:foreign-pointer coefficients) :pointer)
     ((dim0 coefficients) sizet)
     (x :double)))
   :definition :method
@@ -46,7 +46,7 @@
     ((coefficients grid:vector-double-float) (x complex)
      &key)
   "gsl_poly_complex_eval"
-  (((foreign-pointer coefficients) :pointer) ((dim0 coefficients) sizet)
+  (((grid:foreign-pointer coefficients) :pointer) ((dim0 coefficients) sizet)
    (x grid:complex-double-c))
   :definition :method
   :gsl-version (1 11)
@@ -60,7 +60,7 @@
     ((coefficients grid:vector-complex-double-float) (x complex)
      &key)
   "gsl_complex_poly_complex_eval"
-  (((foreign-pointer coefficients) :pointer) ((dim0 coefficients) sizet)
+  (((grid:foreign-pointer coefficients) :pointer) ((dim0 coefficients) sizet)
    (x grid:complex-double-c))
   :definition :method
   :gsl-version (1 11)
@@ -76,8 +76,8 @@
 (defmfun divided-difference
     (xa ya &optional (dd (grid:make-foreign-array 'double-float :dimensions (dim0 xa))))
   "gsl_poly_dd_init"
-  (((foreign-pointer dd) :pointer)
-   ((foreign-pointer xa) :pointer) ((foreign-pointer ya) :pointer)
+  (((grid:foreign-pointer dd) :pointer)
+   ((grid:foreign-pointer xa) :pointer) ((grid:foreign-pointer ya) :pointer)
    ((dim0 xa) sizet))
   :inputs (xa ya)
   :outputs (dd)
@@ -95,12 +95,12 @@
 	(coefficients (grid:make-foreign-array 'double-float :dimensions (dim0 xa)))
 	(workspace (grid:make-foreign-array 'double-float :dimensions (dim0 xa))))
   "gsl_poly_dd_taylor"
-  (((foreign-pointer coefficients) :pointer)
+  (((grid:foreign-pointer coefficients) :pointer)
    (xp :double)
-   ((foreign-pointer dd) :pointer)
-   ((foreign-pointer xa) :pointer)
+   ((grid:foreign-pointer dd) :pointer)
+   ((grid:foreign-pointer xa) :pointer)
    ((dim0 xa) sizet)
-   ((foreign-pointer workspace) :pointer))
+   ((grid:foreign-pointer workspace) :pointer))
   :inputs (dd xa)
   :outputs (coefficients)
   :documentation			; FDL
@@ -177,8 +177,8 @@
 			  :dimensions (1- (size coefficients))))
      (workspace (make-polynomial-complex-workspace (size coefficients))))
   "gsl_poly_complex_solve"
-  (((foreign-pointer coefficients) :pointer) ((dim0 coefficients) sizet)
-   ((mpointer workspace) :pointer) ((foreign-pointer answer) :pointer))
+  (((grid:foreign-pointer coefficients) :pointer) ((dim0 coefficients) sizet)
+   ((mpointer workspace) :pointer) ((grid:foreign-pointer answer) :pointer))
   :inputs (coefficients)
   :outputs (answer)
   :return (answer)
diff --git a/random/dirichlet.lisp b/random/dirichlet.lisp
index 4d0f7f6a2880b33e79126ea7bb355c95e95d388b..b86e5ac26930aa1ba3d675a312c724edee85cb7a 100644
--- a/random/dirichlet.lisp
+++ b/random/dirichlet.lisp
@@ -1,8 +1,8 @@
 ;; Dirichlet distribution
 ;; Liam Healy, Sun Oct 29 2006
-;; Time-stamp: <2010-07-07 14:24:59EDT dirichlet.lisp>
+;; Time-stamp: <2011-01-10 17:59:28EST dirichlet.lisp>
 ;;
-;; Copyright 2006, 2007, 2008, 2009 Liam M. Healy
+;; Copyright 2006, 2007, 2008, 2009, 2011 Liam M. Healy
 ;; Distributed under the terms of the GNU General Public License
 ;;
 ;; This program is free software: you can redistribute it and/or modify
@@ -28,9 +28,9 @@
   "gsl_ran_dirichlet"
   (((mpointer generator) :pointer)
    ((dim0 alpha) sizet)
-   ((foreign-pointer alpha) :pointer)
+   ((grid:foreign-pointer alpha) :pointer)
    ;; theta had better be at least as long as alpha, or they'll be trouble
-   ((foreign-pointer theta) :pointer))
+   ((grid:foreign-pointer theta) :pointer))
   :definition :method
   :inputs (alpha)
   :outputs (theta)
@@ -55,9 +55,9 @@
 (defmfun dirichlet-pdf (alpha theta)
   "gsl_ran_dirichlet_pdf"
   (((1- (dim0 alpha)) sizet)
-   ((foreign-pointer alpha) :pointer)
+   ((grid:foreign-pointer alpha) :pointer)
    ;; theta had better be at least as long as alpha, or they'll be trouble
-   ((foreign-pointer theta) :pointer))
+   ((grid:foreign-pointer theta) :pointer))
   :inputs (alpha theta)
   :c-return :double
   :documentation			; FDL
@@ -68,9 +68,9 @@
 (defmfun dirichlet-log-pdf (alpha theta)
   "gsl_ran_dirichlet_lnpdf"
   (((1- (dim0 alpha)) sizet)
-   ((foreign-pointer alpha) :pointer)
+   ((grid:foreign-pointer alpha) :pointer)
    ;; theta had better be at least as long as alpha, or they'll be trouble
-   ((foreign-pointer theta) :pointer))
+   ((grid:foreign-pointer theta) :pointer))
   :inputs (alpha theta)
   :c-return :double
   :documentation			; FDL
diff --git a/random/discrete.lisp b/random/discrete.lisp
index 0d8b0501126a04f00855770e5e1f816ab7430e6c..b88a550656b123eca7e595c562dd7481511870ed 100644
--- a/random/discrete.lisp
+++ b/random/discrete.lisp
@@ -1,8 +1,8 @@
 ;; Discrete random variables
 ;; Liam Healy, Sat Nov 11 2006 - 21:51
-;; Time-stamp: <2010-06-27 18:14:53EDT discrete.lisp>
+;; Time-stamp: <2011-01-10 17:59:28EST discrete.lisp>
 ;;
-;; Copyright 2006, 2007, 2008, 2009 Liam M. Healy
+;; Copyright 2006, 2007, 2008, 2009, 2011 Liam M. Healy
 ;; Distributed under the terms of the GNU General Public License
 ;;
 ;; This program is free software: you can redistribute it and/or modify
@@ -23,7 +23,7 @@
 ;;; /usr/include/gsl/gsl_randist.h
 
 (defmobject discrete-random "gsl_ran_discrete"
-  (((dim0 probabilities) sizet) ((foreign-pointer probabilities) :pointer))
+  (((dim0 probabilities) sizet) ((grid:foreign-pointer probabilities) :pointer))
   "lookup table for the discrete random number generator"
   :allocator "gsl_ran_discrete_preproc"
   :allocate-inputs (probabilities)
diff --git a/random/multinomial.lisp b/random/multinomial.lisp
index 6d492edd34f6936518667024447c0646a82fd590..adb12dbd847caee4bb193226b034ae3dcc34cd8c 100644
--- a/random/multinomial.lisp
+++ b/random/multinomial.lisp
@@ -1,8 +1,8 @@
 ;; Multinomial distribution
 ;; Liam Healy, Sat Nov 25 2006 - 16:00
-;; Time-stamp: <2010-07-07 14:24:58EDT multinomial.lisp>
+;; Time-stamp: <2011-01-10 17:59:29EST multinomial.lisp>
 ;;
-;; Copyright 2006, 2007, 2008, 2009 Liam M. Healy
+;; Copyright 2006, 2007, 2008, 2009, 2011 Liam M. Healy
 ;; Distributed under the terms of the GNU General Public License
 ;;
 ;; This program is free software: you can redistribute it and/or modify
@@ -31,9 +31,9 @@
   (((mpointer generator) :pointer) 
    ((dim0 probabilities) sizet)
    (sum sizet)
-   ((foreign-pointer probabilities) :pointer)
+   ((grid:foreign-pointer probabilities) :pointer)
    ;; technically, n should be a uint array, but integers work
-   ((foreign-pointer n) :pointer))
+   ((grid:foreign-pointer n) :pointer))
   :definition :method
   :inputs (p)
   :outputs (n)
@@ -56,7 +56,7 @@
 
 (defmfun multinomial-pdf (p n)
   "gsl_ran_multinomial_pdf"
-  (((dim0 p) sizet) ((foreign-pointer p) :pointer) ((foreign-pointer n) :pointer))
+  (((dim0 p) sizet) ((grid:foreign-pointer p) :pointer) ((grid:foreign-pointer n) :pointer))
   :inputs (p n)
   :c-return :double
   :documentation			; FDL
@@ -66,7 +66,7 @@
 
 (defmfun multinomial-log-pdf (p n)
   "gsl_ran_multinomial_lnpdf"
-  (((dim0 p) sizet) ((foreign-pointer p) :pointer) ((foreign-pointer n) :pointer))
+  (((dim0 p) sizet) ((grid:foreign-pointer p) :pointer) ((grid:foreign-pointer n) :pointer))
   :inputs (p n)
   :c-return :double
   :documentation			; FDL
diff --git a/random/quasi.lisp b/random/quasi.lisp
index 605de960aa905f861ad12bfd3bd3d0a5f1885309..50059e6e52009cf77d3288f97db8f8a44ff3500a 100644
--- a/random/quasi.lisp
+++ b/random/quasi.lisp
@@ -1,8 +1,8 @@
 ;; Quasi-random sequences in arbitrary dimensions.
 ;; Liam Healy, Sun Jul 16 2006 - 15:54
-;; Time-stamp: <2010-07-16 17:10:54EDT quasi.lisp>
+;; Time-stamp: <2011-01-10 17:59:29EST quasi.lisp>
 ;;
-;; Copyright 2006, 2007, 2008, 2009 Liam M. Healy
+;; Copyright 2006, 2007, 2008, 2009, 2011 Liam M. Healy
 ;; Distributed under the terms of the GNU General Public License
 ;;
 ;; This program is free software: you can redistribute it and/or modify
@@ -36,7 +36,7 @@
 
 (defmfun qrng-get (generator return-vector)
   "gsl_qrng_get"
-  (((mpointer generator) :pointer) ((foreign-pointer return-vector) :pointer))
+  (((mpointer generator) :pointer) ((grid:foreign-pointer return-vector) :pointer))
   :outputs (return-vector)
   :return (return-vector)
   :documentation			; FDL
diff --git a/random/shuffling-sampling.lisp b/random/shuffling-sampling.lisp
index 3e11719499ed2865a1af5059304d77e79eaab621..b41d27333553e80ae7e655df73c39bf43212c43a 100644
--- a/random/shuffling-sampling.lisp
+++ b/random/shuffling-sampling.lisp
@@ -1,8 +1,8 @@
 ;; Shuffling and sampling
 ;; Liam Healy, Sat Dec  2 2006 - 18:40
-;; Time-stamp: <2010-07-07 14:24:58EDT shuffling-sampling.lisp>
+;; Time-stamp: <2011-01-10 17:59:29EST shuffling-sampling.lisp>
 ;;
-;; Copyright 2006, 2007, 2008, 2009 Liam M. Healy
+;; Copyright 2006, 2007, 2008, 2009, 2011 Liam M. Healy
 ;; Distributed under the terms of the GNU General Public License
 ;;
 ;; This program is free software: you can redistribute it and/or modify
@@ -27,7 +27,7 @@
      &key base)
   "gsl_ran_shuffle"
   (((mpointer generator) :pointer)
-   ((foreign-pointer base) :pointer) ((dim0 base) sizet) ((grid:element-size base) sizet))
+   ((grid:foreign-pointer base) :pointer) ((dim0 base) sizet) ((grid:element-size base) sizet))
   :definition :method
   :inputs (base)
   :outputs (base)
@@ -50,8 +50,8 @@
 	  dest)))
   "gsl_ran_choose"
   (((mpointer generator) :pointer)
-   ((foreign-pointer destarr) :pointer) ((dim0 destarr) sizet)
-   ((foreign-pointer src) :pointer) ((dim0 src) sizet) ((grid:element-size src) sizet))
+   ((grid:foreign-pointer destarr) :pointer) ((dim0 destarr) sizet)
+   ((grid:foreign-pointer src) :pointer) ((dim0 src) sizet) ((grid:element-size src) sizet))
   :definition :method
   :inputs (src)
   :outputs (destarr)
@@ -78,8 +78,8 @@
 	  dest)))
   "gsl_ran_sample"
   (((mpointer generator) :pointer)
-   ((foreign-pointer destarr) :pointer) ((dim0 destarr) sizet)
-   ((foreign-pointer src) :pointer) ((dim0 src) sizet) ((grid:element-size src) sizet))
+   ((grid:foreign-pointer destarr) :pointer) ((dim0 destarr) sizet)
+   ((grid:foreign-pointer src) :pointer) ((dim0 src) sizet) ((grid:element-size src) sizet))
   :definition :method
   :inputs (src)
   :outputs (destarr)
diff --git a/random/spherical-vector.lisp b/random/spherical-vector.lisp
index 70f70667853f15f66968159f7c8f796d05c596fd..f8bd795c6fbbf387284dbfd1e9ca4251d2c127da 100644
--- a/random/spherical-vector.lisp
+++ b/random/spherical-vector.lisp
@@ -1,8 +1,8 @@
 ;; Spherical Vector distribution
 ;; Liam Healy, Sun Oct  22 2006
-;; Time-stamp: <2010-06-27 18:13:44EDT spherical-vector.lisp>
+;; Time-stamp: <2011-01-10 17:59:30EST spherical-vector.lisp>
 ;;
-;; Copyright 2006, 2007, 2008, 2009 Liam M. Healy
+;; Copyright 2006, 2007, 2008, 2009, 2011 Liam M. Healy
 ;; Distributed under the terms of the GNU General Public License
 ;;
 ;; This program is free software: you can redistribute it and/or modify
@@ -68,7 +68,7 @@
     ((generator random-number-generator) (type (eql :direction-Nd)) &key vector)
   "gsl_ran_dir_nd"
   (((mpointer generator) :pointer) ((dim0 vector) sizet)
-   ((foreign-pointer vector) :pointer))
+   ((grid:foreign-pointer vector) :pointer))
   :definition :method
   :c-return :void
   :outputs (vector)
diff --git a/series-acceleration.lisp b/series-acceleration.lisp
index 9497539cbc558cc1784474176e2430bbcac5f145..c4721c47d8fb099590057571b7be5e29609d2c4c 100644
--- a/series-acceleration.lisp
+++ b/series-acceleration.lisp
@@ -1,8 +1,8 @@
 ;; Series acceleration.
 ;; Liam Healy, Wed Nov 21 2007 - 18:41
-;; Time-stamp: <2010-08-07 21:41:14EDT series-acceleration.lisp>
+;; Time-stamp: <2011-01-10 17:59:30EST series-acceleration.lisp>
 ;;
-;; Copyright 2007, 2008, 2009 Liam M. Healy
+;; Copyright 2007, 2008, 2009, 2011 Liam M. Healy
 ;; Distributed under the terms of the GNU General Public License
 ;;
 ;; This program is free software: you can redistribute it and/or modify
@@ -38,7 +38,7 @@
 
 (defmfun accelerate (array levin)
   "gsl_sum_levin_u_accel"
-  (((foreign-pointer array) :pointer) ((dim0 array) sizet) ((mpointer levin) :pointer)
+  (((grid:foreign-pointer array) :pointer) ((dim0 array) sizet) ((mpointer levin) :pointer)
    (accelerated-sum (:pointer :double)) (abserr (:pointer :double)))
   :inputs (array)
   :documentation			; FDL
@@ -66,7 +66,7 @@
 
 (defmfun accelerate-truncated (array levin)
   "gsl_sum_levin_utrunc_accel"
-  (((foreign-pointer array) :pointer) ((dim0 array) sizet) ((mpointer levin) :pointer)
+  (((grid:foreign-pointer array) :pointer) ((dim0 array) sizet) ((mpointer levin) :pointer)
    (accelerated-sum (:pointer :double)) (abserr (:pointer :double)))
   :inputs (array)
   :documentation			; FDL
diff --git a/solve-minimize-fit/linear-least-squares.lisp b/solve-minimize-fit/linear-least-squares.lisp
index c24a7857b4e60ef928b0bd7a65a1e2ab824490b1..2fbfc681d8f338e5a4dcf039450c486b13a9ad96 100644
--- a/solve-minimize-fit/linear-least-squares.lisp
+++ b/solve-minimize-fit/linear-least-squares.lisp
@@ -1,8 +1,8 @@
 ;; Linear least squares, or linear regression
 ;; Liam Healy <2008-01-21 12:41:46EST linear-least-squares.lisp>
-;; Time-stamp: <2010-06-30 19:57:28EDT linear-least-squares.lisp>
+;; Time-stamp: <2011-01-10 17:59:31EST linear-least-squares.lisp>
 ;;
-;; Copyright 2008, 2009 Liam M. Healy
+;; Copyright 2008, 2009, 2011 Liam M. Healy
 ;; Distributed under the terms of the GNU General Public License
 ;;
 ;; This program is free software: you can redistribute it and/or modify
@@ -36,15 +36,15 @@
 (defmfun linear-fit
     (x y &optional weight (x-stride 1) (y-stride 1) (weight-stride 1))
   ("gsl_fit_linear" "gsl_fit_wlinear")
-  ((((foreign-pointer x) :pointer) (x-stride sizet)
-    ((foreign-pointer y) :pointer) (y-stride sizet)
+  ((((grid:foreign-pointer x) :pointer) (x-stride sizet)
+    ((grid:foreign-pointer y) :pointer) (y-stride sizet)
     ((dim0 x) sizet)
     (c0 (:pointer :double)) (c1 (:pointer :double))
     (cov00 (:pointer :double)) (cov01 (:pointer :double))
     (cov11 (:pointer :double)) (sumsq (:pointer :double)))
-   (((foreign-pointer x) :pointer) (x-stride sizet)
-    ((foreign-pointer weight) :pointer) (weight-stride sizet)
-    ((foreign-pointer y) :pointer) (y-stride sizet)
+   (((grid:foreign-pointer x) :pointer) (x-stride sizet)
+    ((grid:foreign-pointer weight) :pointer) (weight-stride sizet)
+    ((grid:foreign-pointer y) :pointer) (y-stride sizet)
     ((dim0 x) sizet)
     (c0 (:pointer :double)) (c1 (:pointer :double))
     (cov00 (:pointer :double)) (cov01 (:pointer :double))
@@ -85,14 +85,14 @@
 (defmfun multiplier-fit
     (x y &optional weight (x-stride 1) (y-stride 1) (weight-stride 1))
   ("gsl_fit_mul" "gsl_fit_wmul")
-  ((((foreign-pointer x) :pointer) (x-stride sizet)
-    ((foreign-pointer y) :pointer) (y-stride sizet)
+  ((((grid:foreign-pointer x) :pointer) (x-stride sizet)
+    ((grid:foreign-pointer y) :pointer) (y-stride sizet)
     ((dim0 x) sizet)
     (c1 (:pointer :double)) (cov11 (:pointer :double))
     (sumsq (:pointer :double)))
-   (((foreign-pointer x) :pointer) (x-stride sizet)
-    ((foreign-pointer weight) :pointer) (weight-stride sizet)
-    ((foreign-pointer y) :pointer) (y-stride sizet)
+   (((grid:foreign-pointer x) :pointer) (x-stride sizet)
+    ((grid:foreign-pointer weight) :pointer) (weight-stride sizet)
+    ((grid:foreign-pointer y) :pointer) (y-stride sizet)
     ((dim0 x) sizet)
     (c1 (:pointer :double)) (cov11 (:pointer :double))
     (sumsq (:pointer :double))))
diff --git a/sorting.lisp b/sorting.lisp
index 8b196bb628ac716fe56c52ae7039e8f821602a60..437cdb0b862e66c9275bd164b60111744288eab4 100644
--- a/sorting.lisp
+++ b/sorting.lisp
@@ -1,8 +1,8 @@
 ;; Sorting
 ;; Liam Healy, Fri Apr 14 2006 - 20:20
-;; Time-stamp: <2010-07-07 14:24:54EDT sorting.lisp>
+;; Time-stamp: <2011-01-10 17:59:31EST sorting.lisp>
 ;;
-;; Copyright 2006, 2007, 2008, 2009 Liam M. Healy
+;; Copyright 2006, 2007, 2008, 2009, 2011 Liam M. Healy
 ;; Distributed under the terms of the GNU General Public License
 ;;
 ;; This program is free software: you can redistribute it and/or modify
@@ -75,7 +75,7 @@
 
 (defmfun msort ((v both))
   ("gsl_sort" :type)
-  (((foreign-pointer v) :pointer) (1 sizet) ((size v) sizet))
+  (((grid:foreign-pointer v) :pointer) (1 sizet) ((size v) sizet))
   :definition :generic
   :element-types :no-complex
   :c-return :void
@@ -99,7 +99,7 @@
 (defmfun sort-index ((permutation permutation) (vector vector))
   ("gsl_sort" :type "_index")
   (((mpointer permutation) :pointer)
-   ((foreign-pointer vector) :pointer)
+   ((grid:foreign-pointer vector) :pointer)
    (1 sizet) ((dim0 vector) sizet))
   :definition :generic
   :element-types :no-complex
@@ -138,7 +138,7 @@
 
 (defmfun sort-vector-smallest (dest (v vector))
   ("gsl_sort_vector" :type "_smallest")
-  (((foreign-pointer dest) :pointer) ((dim0 dest) sizet)
+  (((grid:foreign-pointer dest) :pointer) ((dim0 dest) sizet)
    ((mpointer v) :pointer))
   :definition :generic
   :element-types :no-complex
@@ -151,8 +151,8 @@
 
 (defmfun sort-smallest (dest (v both))
   ("gsl_sort" :type "_smallest")
-  (((foreign-pointer dest) :pointer) ((size dest) sizet)
-   ((foreign-pointer v) :pointer)
+  (((grid:foreign-pointer dest) :pointer) ((size dest) sizet)
+   ((grid:foreign-pointer v) :pointer)
    (1 sizet)				; stride, set to 1 for now
    ((size v) sizet))
   :definition :generic
@@ -166,7 +166,7 @@
 
 (defmfun sort-vector-smallest-index (combination (v vector))
   ("gsl_sort_vector" :type "_smallest_index")
-  (((foreign-pointer combination) :pointer) ((size combination) sizet)
+  (((grid:foreign-pointer combination) :pointer) ((size combination) sizet)
    ((mpointer v) :pointer)
    (1 sizet)				; stride, set to 1 for now
    ((first (dimensions combination)) sizet))
@@ -184,8 +184,8 @@
 
 (defmfun sort-smallest-index (combination (v vector))
   ("gsl_sort" :type "_smallest_index")
-  (((foreign-pointer combination) :pointer) ((size combination) sizet)
-   ((foreign-pointer v) :pointer)
+  (((grid:foreign-pointer combination) :pointer) ((size combination) sizet)
+   ((grid:foreign-pointer v) :pointer)
    (1 sizet)				; stride, set to 1 for now
    ((first (dimensions combination)) sizet))
   :definition :generic
@@ -202,7 +202,7 @@
 
 (defmfun sort-vector-largest (dest (v vector))
   ("gsl_sort_vector" :type "_largest")
-  (((foreign-pointer dest) :pointer) ((dim0 dest) sizet)
+  (((grid:foreign-pointer dest) :pointer) ((dim0 dest) sizet)
    ((mpointer v) :pointer))
   :definition :generic
   :element-types :no-complex
@@ -215,8 +215,8 @@
 
 (defmfun sort-largest (dest (v both))
   ("gsl_sort" :type "_largest")
-  (((foreign-pointer dest) :pointer) ((size dest) sizet)
-   ((foreign-pointer v) :pointer)
+  (((grid:foreign-pointer dest) :pointer) ((size dest) sizet)
+   ((grid:foreign-pointer v) :pointer)
    (1 sizet)				; stride, set to 1 for now
    ((size v) sizet))
   :definition :generic
@@ -230,7 +230,7 @@
 
 (defmfun sort-vector-largest-index (combination (v vector))
   ("gsl_sort_vector" :type "_largest_index")
-  (((foreign-pointer combination) :pointer) ((size combination) sizet)
+  (((grid:foreign-pointer combination) :pointer) ((size combination) sizet)
    ((mpointer v) :pointer)
    (1 sizet)				; stride, set to 1 for now
    ((first (dimensions combination)) sizet))
@@ -248,8 +248,8 @@
 
 (defmfun sort-largest-index (combination (v vector))
   ("gsl_sort" :type "_largest_index")
-  (((foreign-pointer combination) :pointer) ((size combination) sizet)
-   ((foreign-pointer v) :pointer)
+  (((grid:foreign-pointer combination) :pointer) ((size combination) sizet)
+   ((grid:foreign-pointer v) :pointer)
    (1 sizet)				; stride, set to 1 for now
    ((first (dimensions combination)) sizet))
   :element-types :no-complex
diff --git a/special-functions/bessel.lisp b/special-functions/bessel.lisp
index da4735fb9a4db20782317df444a58fed9c749c32..d68eed81dff845c77c5052c2891ee1622a83791d 100644
--- a/special-functions/bessel.lisp
+++ b/special-functions/bessel.lisp
@@ -1,8 +1,8 @@
 ;; Bessel functions
 ;; Liam Healy, Fri Mar 17 2006 - 18:42
-;; Time-stamp: <2010-07-07 14:24:57EDT bessel.lisp>
+;; Time-stamp: <2011-01-10 17:59:32EST bessel.lisp>
 ;;
-;; Copyright 2006, 2007, 2008, 2009 Liam M. Healy
+;; Copyright 2006, 2007, 2008, 2009, 2011 Liam M. Healy
 ;; Distributed under the terms of the GNU General Public License
 ;;
 ;; This program is free software: you can redistribute it and/or modify
@@ -49,7 +49,7 @@
        &aux (array (vdf size-or-array)))
   "gsl_sf_bessel_Jn_array"
   ((nmin :int) ((+ nmin (dim0 array) -1) :int) (x :double)
-   ((foreign-pointer array) :pointer))
+   ((grid:foreign-pointer array) :pointer))
   :outputs (array)
   :documentation			; FDL
   "The values of the regular cylindrical Bessel functions J_n(x)
@@ -65,7 +65,7 @@
 
 (defmfun cylindrical-bessel-J-array-x (nu v &optional (mode :double))
   "gsl_sf_bessel_sequence_Jnu_e"
-  ((nu :double) (mode sf-mode) ((dim0 v) :int) ((foreign-pointer v) :pointer))
+  ((nu :double) (mode sf-mode) ((dim0 v) :int) ((grid:foreign-pointer v) :pointer))
   :inputs (v)
   :outputs (v)
   :documentation			; FDL
@@ -106,7 +106,7 @@
        &aux (array (vdf size-or-array)))
   "gsl_sf_bessel_Yn_array"
   ((nmin :int) ((+ nmin (dim0 array) -1) :int) (x :double)
-   ((foreign-pointer array) :pointer))
+   ((grid:foreign-pointer array) :pointer))
   :outputs (array)
   :documentation			; FDL
   "The values of the irregular cylindrical Bessel functions
@@ -150,7 +150,7 @@
        &aux (array (vdf size-or-array)))
   "gsl_sf_bessel_In_array"
   ((nmin :int) ((+ nmin (dim0 array) -1) :int) (x :double)
-   ((foreign-pointer array) :pointer))
+   ((grid:foreign-pointer array) :pointer))
   :outputs (array)
   :documentation			; FDL
   "The values of the regular modified cylindrical Bessel functions
@@ -188,7 +188,7 @@
        &aux (array (vdf size-or-array)))
   "gsl_sf_bessel_In_scaled_array"
   ((nmin :int) ((+ nmin (dim0 array) -1) :int) (x :double)
-   ((foreign-pointer array) :pointer))
+   ((grid:foreign-pointer array) :pointer))
   :outputs (array)
   :documentation			; FDL
   ;; Bug in original documentation?  doesn't say "modified"
@@ -243,7 +243,7 @@
        &aux (array (vdf size-or-array)))
   "gsl_sf_bessel_Kn_array"
   ((nmin :int) ((+ nmin (dim0 array) -1) :int) (x :double)
-   ((foreign-pointer array) :pointer))
+   ((grid:foreign-pointer array) :pointer))
   :outputs (array)
   :documentation			; FDL
   "The values of the irregular modified cylindrical Bessel functions
@@ -278,7 +278,7 @@
        &aux (array (vdf size-or-array)))
   "gsl_sf_bessel_Kn_scaled_array"
   ((nmin :int) ((+ nmin (dim0 array) -1) :int) (x :double)
-   ((foreign-pointer array) :pointer))
+   ((grid:foreign-pointer array) :pointer))
   :outputs (array)
   :documentation			; FDL
   "The values of the scaled irregular cylindrical
@@ -342,7 +342,7 @@
     (x &optional (size-or-array *default-sf-array-size*)
        &aux (array (vdf size-or-array)))
   "gsl_sf_bessel_jl_array"
-  (((1- (dim0 array)) :int) (x :double) ((foreign-pointer array) :pointer))
+  (((1- (dim0 array)) :int) (x :double) ((grid:foreign-pointer array) :pointer))
   :outputs (array)
   :documentation			; FDL
   "The values of the regular spherical Bessel
@@ -354,7 +354,7 @@
     (x &optional (size-or-array *default-sf-array-size*)
        &aux (array (vdf size-or-array)))
   "gsl_sf_bessel_jl_steed_array"
-  (((1- (dim0 array)) :int) (x :double) ((foreign-pointer array) :pointer))
+  (((1- (dim0 array)) :int) (x :double) ((grid:foreign-pointer array) :pointer))
   :outputs (array)
   :documentation			; FDL
   "Uses Steed's method to compute the values of the regular spherical
@@ -395,7 +395,7 @@
     (x &optional (size-or-array *default-sf-array-size*)
        &aux (array (vdf size-or-array)))
   "gsl_sf_bessel_yl_array"
-  (((1- (dim0 array)) :int) (x :double) ((foreign-pointer array) :pointer))
+  (((1- (dim0 array)) :int) (x :double) ((grid:foreign-pointer array) :pointer))
   :outputs (array)
   :documentation			; FDL
   "The irregular spherical Bessel functions y_l(x) for l
@@ -435,7 +435,7 @@
     (x &optional (size-or-array *default-sf-array-size*)
        &aux (array (vdf size-or-array)))
   "gsl_sf_bessel_il_scaled_array"
-  (((1- (dim0 array)) :int) (x :double) ((foreign-pointer array) :pointer))
+  (((1- (dim0 array)) :int) (x :double) ((grid:foreign-pointer array) :pointer))
   :outputs (array)
   :documentation			; FDL
   "The values of the scaled regular modified cylindrical Bessel
@@ -475,7 +475,7 @@
     (x &optional (size-or-array *default-sf-array-size*)
        &aux (array (vdf size-or-array)))
   "gsl_sf_bessel_kl_scaled_array"
-  (((1- (dim0 array)) :int) (x :double) ((foreign-pointer array) :pointer))
+  (((1- (dim0 array)) :int) (x :double) ((grid:foreign-pointer array) :pointer))
   :outputs (array)
   :documentation			; FDL
   "The values of the scaled irregular modified spherical Bessel
diff --git a/special-functions/coulomb.lisp b/special-functions/coulomb.lisp
index 4601633e4804aae4e6039e216231d64bdf6e88e5..11d951533cd91bdf146368d0456dd47ebed7a178 100644
--- a/special-functions/coulomb.lisp
+++ b/special-functions/coulomb.lisp
@@ -1,8 +1,8 @@
 ;; Coulumb functions
 ;; Liam Healy, Sat Mar 18 2006 - 23:23
-;; Time-stamp: <2010-07-07 14:24:53EDT coulomb.lisp>
+;; Time-stamp: <2011-01-10 17:59:32EST coulomb.lisp>
 ;;
-;; Copyright 2006, 2007, 2008, 2009 Liam M. Healy
+;; Copyright 2006, 2007, 2008, 2009, 2011 Liam M. Healy
 ;; Distributed under the terms of the GNU General Public License
 ;;
 ;; This program is free software: you can redistribute it and/or modify
@@ -70,7 +70,7 @@
 	   &aux (fc-array (vdf size-or-array)))
   "gsl_sf_coulomb_wave_F_array"
   ((L-min :double) ((1- (dim0 fc-array)) :int) (eta :double) (x :double)
-   ((foreign-pointer fc-array) :pointer) (F-exponent (:pointer :double)))
+   ((grid:foreign-pointer fc-array) :pointer) (F-exponent (:pointer :double)))
   :outputs (fc-array)
   :return (fc-array (grid:dcref F-exponent))
   :documentation			; FDL
@@ -86,7 +86,7 @@
 	   (gc-array (vdf (or gc-size-or-array (dim0 fc-array)))))
   "gsl_sf_coulomb_wave_FG_array"
   ((L-min :double) ((1- (dim0 fc-array)) :int) (eta :double) (x :double)
-   ((foreign-pointer fc-array) :pointer) ((foreign-pointer gc-array) :pointer)
+   ((grid:foreign-pointer fc-array) :pointer) ((grid:foreign-pointer gc-array) :pointer)
    (F-exponent (:pointer :double)) (G-exponent (:pointer :double)))
   :outputs (fc-array gc-array)
   :return (fc-array gc-array (grid:dcref F-exponent) (grid:dcref G-exponent))
@@ -108,8 +108,8 @@
 	   (gcp-array (vdf (or gcp-size-or-array (dim0 fc-array)))))
   "gsl_sf_coulomb_wave_FGp_array"
   ((L-min :double) ((1- (dim0 fc-array)) :int) (eta :double) (x :double)
-   ((foreign-pointer fc-array) :pointer) ((foreign-pointer fcp-array) :pointer)
-   ((foreign-pointer gc-array) :pointer) ((foreign-pointer gcp-array) :pointer)
+   ((grid:foreign-pointer fc-array) :pointer) ((grid:foreign-pointer fcp-array) :pointer)
+   ((grid:foreign-pointer gc-array) :pointer) ((grid:foreign-pointer gcp-array) :pointer)
    (F-exponent (:pointer :double)) (G-exponent (:pointer :double)))
   :outputs (fc-array fcp-array gc-array gcp-array)
   :return
@@ -128,7 +128,7 @@
 	   &aux (fc-array (vdf size-or-array)))
   "gsl_sf_coulomb_wave_sphF_array"
   ((L-min :double) ((1- (dim0 fc-array)) :int) (eta :double) (x :double)
-   ((foreign-pointer fc-array) :pointer) (F-exponent (:pointer :double)))
+   ((grid:foreign-pointer fc-array) :pointer) (F-exponent (:pointer :double)))
   :outputs (fc-array)
   :return (fc-array (grid:dcref F-exponent))
   :documentation			; FDL
@@ -153,7 +153,7 @@
 	   &aux (array (vdf size-or-array)))
   "gsl_sf_coulomb_CL_array"
   ((L-min :double) ((1- (dim0 array)) :int) (eta :double)
-   ((foreign-pointer array) :pointer))
+   ((grid:foreign-pointer array) :pointer))
   :outputs (array)
   :documentation			; FDL
   "The Coulomb wave function normalization constant C_L(\eta)
diff --git a/special-functions/gegenbauer.lisp b/special-functions/gegenbauer.lisp
index 87d83a52ecafa3fc568b26684984f8407a9dc2f3..53c7ed85d0b28a3bc8b0d755b7bc389658c622a5 100644
--- a/special-functions/gegenbauer.lisp
+++ b/special-functions/gegenbauer.lisp
@@ -1,8 +1,8 @@
 ;; Gegenbauer polynomials
 ;; Liam Healy, Fri Apr 28 2006 - 20:40
-;; Time-stamp: <2010-07-07 14:24:57EDT gegenbauer.lisp>
+;; Time-stamp: <2011-01-10 17:59:32EST gegenbauer.lisp>
 ;;
-;; Copyright 2006, 2007, 2008, 2009 Liam M. Healy
+;; Copyright 2006, 2007, 2008, 2009, 2011 Liam M. Healy
 ;; Distributed under the terms of the GNU General Public License
 ;;
 ;; This program is free software: you can redistribute it and/or modify
@@ -47,7 +47,7 @@
 	    &aux (array (vdf size-or-array)))
   "gsl_sf_gegenpoly_array"
   (((1- (dim0 array)) :int)
-   (lambda :double) (x :double) ((foreign-pointer array) :pointer))
+   (lambda :double) (x :double) ((grid:foreign-pointer array) :pointer))
   :outputs (array)
   :documentation			; FDL
   "Compute an array of Gegenbauer polynomials C^{(\lambda)}_n(X)}
diff --git a/special-functions/legendre.lisp b/special-functions/legendre.lisp
index b19a98a104f64a016f897d4f04d45881f0d53564..37aecf370cfaad71856e190eb7e84ddfa4f14c33 100644
--- a/special-functions/legendre.lisp
+++ b/special-functions/legendre.lisp
@@ -1,8 +1,8 @@
 ;; Legendre functions
 ;; Liam Healy, Sat Apr 29 2006 - 19:16
-;; Time-stamp: <2010-07-07 14:24:57EDT legendre.lisp>
+;; Time-stamp: <2011-01-10 17:59:33EST legendre.lisp>
 ;;
-;; Copyright 2006, 2007, 2008, 2009 Liam M. Healy
+;; Copyright 2006, 2007, 2008, 2009, 2011 Liam M. Healy
 ;; Distributed under the terms of the GNU General Public License
 ;;
 ;; This program is free software: you can redistribute it and/or modify
@@ -54,7 +54,7 @@
     (x &optional (size-or-array *default-sf-array-size*)
        &aux (array (vdf size-or-array)))
   "gsl_sf_legendre_Pl_array"
-  (((1- (dim0 array)) :int) (x :double) ((foreign-pointer array) :pointer))
+  (((1- (dim0 array)) :int) (x :double) ((grid:foreign-pointer array) :pointer))
   :outputs (array)
   :documentation			; FDL
   "Compute an array of Legendre polynomials
@@ -64,7 +64,7 @@
     (x &optional (size-or-array *default-sf-array-size*)
        &aux (array (vdf size-or-array)))
   "gsl_sf_legendre_Pl_deriv_array"
-  (((1- (dim0 array)) :int) (x :double) ((foreign-pointer array) :pointer))
+  (((1- (dim0 array)) :int) (x :double) ((grid:foreign-pointer array) :pointer))
   :outputs (array)
   :documentation			; FDL
   "Compute an array of Legendre polynomials derivatives
@@ -115,7 +115,7 @@
        &aux (array (vdf size-or-array)))
   "gsl_sf_legendre_Plm_array"
   (((+ (dim0 array) m -1) :int) (m :int) (x :double)
-   ((foreign-pointer array) :pointer))
+   ((grid:foreign-pointer array) :pointer))
   :outputs (array)
   :documentation			; FDL
   "An array of Legendre polynomials
@@ -129,7 +129,7 @@
        (derivatives (vdf derivatives-size-or-array)))
   "gsl_sf_legendre_Plm_deriv_array"
   (((+ (dim0 values) m -1) :int) (m :int) (x :double)
-   ((foreign-pointer values) :pointer) ((foreign-pointer derivatives) :pointer))
+   ((grid:foreign-pointer values) :pointer) ((grid:foreign-pointer derivatives) :pointer))
   :outputs (values derivatives)
   :documentation			; FDL
   "An array of Legendre polynomials
@@ -150,7 +150,7 @@
        &aux (array (vdf size-or-array)))
   "gsl_sf_legendre_sphPlm_array"
   (((+ (dim0 array) m -1) :int) (m :int) (x :double)
-   ((foreign-pointer array) :pointer))
+   ((grid:foreign-pointer array) :pointer))
   :outputs (array)
   :documentation			; FDL
   "An array of normalized associated Legendre functions
@@ -164,7 +164,7 @@
        (derivatives (vdf derivatives-size-or-array)))
   "gsl_sf_legendre_sphPlm_deriv_array"
   (((+ (dim0 values) m -1) :int) (m :int) (x :double)
-   ((foreign-pointer values) :pointer) ((foreign-pointer derivatives) :pointer))
+   ((grid:foreign-pointer values) :pointer) ((grid:foreign-pointer derivatives) :pointer))
   :outputs (values derivatives)
   :documentation			; FDL
   "An array of normalized associated Legendre functions
@@ -270,7 +270,7 @@
 	    &aux (array (vdf size-or-array)))
   "gsl_sf_legendre_H3d_array"
   (((1- (dim0 array)) :int) (lambda :double) (eta :double)
-   ((foreign-pointer array) :pointer))
+   ((grid:foreign-pointer array) :pointer))
   :outputs (array)
   :documentation			; FDL
   "An array of radial eigenfunctions
diff --git a/special-functions/mathieu.lisp b/special-functions/mathieu.lisp
index 09a7bf731f4b5f1c1b710ec03af836f7685b0612..0e3e454c44af8dba4becc407c8e714463e510607 100644
--- a/special-functions/mathieu.lisp
+++ b/special-functions/mathieu.lisp
@@ -1,8 +1,8 @@
 ;; Mathieu functions
 ;; Liam Healy 2009-02-16 16:30:59EST mathieu.lisp
-;; Time-stamp: <2010-08-07 21:38:53EDT mathieu.lisp>
+;; Time-stamp: <2011-01-10 17:59:33EST mathieu.lisp>
 ;;
-;; Copyright 2009, 2010 Liam M. Healy
+;; Copyright 2009, 2010, 2011 Liam M. Healy
 ;; Distributed under the terms of the GNU General Public License
 ;;
 ;; This program is free software: you can redistribute it and/or modify
@@ -59,7 +59,7 @@
        &aux (size (vdf-size size-or-array)) (result-array (vdf size)))
   "gsl_sf_mathieu_a_array"
   ((minimum-order :int) ((+ minimum-order size -1) :int) (q :double)
-   ((mpointer workspace) :pointer) ((foreign-pointer result-array) :pointer))
+   ((mpointer workspace) :pointer) ((grid:foreign-pointer result-array) :pointer))
   :gsl-version (1 9)
   :outputs (result-array)
   :return (result-array)
@@ -78,7 +78,7 @@
        &aux (size (vdf-size size-or-array)) (result-array (vdf size)))
   "gsl_sf_mathieu_b_array"
   ((minimum-order :int) ((+ minimum-order size -1) :int) (q :double)
-   ((mpointer workspace) :pointer) ((foreign-pointer result-array) :pointer))
+   ((mpointer workspace) :pointer) ((grid:foreign-pointer result-array) :pointer))
   :gsl-version (1 9)
   :outputs (result-array)
   :return (result-array)
@@ -116,7 +116,7 @@
   "gsl_sf_mathieu_ce_array"
   ((minimum-order :int) ((+ minimum-order size -1) :int)
    (q :double) (x :double)
-   ((mpointer workspace) :pointer) ((foreign-pointer result-array) :pointer))
+   ((mpointer workspace) :pointer) ((grid:foreign-pointer result-array) :pointer))
   :gsl-version (1 9)
   :outputs (result-array)
   :return (result-array)
@@ -136,7 +136,7 @@
   "gsl_sf_mathieu_se_array"
   ((minimum-order :int) ((+ minimum-order size -1) :int)
    (q :double) (x :double)
-   ((mpointer workspace) :pointer) ((foreign-pointer result-array) :pointer))
+   ((mpointer workspace) :pointer) ((grid:foreign-pointer result-array) :pointer))
   :gsl-version (1 9)
   :outputs (result-array)
   :return (result-array)
@@ -182,7 +182,7 @@
   "gsl_sf_mathieu_Mc_array"
   ((j :int) (minimum-order :int) ((+ minimum-order size) :int)
    (q :double) (x :double)
-   ((mpointer workspace) :pointer) ((foreign-pointer result-array) :pointer))
+   ((mpointer workspace) :pointer) ((grid:foreign-pointer result-array) :pointer))
   :gsl-version (1 9)
   :outputs (result-array)
   :return (result-array)
@@ -202,7 +202,7 @@
   "gsl_sf_mathieu_Ms_array"
   ((j :int) (minimum-order :int) ((+ minimum-order size) :int)
    (q :double) (x :double)
-   ((mpointer workspace) :pointer) ((foreign-pointer result-array) :pointer))
+   ((mpointer workspace) :pointer) ((grid:foreign-pointer result-array) :pointer))
   :gsl-version (1 9)
   :outputs (result-array)
   :return (result-array)
diff --git a/statistics/absolute-deviation.lisp b/statistics/absolute-deviation.lisp
index 64f598de83f4bf7b694f325f3605e1eb30384854..01381c34385186f6555f335928e79c54f2f3354e 100644
--- a/statistics/absolute-deviation.lisp
+++ b/statistics/absolute-deviation.lisp
@@ -1,8 +1,8 @@
 ;; Absolute deviation
 ;; Liam Healy, Sun Dec 31 2006 - 13:19
-;; Time-stamp: <2010-06-27 18:14:02EDT absolute-deviation.lisp>
+;; Time-stamp: <2011-01-10 17:59:33EST absolute-deviation.lisp>
 ;;
-;; Copyright 2006, 2007, 2008, 2009 Liam M. Healy
+;; Copyright 2006, 2007, 2008, 2009, 2011 Liam M. Healy
 ;; Distributed under the terms of the GNU General Public License
 ;;
 ;; This program is free software: you can redistribute it and/or modify
@@ -26,8 +26,8 @@
 (defmfun absolute-deviation ((data vector) &optional mean)
   (("gsl_stats" :type "_absdev")
    ("gsl_stats" :type "_absdev_m"))
-  ((((foreign-pointer data) :pointer) (1 :int) ((dim0 data) sizet))
-   (((foreign-pointer data) :pointer) (1 :int) ((dim0 data) sizet)
+  ((((grid:foreign-pointer data) :pointer) (1 :int) ((dim0 data) sizet))
+   (((grid:foreign-pointer data) :pointer) (1 :int) ((dim0 data) sizet)
     (mean :double)))
   :definition :generic
   :element-types :no-complex
@@ -48,11 +48,11 @@
 (defmfun weighted-absolute-deviation ((data vector) (weights vector) &optional mean)
   (("gsl_stats" :type "_wabsdev")
    ("gsl_stats" :type "_wabsdev_m"))
-  ((((foreign-pointer weights) :pointer) (1 :int)
-    ((foreign-pointer data) :pointer) (1 :int)
+  ((((grid:foreign-pointer weights) :pointer) (1 :int)
+    ((grid:foreign-pointer data) :pointer) (1 :int)
     ((dim0 data) sizet))
-   (((foreign-pointer weights) :pointer) (1 :int)
-    ((foreign-pointer data) :pointer) (1 :int)
+   (((grid:foreign-pointer weights) :pointer) (1 :int)
+    ((grid:foreign-pointer data) :pointer) (1 :int)
     ((dim0 data) sizet) (mean :double)))
   :definition :generic
   :element-types :float
diff --git a/statistics/autocorrelation.lisp b/statistics/autocorrelation.lisp
index 20d29fe261684e6ae639d9bd83ba7ffa6d2bb3d0..dc04aea517dd9839fb2f099c89de8ba6cf4e62f8 100644
--- a/statistics/autocorrelation.lisp
+++ b/statistics/autocorrelation.lisp
@@ -1,8 +1,8 @@
 ;; Autocorrelation
 ;; Liam Healy, Sun Dec 31 2006 - 13:19
-;; Time-stamp: <2010-06-27 18:14:03EDT autocorrelation.lisp>
+;; Time-stamp: <2011-01-10 17:59:34EST autocorrelation.lisp>
 ;;
-;; Copyright 2006, 2007, 2008, 2009 Liam M. Healy
+;; Copyright 2006, 2007, 2008, 2009, 2011 Liam M. Healy
 ;; Distributed under the terms of the GNU General Public License
 ;;
 ;; This program is free software: you can redistribute it and/or modify
@@ -26,8 +26,8 @@
 (defmfun autocorrelation ((data vector) &optional mean)
   (("gsl_stats" :type "_lag1_autocorrelation")
    ("gsl_stats" :type "_lag1_autocorrelation_m"))
-  ((((foreign-pointer data) :pointer) (1 :int) ((dim0 data) sizet))
-   (((foreign-pointer data) :pointer) (1 :int) ((dim0 data) sizet)
+  ((((grid:foreign-pointer data) :pointer) (1 :int) ((dim0 data) sizet))
+   (((grid:foreign-pointer data) :pointer) (1 :int) ((dim0 data) sizet)
     (mean :double)))
   :definition :generic
   :element-types :no-complex
diff --git a/statistics/covariance.lisp b/statistics/covariance.lisp
index 6d7ce75615333ce49930c0eee73670017c72715a..c1b79f16bc4d472d9e4f2781c7f1617bb8fa9a7c 100644
--- a/statistics/covariance.lisp
+++ b/statistics/covariance.lisp
@@ -1,8 +1,8 @@
 ;; Covariance
 ;; Liam Healy, Sun Dec 31 2006 - 13:19
-;; Time-stamp: <2010-06-27 18:14:03EDT covariance.lisp>
+;; Time-stamp: <2011-01-10 17:59:34EST covariance.lisp>
 ;;
-;; Copyright 2006, 2007, 2008, 2009 Liam M. Healy
+;; Copyright 2006, 2007, 2008, 2009, 2011 Liam M. Healy
 ;; Distributed under the terms of the GNU General Public License
 ;;
 ;; This program is free software: you can redistribute it and/or modify
@@ -27,10 +27,10 @@
     ((data1 vector) (data2 vector) &optional mean1 mean2)
   (("gsl_stats" :type "_covariance")
    ("gsl_stats" :type "_covariance_m"))
-  ((((foreign-pointer data1) :pointer) (1 :int)
-    ((foreign-pointer data2) :pointer) (1 :int) ((dim0 data2) sizet))
-   (((foreign-pointer data1) :pointer) (1 :int)
-    ((foreign-pointer data2) :pointer) (1 :int) ((dim0 data2) sizet)
+  ((((grid:foreign-pointer data1) :pointer) (1 :int)
+    ((grid:foreign-pointer data2) :pointer) (1 :int) ((dim0 data2) sizet))
+   (((grid:foreign-pointer data1) :pointer) (1 :int)
+    ((grid:foreign-pointer data2) :pointer) (1 :int) ((dim0 data2) sizet)
     (mean1 :double) (mean2 :double)))
   :definition :generic
   :element-types :no-complex
@@ -44,8 +44,8 @@
 
 (defmfun correlation ((data1 vector) (data2 vector))
   ("gsl_stats" :type "_correlation")
-  (((foreign-pointer data1) :pointer) (1 :int)
-    ((foreign-pointer data2) :pointer) (1 :int) ((dim0 data2) sizet))
+  (((grid:foreign-pointer data1) :pointer) (1 :int)
+    ((grid:foreign-pointer data2) :pointer) (1 :int) ((dim0 data2) sizet))
   :definition :generic
   :gsl-version (1 10)
   :element-types :no-complex
diff --git a/statistics/higher-moments.lisp b/statistics/higher-moments.lisp
index 179bbc012ba3c35ec1ee431bd8c1958b981c12b5..5dcab44deefa56696aca500fbc560a043f66bd06 100644
--- a/statistics/higher-moments.lisp
+++ b/statistics/higher-moments.lisp
@@ -1,8 +1,8 @@
 ;; Skewness and kurtosis.
 ;; Liam Healy, Sun Dec 31 2006 - 14:20
-;; Time-stamp: <2010-06-27 18:14:02EDT higher-moments.lisp>
+;; Time-stamp: <2011-01-10 17:59:34EST higher-moments.lisp>
 ;;
-;; Copyright 2006, 2007, 2008, 2009 Liam M. Healy
+;; Copyright 2006, 2007, 2008, 2009, 2011 Liam M. Healy
 ;; Distributed under the terms of the GNU General Public License
 ;;
 ;; This program is free software: you can redistribute it and/or modify
@@ -25,8 +25,8 @@
 (defmfun skewness ((data vector) &optional mean standard-deviation)
   (("gsl_stats" :type "_skew")
    ("gsl_stats" :type "_skew_m_sd"))
-  ((((foreign-pointer data) :pointer) (1 :int) ((dim0 data) sizet))
-   (((foreign-pointer data) :pointer) (1 :int) ((dim0 data) sizet)
+  ((((grid:foreign-pointer data) :pointer) (1 :int) ((dim0 data) sizet))
+   (((grid:foreign-pointer data) :pointer) (1 :int) ((dim0 data) sizet)
     (mean :double) (standard-deviation :double)))
   :definition :generic
   :element-types :no-complex
@@ -45,8 +45,8 @@
 (defmfun kurtosis ((data vector) &optional mean standard-deviation)
   (("gsl_stats" :type "_kurtosis")
    ("gsl_stats" :type "_kurtosis_m_sd"))
-  ((((foreign-pointer data) :pointer) (1 :int) ((dim0 data) sizet))
-   (((foreign-pointer data) :pointer) (1 :int) ((dim0 data) sizet)
+  ((((grid:foreign-pointer data) :pointer) (1 :int) ((dim0 data) sizet))
+   (((grid:foreign-pointer data) :pointer) (1 :int) ((dim0 data) sizet)
     (mean :double) (standard-deviation :double)))
   :definition :generic
   :element-types :no-complex
@@ -63,11 +63,11 @@
     ((data vector) (weights vector) &optional mean standard-deviation)
   (("gsl_stats" :type "_wskew")
    ("gsl_stats" :type "_wskew_m_sd"))
-  ((((foreign-pointer weights) :pointer) (1 :int)
-    ((foreign-pointer data) :pointer) (1 :int)
+  ((((grid:foreign-pointer weights) :pointer) (1 :int)
+    ((grid:foreign-pointer data) :pointer) (1 :int)
     ((dim0 data) sizet))
-   (((foreign-pointer weights) :pointer) (1 :int)
-    ((foreign-pointer data) :pointer) (1 :int)
+   (((grid:foreign-pointer weights) :pointer) (1 :int)
+    ((grid:foreign-pointer data) :pointer) (1 :int)
     ((dim0 data) sizet)
     (mean :double) (standard-deviation :double)))
   :definition :generic
@@ -82,11 +82,11 @@
     ((data vector) (weights vector) &optional mean standard-deviation)
   (("gsl_stats" :type "_wkurtosis")
    ("gsl_stats" :type "_wkurtosis_m_sd"))
-  ((((foreign-pointer weights) :pointer) (1 :int)
-    ((foreign-pointer data) :pointer) (1 :int)
+  ((((grid:foreign-pointer weights) :pointer) (1 :int)
+    ((grid:foreign-pointer data) :pointer) (1 :int)
     ((dim0 data) sizet))
-   (((foreign-pointer weights) :pointer) (1 :int)
-    ((foreign-pointer data) :pointer) (1 :int)
+   (((grid:foreign-pointer weights) :pointer) (1 :int)
+    ((grid:foreign-pointer data) :pointer) (1 :int)
     ((dim0 data) sizet)
     (mean :double) (standard-deviation :double)))
   :definition :generic
diff --git a/statistics/mean-variance.lisp b/statistics/mean-variance.lisp
index 60ccf98f66b68cab93f0959bdec88f63ddbd44eb..2669c246aa41898d26abdeb1e92a084eaf365ab6 100644
--- a/statistics/mean-variance.lisp
+++ b/statistics/mean-variance.lisp
@@ -1,8 +1,8 @@
 ;; Mean, standard deviation, and variance    
 ;; Liam Healy, Sat Dec  2 2006 - 22:15
-;; Time-stamp: <2010-06-30 19:57:28EDT mean-variance.lisp>
+;; Time-stamp: <2011-01-10 17:59:35EST mean-variance.lisp>
 ;;
-;; Copyright 2006, 2007, 2008, 2009 Liam M. Healy
+;; Copyright 2006, 2007, 2008, 2009, 2011 Liam M. Healy
 ;; Distributed under the terms of the GNU General Public License
 ;;
 ;; This program is free software: you can redistribute it and/or modify
@@ -29,7 +29,7 @@
 
 (defmfun mean ((array both))
   ("gsl_stats" :type "_mean")
-  (((foreign-pointer array) :pointer) (1 :int) ((size array) sizet))
+  (((grid:foreign-pointer array) :pointer) (1 :int) ((size array) sizet))
   :definition :generic
   :element-types :no-complex
   :c-return :double
@@ -41,8 +41,8 @@
 
 (defmfun weighted-mean ((array both) (weights both))
   ("gsl_stats" :type "_wmean")
-  (((foreign-pointer weights) :pointer) (1 :int)
-   ((foreign-pointer array) :pointer) (1 :int)
+  (((grid:foreign-pointer weights) :pointer) (1 :int)
+   ((grid:foreign-pointer array) :pointer) (1 :int)
    ((size array) sizet))
   :definition :generic
   :element-types :float
@@ -60,8 +60,8 @@
 (defmfun variance ((array both) &optional mean)
   (("gsl_stats" :type "_variance")
    ("gsl_stats" :type "_variance_m"))
-  ((((foreign-pointer array) :pointer) (1 :int) ((size array) sizet))
-   (((foreign-pointer array) :pointer) (1 :int)
+  ((((grid:foreign-pointer array) :pointer) (1 :int) ((size array) sizet))
+   (((grid:foreign-pointer array) :pointer) (1 :int)
    ((size array) sizet) (mean :double)))
   :definition :generic
   :element-types :no-complex
@@ -82,11 +82,11 @@
 (defmfun weighted-variance ((array both) (weights both) &optional mean)
   (("gsl_stats" :type "_wvariance")
    ("gsl_stats" :type "_wvariance_m"))
-  ((((foreign-pointer weights) :pointer) (1 :int)
-    ((foreign-pointer array) :pointer) (1 :int)
+  ((((grid:foreign-pointer weights) :pointer) (1 :int)
+    ((grid:foreign-pointer array) :pointer) (1 :int)
     ((size array) sizet))
-   (((foreign-pointer weights) :pointer) (1 :int)
-    ((foreign-pointer array) :pointer) (1 :int)
+   (((grid:foreign-pointer weights) :pointer) (1 :int)
+    ((grid:foreign-pointer array) :pointer) (1 :int)
     ((size array) sizet) (mean :double)))
   :definition :generic
   :element-types :float
@@ -108,8 +108,8 @@
 (defmfun standard-deviation ((array both) &optional mean)
   (("gsl_stats" :type "_sd")
    ("gsl_stats" :type "_sd_m"))
-  ((((foreign-pointer array) :pointer) (1 :int) ((size array) sizet))
-   (((foreign-pointer array) :pointer) (1 :int)
+  ((((grid:foreign-pointer array) :pointer) (1 :int) ((size array) sizet))
+   (((grid:foreign-pointer array) :pointer) (1 :int)
    ((size array) sizet) (mean :double)))
   :definition :generic
   :element-types :no-complex
@@ -123,11 +123,11 @@
 (defmfun weighted-standard-deviation ((array both) (weights both) &optional mean)
   (("gsl_stats" :type "_wsd")
    ("gsl_stats" :type "_wsd_m"))
-  ((((foreign-pointer weights) :pointer) (1 :int)
-    ((foreign-pointer array) :pointer) (1 :int)
+  ((((grid:foreign-pointer weights) :pointer) (1 :int)
+    ((grid:foreign-pointer array) :pointer) (1 :int)
     ((size array) sizet))
-   (((foreign-pointer weights) :pointer) (1 :int)
-    ((foreign-pointer array) :pointer) (1 :int)
+   (((grid:foreign-pointer weights) :pointer) (1 :int)
+    ((grid:foreign-pointer array) :pointer) (1 :int)
     ((size array) sizet) (mean :double)))
   :definition :generic
   :element-types :float
@@ -144,7 +144,7 @@
 
 (defmfun variance-with-fixed-mean ((array both) mean)
   ("gsl_stats" :type "_variance_with_fixed_mean")
-  (((foreign-pointer array) :pointer) (1 :int)
+  (((grid:foreign-pointer array) :pointer) (1 :int)
    ((size array) sizet) (mean :double))
   :definition :generic
   :element-types :no-complex
@@ -160,7 +160,7 @@
 
 (defmfun standard-deviation-with-fixed-mean ((array both) mean)
   ("gsl_stats" :type "_sd_with_fixed_mean")
-  (((foreign-pointer array) :pointer) (1 :int)
+  (((grid:foreign-pointer array) :pointer) (1 :int)
    ((size array) sizet) (mean :double))
   :definition :generic
   :element-types :no-complex
@@ -178,8 +178,8 @@
 (defmfun weighted-variance-with-fixed-mean
     ((array both) (weights both) mean)
   ("gsl_stats" :type "_wvariance_with_fixed_mean")
-  (((foreign-pointer weights) :pointer) (1 :int)
-   ((foreign-pointer array) :pointer) (1 :int)
+  (((grid:foreign-pointer weights) :pointer) (1 :int)
+   ((grid:foreign-pointer array) :pointer) (1 :int)
    ((size array) sizet) (mean :double))
   :definition :generic
   :element-types :float
@@ -196,8 +196,8 @@
 (defmfun weighted-standard-deviation-with-fixed-mean
     ((array both) (weights both) mean)
   ("gsl_stats" :type "_wsd_with_fixed_mean")
-  (((foreign-pointer weights) :pointer) (1 :int)
-   ((foreign-pointer array) :pointer) (1 :int)
+  (((grid:foreign-pointer weights) :pointer) (1 :int)
+   ((grid:foreign-pointer array) :pointer) (1 :int)
    ((size array) sizet) (mean :double))
   :definition :generic
   :element-types :float
diff --git a/statistics/median-percentile.lisp b/statistics/median-percentile.lisp
index c29993dec1db1acae8dcda1f83217b084be567dd..67eb56bcca3e098690fb1a9e33baabbb541bc1a6 100644
--- a/statistics/median-percentile.lisp
+++ b/statistics/median-percentile.lisp
@@ -1,8 +1,8 @@
 ;; Median and percentile
 ;; Liam Healy, Sun Dec 31 2006 - 13:19
-;; Time-stamp: <2010-06-27 18:14:04EDT median-percentile.lisp>
+;; Time-stamp: <2011-01-10 17:59:35EST median-percentile.lisp>
 ;;
-;; Copyright 2006, 2007, 2008, 2009 Liam M. Healy
+;; Copyright 2006, 2007, 2008, 2009, 2011 Liam M. Healy
 ;; Distributed under the terms of the GNU General Public License
 ;;
 ;; This program is free software: you can redistribute it and/or modify
@@ -25,7 +25,7 @@
 
 (defmfun median ((sorted-data vector))
   ("gsl_stats" :type "_median_from_sorted_data")
-  (((foreign-pointer sorted-data) :pointer) (1 :int) ((dim0 sorted-data) sizet))
+  (((grid:foreign-pointer sorted-data) :pointer) (1 :int) ((dim0 sorted-data) sizet))
   :definition :generic
   :element-types :no-complex
   :c-return :double
@@ -44,7 +44,7 @@
 
 (defmfun quantile ((sorted-data vector) fraction)
   ("gsl_stats" :type "_quantile_from_sorted_data")
-  (((foreign-pointer sorted-data) :pointer) (1 :int) ((dim0 sorted-data) sizet)
+  (((grid:foreign-pointer sorted-data) :pointer) (1 :int) ((dim0 sorted-data) sizet)
    (fraction :double))
   :definition :generic
   :element-types :no-complex
diff --git a/wavelet.lisp b/wavelet.lisp
index 7fda318cb691d0f6d17d4ce30bf8f8109a24270d..fdab6c1195a443fac68532b1e95c30dd8c0c2d85 100644
--- a/wavelet.lisp
+++ b/wavelet.lisp
@@ -1,8 +1,8 @@
 ;; Wavelet transforms.
 ;; Liam Healy, Mon Nov 26 2007 - 20:43
-;; Time-stamp: <2010-07-07 14:24:54EDT wavelet.lisp>
+;; Time-stamp: <2011-01-10 17:55:15EST wavelet.lisp>
 ;;
-;; Copyright 2006, 2007, 2008, 2009 Liam M. Healy
+;; Copyright 2006, 2007, 2008, 2009, 2011 Liam M. Healy
 ;; Distributed under the terms of the GNU General Public License
 ;;
 ;; This program is free software: you can redistribute it and/or modify
@@ -105,7 +105,7 @@
 
 (defmfun wavelet-transform (wavelet data stride direction workspace)
   "gsl_wavelet_transform"
-  (((mpointer wavelet) :pointer) ((foreign-pointer data) :pointer)
+  (((mpointer wavelet) :pointer) ((grid:foreign-pointer data) :pointer)
    (stride sizet) ((dim0 data) sizet) ((forward-backward direction) :int)
    ((mpointer workspace) :pointer))
   :documentation			; FDL
@@ -131,7 +131,7 @@
 
 (defmfun wavelet-transform-forward (wavelet data stride workspace)
   "gsl_wavelet_transform_forward"
-  (((mpointer wavelet) :pointer) ((foreign-pointer data) :pointer)
+  (((mpointer wavelet) :pointer) ((grid:foreign-pointer data) :pointer)
    (stride sizet) ((dim0 data) sizet) ((mpointer workspace) :pointer))
   :documentation			; FDL
   "Compute in-place forward and inverse discrete wavelet
@@ -153,7 +153,7 @@
 
 (defmfun wavelet-transform-inverse (wavelet data stride workspace)
   "gsl_wavelet_transform_inverse"
-  (((mpointer wavelet) :pointer) ((foreign-pointer data) :pointer)
+  (((mpointer wavelet) :pointer) ((grid:foreign-pointer data) :pointer)
    (stride sizet) ((dim0 data) sizet) ((mpointer workspace) :pointer))
   :documentation			; FDL
   "Compute in-place inverse discrete wavelet
@@ -179,7 +179,7 @@
 
 (defmfun wavelet-2d-transform (wavelet data tda direction workspace)
   "gsl_wavelet2d_transform"
-  (((mpointer wavelet) :pointer) ((foreign-pointer data) :pointer)
+  (((mpointer wavelet) :pointer) ((grid:foreign-pointer data) :pointer)
    (tda sizet) ((dim0 data) sizet) ((dim1 data) sizet)
    ((forward-backward direction) :int) ((mpointer workspace) :pointer))
   :documentation			; FDL
@@ -199,7 +199,7 @@
 
 (defmfun wavelet-2d-transform-forward (wavelet data tda workspace)
   "gsl_wavelet2d_transform_forward"
-  (((mpointer wavelet) :pointer) ((foreign-pointer data) :pointer)
+  (((mpointer wavelet) :pointer) ((grid:foreign-pointer data) :pointer)
    (tda sizet) ((dim0 data) sizet) ((dim1 data) sizet)
    ((mpointer workspace) :pointer))
   :documentation			; FDL
@@ -217,7 +217,7 @@
 
 (defmfun wavelet-2d-transform-inverse (wavelet data tda workspace)
   "gsl_wavelet2d_transform_inverse"
-  (((mpointer wavelet) :pointer) ((foreign-pointer data) :pointer)
+  (((mpointer wavelet) :pointer) ((grid:foreign-pointer data) :pointer)
    (tda sizet) ((dim0 data) sizet) ((dim1 data) sizet)
    ((mpointer workspace) :pointer))
   :documentation			; FDL
@@ -233,28 +233,28 @@
 
 (defmfun wavelet-2d-transform-matrix (wavelet data direction workspace)
   "gsl_wavelet2d_transform_matrix"
-  (((mpointer wavelet) :pointer) ((foreign-pointer data) :pointer)
+  (((mpointer wavelet) :pointer) ((grid:foreign-pointer data) :pointer)
    ((forward-backward direction) :int) ((mpointer workspace) :pointer))
   :documentation			; FDL
   "Compute the two-dimensional in-place wavelet transform on a matrix.")
 
 (defmfun wavelet-2d-transform-matrix-forward (wavelet data workspace)
   "gsl_wavelet2d_transform_matrix_forward"
-  (((mpointer wavelet) :pointer) ((foreign-pointer data) :pointer)
+  (((mpointer wavelet) :pointer) ((grid:foreign-pointer data) :pointer)
    ((mpointer workspace) :pointer))
   :documentation			; FDL
   "Compute the two-dimensional in-place wavelet transform on a matrix.")
 
 (defmfun wavelet-2d-transform-matrix-inverse (wavelet data workspace)
   "gsl_wavelet2d_transform_matrix_inverse"
-  (((mpointer wavelet) :pointer) ((foreign-pointer data) :pointer)
+  (((mpointer wavelet) :pointer) ((grid:foreign-pointer data) :pointer)
    ((mpointer workspace) :pointer))
   :documentation			; FDL
   "Compute the two-dimensional in-place wavelet transform on a matrix.")
 
 (defmfun wavelet-2d-nonstandard-transform (wavelet data tda direction workspace)
   "gsl_wavelet2d_nstransform"
-  (((mpointer wavelet) :pointer) ((foreign-pointer data) :pointer)
+  (((mpointer wavelet) :pointer) ((grid:foreign-pointer data) :pointer)
    (tda sizet) ((dim0 data) sizet) ((dim1 data) sizet) (direction :int)
    ((mpointer workspace) :pointer))
   :documentation			; FDL
@@ -262,7 +262,7 @@
 
 (defmfun wavelet-2d-nonstandard-transform-forward (wavelet data tda workspace)
   "gsl_wavelet2d_nstransform_forward"
-  (((mpointer wavelet) :pointer) ((foreign-pointer data) :pointer)
+  (((mpointer wavelet) :pointer) ((grid:foreign-pointer data) :pointer)
    (tda sizet) ((dim0 data) sizet) ((dim1 data) sizet)
    ((mpointer workspace) :pointer))
   :documentation			; FDL
@@ -270,7 +270,7 @@
 
 (defmfun wavelet-2d-nonstandard-transform-inverse (wavelet data tda workspace)
   "gsl_wavelet2d_nstransform_inverse"
-  (((mpointer wavelet) :pointer) ((foreign-pointer data) :pointer)
+  (((mpointer wavelet) :pointer) ((grid:foreign-pointer data) :pointer)
    (tda sizet) ((dim0 data) sizet) ((dim1 data) sizet)
    ((mpointer workspace) :pointer))
   :documentation			; FDL
@@ -278,7 +278,7 @@
 
 (defmfun wavelet-2d-nonstandard-transform-matrix (wavelet data direction workspace)
   "gsl_wavelet2d_nstransform_matrix"
-  (((mpointer wavelet) :pointer) ((foreign-pointer data) :pointer)
+  (((mpointer wavelet) :pointer) ((grid:foreign-pointer data) :pointer)
    (direction :int) ((mpointer workspace) :pointer))
   :documentation
   "Compute the non-standard form of the two-dimensional in-place wavelet
@@ -286,7 +286,7 @@
 
 (defmfun wavelet-2d-nonstandard-transform-matrix-forward (wavelet data workspace)
   "gsl_wavelet2d_nstransform_matrix_forward"
-  (((mpointer wavelet) :pointer) ((foreign-pointer data) :pointer)
+  (((mpointer wavelet) :pointer) ((grid:foreign-pointer data) :pointer)
    ((mpointer workspace) :pointer))
   :documentation			; FDL
   "Compute the non-standard form of the two-dimensional in-place wavelet
@@ -294,7 +294,7 @@
 
 (defmfun wavelet-2d-nonstandard-transform-matrix-inverse (wavelet data workspace)
   "gsl_wavelet2d_nstransform_matrix_inverse"
-  (((mpointer wavelet) :pointer) ((foreign-pointer data) :pointer)
+  (((mpointer wavelet) :pointer) ((grid:foreign-pointer data) :pointer)
    ((mpointer workspace) :pointer))
   :documentation			; FDL
   "Compute the non-standard form of the two-dimensional in-place wavelet