From c3be4c44c980fea93ae18368200d841f29b09222 Mon Sep 17 00:00:00 2001 From: "Liam M. Healy" <lhealy@common-lisp.net> Date: Wed, 12 Jan 2011 00:51:43 -0500 Subject: [PATCH] Don't import grid:element-type, grid:foreign-array, and grid:matrix Don't import grid:element-type, grid:foreign-array, and grid:matrix, but rather refer to them with package prefix explicitly. Superficially checked but requires more careful check. --- data/both.lisp | 24 ++++++++++++------------ data/foreign-array.lisp | 14 +++++++------- data/matrix.lisp | 24 +++++++++++------------- eigensystems/generalized.lisp | 8 +++----- eigensystems/symmetric-hermitian.lisp | 10 ++++------ fast-fourier-transforms/backward.lisp | 6 +++--- fast-fourier-transforms/example.lisp | 21 +++++++++++---------- fast-fourier-transforms/inverse.lisp | 6 +++--- histogram/ntuple-example.dat | Bin 32000 -> 28000 bytes init/defmfun-array.lisp | 14 +++++++------- init/init.lisp | 8 +++----- linear-algebra/blas2.lisp | 26 +++++++++++++------------- linear-algebra/blas3.lisp | 22 +++++++++++----------- linear-algebra/cholesky.lisp | 6 +++--- linear-algebra/diagonal.lisp | 10 +++++----- linear-algebra/lu.lisp | 18 +++++++++--------- linear-algebra/matrix-generation.lisp | 10 +++++----- random/shuffling-sampling.lisp | 6 +++--- tests/fast-fourier-transform.lisp | 6 +++--- 19 files changed, 116 insertions(+), 123 deletions(-) diff --git a/data/both.lisp b/data/both.lisp index 2771d97a..70fa2de8 100644 --- a/data/both.lisp +++ b/data/both.lisp @@ -1,6 +1,6 @@ ;; Functions for both vectors and matrices. ;; Liam Healy 2008-04-26 20:48:44EDT both.lisp -;; Time-stamp: <2011-01-10 18:17:02EST both.lisp> +;; Time-stamp: <2011-01-12 00:38:30EST both.lisp> ;; ;; Copyright 2008, 2009, 2010, 2011 Liam M. Healy ;; Distributed under the terms of the GNU General Public License @@ -35,7 +35,7 @@ :export nil :documentation "Allocate memory for the GSL struct given a block pointer.") -(defmfun alloc-from-block ((object matrix) blockptr) +(defmfun alloc-from-block ((object grid:matrix) blockptr) ("gsl_" :category :type "_alloc_from_block") ((blockptr :pointer) (0 sizet) ; offset @@ -113,7 +113,7 @@ `(cffi:foreign-funcall ,(actual-gsl-function-name `("gsl_" :category :type ,(if value "_set" "_get")) - (if matrixp 'matrix 'vector) + (if matrixp 'grid:matrix 'vector) element-type) :pointer ,mpointer sizet ,(first indices) @@ -192,7 +192,7 @@ :documentation ; FDL "Add the scalar complex x to all the elements of array a.") -(defmethod elt+ ((x float) (a foreign-array)) +(defmethod elt+ ((x float) (a grid:foreign-array)) (elt+ a x)) (defmfun elt- ((a both) (b both)) @@ -207,7 +207,7 @@ "Subtract the elements of b from the elements of a. The two must have the same dimensions.") -(defmethod elt- ((a foreign-array) (x float)) +(defmethod elt- ((a grid:foreign-array) (x float)) (elt+ a (- x))) (defmfun elt* ((a vector) (b vector)) @@ -222,7 +222,7 @@ "Multiply the elements of a by the elements of b. The two must have the same dimensions.") -(defmfun elt* ((a matrix) (b matrix)) +(defmfun elt* ((a grid:matrix) (b grid:matrix)) ("gsl_" :category :type "_mul_elements") (((mpointer a) :pointer) ((mpointer b) :pointer)) :definition :methods @@ -243,7 +243,7 @@ "Divide the elements of a by the elements of b. The two must have the same dimensions.") -(defmfun elt/ ((a matrix) (b matrix)) +(defmfun elt/ ((a grid:matrix) (b grid:matrix)) ("gsl_" :category :type "_div_elements") (((mpointer a) :pointer) ((mpointer b) :pointer)) :definition :methods @@ -252,7 +252,7 @@ :outputs (a) :return (a)) -(defmethod elt/ ((a foreign-array) (x number)) +(defmethod elt/ ((a grid:foreign-array) (x number)) (elt* a (/ x))) (defmfun elt* ((a both) (x float)) @@ -279,7 +279,7 @@ :documentation ; FDL "Multiply the elements of a by the scalar complex factor x.") -(defmethod elt* ((x float) (a foreign-array)) +(defmethod elt* ((x float) (a grid:foreign-array)) (elt* a x)) ;;;;**************************************************************************** @@ -329,7 +329,7 @@ "The index of the minimum value in a. When there are several equal minimum elements, then the lowest index is returned.") -(defmfun min-index ((a matrix)) +(defmfun min-index ((a grid:matrix)) ("gsl_" :category :type "_min_index") (((mpointer a) :pointer) (imin (:pointer sizet)) (jmin (:pointer sizet))) :definition :methods @@ -348,7 +348,7 @@ "The index of the maximum value in a. When there are several equal maximum elements, then the lowest index is returned.") -(defmfun max-index ((a matrix)) +(defmfun max-index ((a grid:matrix)) ("gsl_" :category :type "_max_index") (((mpointer a) :pointer) (imin (:pointer sizet)) (jmin (:pointer sizet))) :definition :methods @@ -369,7 +369,7 @@ returned. Returned indices are minimum, maximum; for matrices imin, jmin, imax, jmax.") -(defmfun minmax-index ((a matrix)) +(defmfun minmax-index ((a grid:matrix)) ("gsl_" :category :type "_minmax_index") (((mpointer a) :pointer) (imin (:pointer sizet)) (jmin (:pointer sizet)) diff --git a/data/foreign-array.lisp b/data/foreign-array.lisp index e7b28dab..8ebf9e68 100644 --- a/data/foreign-array.lisp +++ b/data/foreign-array.lisp @@ -1,6 +1,6 @@ ;; A grid:foreign-array with added metadata for GSL. ;; Liam Healy 2008-04-06 21:23:41EDT -;; Time-stamp: <2011-01-10 17:54:07EST foreign-array.lisp> +;; Time-stamp: <2011-01-12 00:34:42EST foreign-array.lisp> ;; ;; Copyright 2008, 2009, 2010, 2011 Liam M. Healy ;; Distributed under the terms of the GNU General Public License @@ -53,7 +53,7 @@ ;; from the block to the vector/matrix; we must do that manually here (cffi:foreign-slot-value array-struct - (if (typep object 'matrix) 'gsl-matrix-c 'gsl-vector-c) 'data) + (if (typep object 'grid:matrix) 'gsl-matrix-c 'gsl-vector-c) 'data) (grid:foreign-pointer object)) (tg:finalize object (lambda () @@ -82,20 +82,20 @@ (let* ((category (case category-or-rank ((vector :vector 1) 'vector) - ((matrix :matrix 2) 'matrix) + ((matrix grid:matrix :matrix 2) 'grid:matrix) (t (error "Unrecognized category ~a" category-or-rank)))) (cstruct (case category (vector 'gsl-vector-c) - (matrix 'gsl-matrix-c))) + (grid:matrix 'gsl-matrix-c))) (fa (grid:make-grid (case category (vector - `((foreign-array ,(cffi:foreign-slot-value mpointer cstruct 'size)) + `((grid:foreign-array ,(cffi:foreign-slot-value mpointer cstruct 'size)) ,element-type)) - (matrix - `((foreign-array + (grid:matrix + `((grid:foreign-array ,(cffi:foreign-slot-value mpointer cstruct 'size0) ,(cffi:foreign-slot-value mpointer cstruct 'size1)) ,element-type))) diff --git a/data/matrix.lisp b/data/matrix.lisp index eac02936..22df33a2 100644 --- a/data/matrix.lisp +++ b/data/matrix.lisp @@ -1,6 +1,6 @@ ;; Matrices ;; Liam Healy 2008-04-15 21:57:52EDT matrix.lisp -;; Time-stamp: <2011-01-10 18:17:17EST matrix.lisp> +;; Time-stamp: <2011-01-12 00:34:45EST matrix.lisp> ;; ;; Copyright 2008, 2009, 2011 Liam M. Healy ;; Distributed under the terms of the GNU General Public License @@ -26,7 +26,7 @@ ;;;; Mathematical ;;;;**************************************************************************** -(defmfun set-identity ((matrix matrix)) +(defmfun set-identity ((matrix grid:matrix)) ("gsl_matrix" :type "_set_identity") (((mpointer matrix) :pointer)) :definition :generic @@ -43,8 +43,7 @@ ;;;; Copying rows and columns ;;;;**************************************************************************** -(defmfun row - ((matrix matrix) i +(defmfun row ((matrix grid:matrix) i &optional (vector (grid:make-foreign-array element-type :dimensions (dim1 matrix)))) ("gsl_matrix" :type "_get_row") (((mpointer vector) :pointer) ((mpointer matrix) :pointer) (i sizet)) @@ -57,7 +56,7 @@ into the vector. The length of the vector must be the same as the length of the row.") -(defmfun (setf row) ((vector vector) (matrix matrix) i) +(defmfun (setf row) ((vector vector) (matrix grid:matrix) i) ("gsl_matrix" :type "_set_row") (((mpointer matrix) :pointer) (i sizet) ((mpointer vector) :pointer)) :definition :generic @@ -68,8 +67,7 @@ "Copy the elements of the vector into the jth row of the matrix. The length of the vector must be the same as the length of the row.") -(defmfun column - ((matrix matrix) i +(defmfun column ((matrix grid:matrix) i &optional (vector (grid:make-foreign-array element-type :dimensions (dim0 matrix)))) ("gsl_matrix" :type "_get_col") (((mpointer vector) :pointer) ((mpointer matrix) :pointer) (i sizet)) @@ -82,7 +80,7 @@ into the vector. The length of the vector must be the same as the length of the column.") -(defmfun (setf column) ((vector vector) (matrix matrix) i) +(defmfun (setf column) ((vector vector) (matrix grid:matrix) i) ("gsl_matrix" :type "_set_col") (((mpointer matrix) :pointer) (i sizet) ((mpointer vector) :pointer)) :definition :generic @@ -97,7 +95,7 @@ ;;;; Exchanging rows and columns ;;;;**************************************************************************** -(defmfun swap-rows ((matrix matrix) i j) +(defmfun swap-rows ((matrix grid:matrix) i j) ("gsl_matrix" :type "_swap_rows") (((mpointer matrix) :pointer) (i sizet) (j sizet)) :definition :generic @@ -107,7 +105,7 @@ :documentation ; FDL "Exchange the ith and jth rows of the matrix in-place.") -(defmfun swap-columns ((matrix matrix) i j) +(defmfun swap-columns ((matrix grid:matrix) i j) ("gsl_matrix" :type "_swap_columns") (((mpointer matrix) :pointer) (i sizet) (j sizet)) :definition :generic @@ -117,7 +115,7 @@ :documentation ; FDL "Exchange the ith and jth columns of the matrix in-place.") -(defmfun swap-row-column ((matrix matrix) i j) +(defmfun swap-row-column ((matrix grid:matrix) i j) ("gsl_matrix" :type "_swap_rowcol") (((mpointer matrix) :pointer) (i sizet) (j sizet)) :definition :generic @@ -129,7 +127,7 @@ matrix in-place. The matrix must be square for this operation to be possible.") -(defmfun matrix-transpose* ((matrix matrix)) +(defmfun matrix-transpose* ((matrix grid:matrix)) ("gsl_matrix" :type "_transpose") (((mpointer matrix) :pointer)) :definition :generic @@ -142,7 +140,7 @@ operation to be possible.") (defmfun matrix-transpose - ((source matrix) + ((source grid:matrix) &optional (destination (grid:make-foreign-array element-type :dimensions (reverse (grid:dimensions source))))) diff --git a/eigensystems/generalized.lisp b/eigensystems/generalized.lisp index c6778ef3..466d48fc 100644 --- a/eigensystems/generalized.lisp +++ b/eigensystems/generalized.lisp @@ -1,6 +1,6 @@ ;; Real generalized eigensystems ;; Liam Healy 2009-02-16 12:55:04EST real-generalized.lisp -;; Time-stamp: <2011-01-10 18:17:27EST generalized.lisp> +;; Time-stamp: <2011-01-12 00:08:22EST generalized.lisp> ;; ;; Copyright 2009, 2011 Liam M. Healy ;; Distributed under the terms of the GNU General Public License @@ -56,8 +56,7 @@ n-by-n complex generalized hermitian-definite eigensystems. The size of the workspace is O(5n).") -(defmfun eigenvalues-gensymm - ((A matrix) (B matrix) +(defmfun eigenvalues-gensymm ((A grid:matrix) (B grid:matrix) &optional (eigenvalues (grid:make-foreign-array element-type :dimensions (dim0 A))) (ws (eltcase complex (make-eigen-genherm (dim0 A)) @@ -78,8 +77,7 @@ outlined above. On output, B contains its Cholesky decomposition and A is destroyed.") -(defmfun eigenvalues-eigenvectors-gensymm - ((A matrix) (B matrix) +(defmfun eigenvalues-eigenvectors-gensymm ((A grid:matrix) (B grid:matrix) &optional (eigenvalues (grid:make-foreign-array element-type :dimensions (dim0 A))) (eigenvectors (grid:make-foreign-array element-type :dimensions (grid:dimensions A))) diff --git a/eigensystems/symmetric-hermitian.lisp b/eigensystems/symmetric-hermitian.lisp index abed4dd5..01534f33 100644 --- a/eigensystems/symmetric-hermitian.lisp +++ b/eigensystems/symmetric-hermitian.lisp @@ -1,6 +1,6 @@ ;; Eigenvectors and eigenvalues ;; Liam Healy, Sun May 21 2006 - 19:52 -;; Time-stamp: <2011-01-10 18:19:13EST symmetric-hermitian.lisp> +;; Time-stamp: <2011-01-12 00:09:43EST symmetric-hermitian.lisp> ;; ;; Copyright 2006, 2007, 2008, 2009, 2011 Liam M. Healy ;; Distributed under the terms of the GNU General Public License @@ -66,8 +66,7 @@ ;;;; Eigenvalues and eigenvectors ;;;;**************************************************************************** -(defmfun eigenvalues - ((A matrix) +(defmfun eigenvalues ((A grid:matrix) &optional (eigenvalues (grid:make-foreign-array element-type :dimensions (dim0 A))) (ws (eltcase complex (make-eigen-herm (dim0 A)) @@ -91,8 +90,7 @@ referenced. The eigenvalues are stored in the vector eigenvalues and are unordered.") -(defmfun eigenvalues-eigenvectors - ((A matrix) +(defmfun eigenvalues-eigenvectors ((A grid:matrix) &optional (eigenvalues (grid:make-foreign-array element-type :dimensions (dim0 A))) (eigenvectors (grid:make-foreign-array element-type :dimensions (grid:dimensions A))) @@ -126,7 +124,7 @@ ;;;;**************************************************************************** (defmfun sort-eigenvalues-eigenvectors - ((eigenvalues vector) (eigenvectors matrix) sort-type) + ((eigenvalues vector) (eigenvectors grid:matrix) sort-type) (double-float "gsl_eigen_symmv_sort" complex-double-float "gsl_eigen_hermv_sort") (((mpointer eigenvalues) :pointer) ((mpointer eigenvectors) :pointer) diff --git a/fast-fourier-transforms/backward.lisp b/fast-fourier-transforms/backward.lisp index 637ca42d..a5bf3c7b 100644 --- a/fast-fourier-transforms/backward.lisp +++ b/fast-fourier-transforms/backward.lisp @@ -1,6 +1,6 @@ ;; Backward FFT ;; Sumant Oemrawsingh, Sat Oct 24 2009 - 12:55 -;; Time-stamp: <2011-01-10 17:59:22EST backward.lisp> +;; Time-stamp: <2011-01-11 23:34:19EST backward.lisp> ;; ;; Copyright 2009, 2011 Sumant Oemrawsingh, Liam M. Healy ;; Distributed under the terms of the GNU General Public License @@ -138,13 +138,13 @@ (remf pass-on-args :decimation-in-frequency) (remf pass-on-args :non-radix-2) (if (and (not non-radix-2) (power-of-2-p (floor (size vector) stride))) - (if (subtypep (element-type vector) 'real) + (if (subtypep (grid:element-type vector) 'real) (apply 'backward-fourier-transform-halfcomplex-radix2 vector pass-on-args) (if decimation-in-frequency (apply 'backward-fourier-transform-dif-radix2 vector pass-on-args) (apply 'backward-fourier-transform-radix2 vector pass-on-args))) - (if (subtypep (element-type vector) 'real) + (if (subtypep (grid:element-type vector) 'real) (apply 'backward-fourier-transform-halfcomplex-nonradix2 vector pass-on-args) (apply 'backward-fourier-transform-nonradix2 vector pass-on-args))))) diff --git a/fast-fourier-transforms/example.lisp b/fast-fourier-transforms/example.lisp index a05d5d3b..d1ed0bf7 100644 --- a/fast-fourier-transforms/example.lisp +++ b/fast-fourier-transforms/example.lisp @@ -1,8 +1,8 @@ ;; Example FFT: transform a pulse (using the "clean" fft interface) ;; Sumant Oemrawsingh, Sat Oct 31 2009 - 00:24 -;; Time-stamp: <2010-09-04 08:44:35EDT example.lisp> +;; Time-stamp: <2011-01-11 23:32:17EST example.lisp> ;; -;; Copyright 2009 Sumant Oemrawsingh, Liam M. Healy +;; Copyright 2009, 2010, 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 @@ -107,7 +107,7 @@ "The real vector consisting of the real part of the complex vector." (let ((real-vector (make-and-init-vector - (grid:component-float-type (element-type complex-vector)) + (grid:component-float-type (grid:element-type complex-vector)) (size complex-vector) :init-offset init-offset))) (loop for i below (size complex-vector) by stride @@ -119,19 +119,20 @@ (defun copy-with-stride (vector &key (stride 1) init-offset) "Copy a vector and initialize it." (let ((vec - (make-and-init-vector (element-type vector) - (size vector) - :init-offset init-offset))) + (make-and-init-vector + (grid:element-type vector) + (size vector) + :init-offset init-offset))) (loop for i below (size vector) by stride do - (setf (grid:gref vec i) (grid:gref vector i))) + (setf (grid:gref vec i) (grid:gref vector i))) vec)) (defun size-vector-scalar (vector &key (stride 1)) "Return the size of a vector while taking the stride into account." (coerce (floor (size vector) stride) - (if (subtypep (element-type vector) 'complex) - (element-type vector) + (if (subtypep (grid:element-type vector) 'complex) + (grid:element-type vector) 'double-float))) #+nil @@ -139,7 +140,7 @@ (elt/ vector (size-vector-scalar vector :stride stride))) (defun vector/length (vector &key (stride 1)) - (let ((element-type (element-type vector))) + (let ((element-type (grid:element-type vector))) (loop with length = (size-vector-scalar vector :stride stride) for i from 0 below (size vector) by stride do diff --git a/fast-fourier-transforms/inverse.lisp b/fast-fourier-transforms/inverse.lisp index 590f2b74..27c89e07 100644 --- a/fast-fourier-transforms/inverse.lisp +++ b/fast-fourier-transforms/inverse.lisp @@ -1,6 +1,6 @@ ;; Inverse FFT ;; Sumant Oemrawsingh, Sat Oct 24 2009 - 12:55 -;; Time-stamp: <2011-01-10 17:59:24EST inverse.lisp> +;; Time-stamp: <2011-01-11 23:34:17EST inverse.lisp> ;; ;; Copyright 2009, 2011 Sumant Oemrawsingh, Liam M. Healy ;; Distributed under the terms of the GNU General Public License @@ -138,13 +138,13 @@ (remf pass-on-args :decimation-in-frequency) (remf pass-on-args :non-radix-2) (if (and (not non-radix-2) (power-of-2-p (floor (size vector) stride))) - (if (subtypep (element-type vector) 'real) + (if (subtypep (grid:element-type vector) 'real) (apply 'inverse-fourier-transform-halfcomplex-radix2 vector pass-on-args) (if decimation-in-frequency (apply 'inverse-fourier-transform-dif-radix2 vector pass-on-args) (apply 'inverse-fourier-transform-radix2 vector pass-on-args))) - (if (subtypep (element-type vector) 'real) + (if (subtypep (grid:element-type vector) 'real) (apply 'inverse-fourier-transform-halfcomplex-nonradix2 vector pass-on-args) (apply 'inverse-fourier-transform-nonradix2 vector pass-on-args))))) diff --git a/histogram/ntuple-example.dat b/histogram/ntuple-example.dat index be4cb5a5d29dc9072987e90d6886995088febcb2..88b5a4aa490e8f25b6f4e8c29786ceb205c796de 100644 GIT binary patch delta 4029 zcmWO5yYsJCRlwniMA$(thM)w`?{EkaI3R)`QNkq&sIU_5pdnx+381ck0>a^zP*5() z!}lMcT+C1~&|6R~Ydb5-MQ6z{6g<T<v*!K0tJpJp|KPWG{ObSixP9kqZ{NJS9ap#W z>ULe-?yK8#b$hQa=Z>q(O@gFohUNT$PLLGMu$&j@1WC~h%ehl0NQ!1y&L8RoNzn|; zd7(~_6wR=l7wH5^(G1HuIzdu2!*cG@36i22mh)nrASs$*Ie(-RBt<hU=OsEpQZ&PI zUaAu$MKdhtWjaApG{bUUt`j6hGc4zib%La5hUMI?6C_15Eaw$EK~glsa_-RylA;-w z^Gcl{DVkw9f1(p4MKdhtPj!N%XolsyN+(E)W?0U>Izdu2!*X7&6C_15Ea%U3f~07M z<y_MVlA;-wbEOj`MKdhtx=xT3&9I!;=mbg849mHp6C_15H?CiPedF5YyjCYjie^~O zeL6u>G;^Q*`|Q6?CrFBBSkC?W{nsy#-hb_q=As#v^XEE2QZ&PIUau1*MKdht4LU(m zG{bV<s1qbbGc4z(PLLGM+;qO1&i5vrASs$*Id9eplA;-w^A|cnQZ&PI-l7vEMKdht zFLi>XXolsyRVPS_W?0VKbb_R4hUNT~PLLGMu$;H+1WC~h%Xx=RkQB|ZoWIrylA;-w z^G=;0DVkw959kC*(G1J^8=W92nqfJAs}m$eGc4y_Izdu2!*U+fAH2Hj){h_Q-~I11 z4?lVN<b(HI($}IHmh*0Z5+p@4EayEsK~glsa^9;GBt<hU=Y2XsQZ&PI9?}Vtq8XO+ zuuhN^&9IzDbb_R4hUL6pCrFBBSk4D@f~07M<@}vakQB|ZoWIuzlA;-w^A9>fQZ&PI zKByBUMKdhtLpniHG{bU2CrFBBSk9w5K~glsavswOl6vg=<tL9_yNr1`AJz$yq8XO+ z5uG3@nqfH~)d`ZK8J6=goggWiVL2by36i22mh%anASs$*IiJ)ClA;-w^C_JmDVkw9 zpVkSIq8XO+k2*n8G{bWKNhe5(W?0VSIzc{u{qn=duU*<aEax*iK~glsa-PtMC$3+f zed5}s%+0Wz&*}t8(G1J^oKBDw&9Iz*)(MiL8J6>;PLLGMu$+I<36i22mh*X?ASs$* zIZx>XNj>F$KIMLz*L>I0*Dg1o)=7$HSk5!{36i22mh%OjASs$*IbYNXlA;-w^Cg`i zDVkw9|Ed!tMKdht-*kecXoltdyH1c4&9I!*36i22mh-GmkQB|ZoG<GHNzn|;`HD`E z6wR=l|Ii7Nq8XO+pE^NOG{bVfsuLtdGc4z8Izdu2!*af^6C_15Ea$&;f~07M<$OaY zNQ!1y&Np>}q-cia+|mh>qHkTl{Ligxmo=Yn=>$p949oepPLLGMu$=Gc1WC~h%lWQO zkQB|ZobTxbNzn|;c}^!tie}j7ysziIujh4=q8XO+eftDS(aiU+?tRB^e)_Hlp8mwc akG}F3|Nqlp{_LR}KmXBx-+JTS5B(liy@PWA delta 11429 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 diff --git a/init/defmfun-array.lisp b/init/defmfun-array.lisp index 60331901..a8c52a8d 100644 --- a/init/defmfun-array.lisp +++ b/init/defmfun-array.lisp @@ -1,8 +1,8 @@ ;; Helpers for defining GSL functions on arrays ;; Liam Healy 2009-01-07 22:01:16EST defmfun-array.lisp -;; Time-stamp: <2010-07-12 12:28:57EDT defmfun-array.lisp> +;; Time-stamp: <2011-01-12 00:22:59EST defmfun-array.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 @@ -28,7 +28,7 @@ (defn name arglist gsl-name c-arguments categories key-args) (setf categories (remove-if-not - (lambda (c) (member c '(both matrix vector))) + (lambda (c) (member c '(both grid:matrix vector))) categories)) (if (member 'both categories) (progn @@ -45,12 +45,12 @@ (optional-args-to-switch-gsl-functions arglist gsl-name)) (copy-list key-args) 'vector) (generate-methods - defn 'matrix + defn 'grid:matrix name arglist gsl-name (actual-array-c-type - 'matrix c-arguments + 'grid:matrix c-arguments (optional-args-to-switch-gsl-functions arglist gsl-name)) - (copy-list key-args) 'matrix))) + (copy-list key-args) 'grid:matrix))) ;; Generate forms for one category (generate-methods defn (first categories) @@ -149,7 +149,7 @@ base-name)))))))))) (defun actual-array-class (category element-type &optional replace-both) - "From the category ('vector, 'matrix, or 'both) and element type, + "From the category ('vector, 'grid:matrix, or 'both) and element type, find the class name." (case category (:element-type (grid:number-class element-type)) diff --git a/init/init.lisp b/init/init.lisp index d5999ccc..c9f8fe77 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-11 19:06:42EST init.lisp> +;; Time-stamp: <2011-01-12 00:35:16EST init.lisp> ;; ;; Copyright 2006, 2007, 2008, 2009, 2010, 2011 Liam M. Healy ;; Distributed under the terms of the GNU General Public License @@ -21,10 +21,8 @@ (defpackage gsll (:nicknames :gsl) (:use :common-lisp :cffi) - (:import-from - :grid - #:element-type #:foreign-array #:matrix #:dim0 #:dim1 #:^ #:copy) - (:export #:element-type #:dim0 #:dim1 #:copy)) + (:import-from :grid #:dim0 #:dim1 #:^ #:copy) + (:export #:dim0 #:dim1 #:copy)) ;;; Where there is a symbol conflict, take the other one. (shadow '#:row :antik-user) ; conflict with grid:row; they are equivalent diff --git a/linear-algebra/blas2.lisp b/linear-algebra/blas2.lisp index b2281333..5b9983d2 100644 --- a/linear-algebra/blas2.lisp +++ b/linear-algebra/blas2.lisp @@ -1,6 +1,6 @@ ;; BLAS level 2, Matrix-vector operations ;; Liam Healy, Wed Apr 26 2006 - 21:08 -;; Time-stamp: <2011-01-10 18:19:10EST blas2.lisp> +;; Time-stamp: <2011-01-12 00:42:10EST blas2.lisp> ;; ;; Copyright 2006, 2007, 2008, 2009, 2011 Liam M. Healy ;; Distributed under the terms of the GNU General Public License @@ -41,13 +41,13 @@ ;;;;**************************************************************************** (defun matrix-product-dimensions (a b) - (if (typep b 'matrix) + (if (typep b 'grid:matrix) (list (first (grid:dimensions a)) (second (grid:dimensions b))) (first (grid:dimensions a)))) (defmfun matrix-product - ((A matrix) (x vector) + ((A grid:matrix) (x vector) &optional y (alpha 1) (beta 1) (TransA :notrans) TransB @@ -74,7 +74,7 @@ parameter TransB.") (defmfun matrix-product-triangular - ((A matrix) (x vector) + ((A grid:matrix) (x vector) &optional (alpha 1) (uplo :upper) (TransA :notrans) (diag :nonunit) (side :left)) ("gsl_blas_" :type "trmv") @@ -106,7 +106,7 @@ are taken as unity and are not referenced.") (defmfun inverse-matrix-product - ((A matrix) (x vector) + ((A grid:matrix) (x vector) &optional (alpha 1) (uplo :upper) (TransA :notrans) (diag :nonunit) (side :left)) ("gsl_blas_" :type "trsv") @@ -137,7 +137,7 @@ matrix A are taken as unity and are not referenced.") (defmfun matrix-product-symmetric - ((A matrix) (x vector) + ((A grid:matrix) (x vector) &optional y (alpha 1) (beta 1) (uplo :upper) (side :left) &aux @@ -170,7 +170,7 @@ #+fsbv (defmfun matrix-product-hermitian - ((A matrix) (x vector) + ((A grid:matrix) (x vector) &optional (y (grid:make-foreign-array element-type :dimensions (matrix-product-dimensions A x) :initial-element 0)) @@ -199,7 +199,7 @@ are used. The imaginary elements of the diagonal are automatically set to zero.") -(defmfun rank-1-update (alpha (x vector) (y vector) (A matrix)) +(defmfun rank-1-update (alpha (x vector) (y vector) (A grid:matrix)) ("gsl_blas_" :type "ger" :suffix) ((alpha :element-c-type) ((mpointer x) :pointer) ((mpointer y) :pointer) ((mpointer A) :pointer)) @@ -211,7 +211,7 @@ "The rank-1 update A = alpha x y^T + A of the matrix A.") #+fsbv -(defmfun conjugate-rank-1-update (alpha (x vector) (y vector) (A matrix)) +(defmfun conjugate-rank-1-update (alpha (x vector) (y vector) (A grid:matrix)) ("gsl_blas_" :type "gerc") ((alpha :element-c-type) ((mpointer x) :pointer) ((mpointer y) :pointer) ((mpointer A) :pointer)) @@ -223,7 +223,7 @@ "The conjugate rank-1 update A = alpha x y^H + A of the matrix A.") (defmfun symmetric-rank-1-update - ((x vector) (A matrix) + ((x vector) (A grid:matrix) &optional (alpha 1) (beta 1) (uplo :upper) (trans :notrans)) ("gsl_blas_" :type "syr") ((uplo cblas-uplo) (alpha :element-c-type) @@ -249,7 +249,7 @@ #+fsbv (defmfun hermitian-rank-1-update - ((x vector) (A matrix) + ((x vector) (A grid:matrix) &optional (alpha 1) (beta 1) (uplo :upper) (trans :notrans)) ("gsl_blas_" :type "her") ((uplo cblas-uplo) (alpha :element-c-type) @@ -276,7 +276,7 @@ elements of the diagonal are automatically set to zero.") (defmfun symmetric-rank-2-update - ((x vector) (y vector) (A matrix) + ((x vector) (y vector) (A grid:matrix) &optional (alpha 1) (beta 1) (uplo :upper) (trans :notrans)) ("gsl_blas_" :type "syr2") ((uplo cblas-uplo) (alpha :element-c-type) @@ -303,7 +303,7 @@ #+fsbv (defmfun hermitian-rank-2-update - ((x vector) (y vector) (A matrix) + ((x vector) (y vector) (A grid:matrix) &optional (alpha 1) (beta 1) (uplo :upper) (trans :notrans)) ("gsl_blas_" :type "her2") ((uplo cblas-uplo) (alpha :element-c-type) diff --git a/linear-algebra/blas3.lisp b/linear-algebra/blas3.lisp index ab51b2a8..93344859 100644 --- a/linear-algebra/blas3.lisp +++ b/linear-algebra/blas3.lisp @@ -1,8 +1,8 @@ ;; BLAS level 3, Matrix-matrix operations ;; Liam Healy, Wed Apr 26 2006 - 21:08 -;; Time-stamp: <2010-07-07 14:25:00EDT blas3.lisp> +;; Time-stamp: <2011-01-12 00:49:27EST blas3.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 @@ -34,7 +34,7 @@ ;;;;**************************************************************************** (defmfun matrix-product - ((A matrix) (B matrix) + ((A grid:matrix) (B grid:matrix) &optional C (alpha 1) (beta 1) (TransA :notrans) (TransB :notrans) @@ -53,7 +53,7 @@ :outputs (Carr)) (defmfun matrix-product-symmetric - ((A matrix) (B matrix) + ((A grid:matrix) (B grid:matrix) &optional C (alpha 1) (beta 1) (uplo :upper) (side :left) &aux (Carr @@ -71,7 +71,7 @@ #+fsbv (defmfun matrix-product-hermitian - ((A matrix) (B matrix) + ((A grid:matrix) (B grid:matrix) &optional (C (grid:make-foreign-array element-type :dimensions (matrix-product-dimensions A B) :initial-element 0)) @@ -88,7 +88,7 @@ :outputs (C)) (defmfun matrix-product-triangular - ((A matrix) (B matrix) + ((A grid:matrix) (B grid:matrix) &optional (alpha 1) (uplo :upper) (TransA :notrans) (diag :nonunit) (side :left)) ("gsl_blas_" :type "trmm") @@ -101,7 +101,7 @@ :outputs (B)) (defmfun inverse-matrix-product - ((A matrix) (B matrix) + ((A grid:matrix) (B grid:matrix) &optional (alpha 1) (uplo :upper) (TransA :notrans) (diag :nonunit) (side :left)) ;; This signals an error for complex arguments because you can't pass a @@ -116,7 +116,7 @@ :outputs (B)) (defmfun symmetric-rank-1-update - ((A matrix) (C matrix) + ((A grid:matrix) (C grid:matrix) &optional (alpha 1) (beta 1) (uplo :upper) (trans :notrans)) ("gsl_blas_" :type "syrk") ((uplo cblas-uplo) (trans cblas-transpose) @@ -129,7 +129,7 @@ #+fsbv (defmfun hermitian-rank-1-update - ((A matrix) (C matrix) + ((A grid:matrix) (C grid:matrix) &optional (alpha 1) (beta 1) (uplo :upper) (trans :notrans)) ("gsl_blas_" :type "herk") ((uplo cblas-uplo) (trans cblas-transpose) @@ -141,7 +141,7 @@ :outputs (C)) (defmfun symmetric-rank-2-update - ((A matrix) (B matrix) (C matrix) + ((A grid:matrix) (B grid:matrix) (C grid:matrix) &optional (alpha 1) (beta 1) (uplo :upper) (trans :notrans)) ("gsl_blas_" :type "syr2k") ((uplo cblas-uplo) (trans cblas-transpose) @@ -155,7 +155,7 @@ #+fsbv (defmfun hermitian-rank-2-update - ((A matrix) (B matrix) (C matrix) + ((A grid:matrix) (B grid:matrix) (C grid:matrix) &optional (alpha 1) (beta 1) (uplo :upper) (trans :notrans)) ("gsl_blas_" :type "her2k") ((uplo cblas-uplo) (trans cblas-transpose) diff --git a/linear-algebra/cholesky.lisp b/linear-algebra/cholesky.lisp index d41918ea..253474c8 100644 --- a/linear-algebra/cholesky.lisp +++ b/linear-algebra/cholesky.lisp @@ -1,6 +1,6 @@ ;; Cholesky Decomposition ;; Liam Healy, Wed May 3 2006 - 16:38 -;; Time-stamp: <2011-01-10 18:19:09EST cholesky.lisp> +;; Time-stamp: <2011-01-12 00:29:25EST cholesky.lisp> ;; ;; Copyright 2006, 2007, 2008, 2009, 2011 Liam M. Healy ;; Distributed under the terms of the GNU General Public License @@ -34,7 +34,7 @@ ;;; GSL version 1.10 introduced functions for complex matrices. -(defmfun cholesky-decomposition ((A matrix)) +(defmfun cholesky-decomposition ((A grid:matrix)) ("gsl_linalg" :complex "_cholesky_decomp") (((mpointer A) :pointer)) :definition :generic @@ -51,7 +51,7 @@ returning the error input-domain.") (defmfun cholesky-solve - ((A matrix) (b vector) &optional x-spec + ((A grid:matrix) (b vector) &optional x-spec &aux (x (grid:make-foreign-array-or-default x-spec (grid:dimensions b) t))) (("gsl_linalg" :complex "_cholesky_svx") diff --git a/linear-algebra/diagonal.lisp b/linear-algebra/diagonal.lisp index cace5ac3..7df41dd5 100644 --- a/linear-algebra/diagonal.lisp +++ b/linear-algebra/diagonal.lisp @@ -1,8 +1,8 @@ ;; Tridiagonal and Bidiagonal matrices ;; Liam Healy, Thu May 4 2006 - 15:43 -;; Time-stamp: <2010-06-30 19:57:28EDT diagonal.lisp> +;; Time-stamp: <2011-01-12 00:49:45EST diagonal.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 @@ -35,7 +35,7 @@ ;;; A = U T U^T where U is a unitary ;;; matrix and T is a real symmetric tridiagonal matrix. -(defmfun tridiagonal-decomposition ((A matrix) tau) +(defmfun tridiagonal-decomposition ((A grid:matrix) tau) (double-float "gsl_linalg_symmtd_decomp" complex-double-float "gsl_linalg_hermtd_decomp") (((mpointer A) :pointer) ((mpointer tau) :pointer)) @@ -53,7 +53,7 @@ Q. This storage scheme is the same as used by lapack. The upper triangular part of A is not referenced.") -(defmfun tridiagonal-unpack ((A matrix) tau Q diag subdiag) +(defmfun tridiagonal-unpack ((A grid:matrix) tau Q diag subdiag) (double-float "gsl_linalg_symmtd_unpack" complex-double-float "gsl_linalg_hermtd_unpack") (((mpointer A) :pointer) ((mpointer tau) :pointer) @@ -69,7 +69,7 @@ orthogonal or unitary matrix Q, the vector of diagonal elements diag and the real vector of subdiagonal elements subdiag.") -(defmfun tridiagonal-unpack-T ((A matrix) diag subdiag) +(defmfun tridiagonal-unpack-T ((A grid:matrix) diag subdiag) (double-float "gsl_linalg_symmtd_unpack_T" complex-double-float "gsl_linalg_hermtd_unpack_T") (((mpointer A) :pointer) ((mpointer diag) :pointer) diff --git a/linear-algebra/lu.lisp b/linear-algebra/lu.lisp index 58392752..02b0a5e8 100644 --- a/linear-algebra/lu.lisp +++ b/linear-algebra/lu.lisp @@ -1,6 +1,6 @@ ;; LU decomposition ;; Liam Healy, Thu Apr 27 2006 - 12:42 -;; Time-stamp: <2011-01-10 18:16:19EST lu.lisp> +;; Time-stamp: <2011-01-12 00:44:43EST lu.lisp> ;; ;; Copyright 2006, 2007, 2008, 2009, 2011 Liam M. Healy ;; Distributed under the terms of the GNU General Public License @@ -23,7 +23,7 @@ ;;; /usr/include/gsl/gsl_linalg.h (defmfun LU-decomposition - ((A matrix) &optional (permutation (make-permutation (dim0 A)))) + ((A grid:matrix) &optional (permutation (make-permutation (dim0 A)))) ("gsl_linalg" :complex "_LU_decomp") (((mpointer A) :pointer) ((mpointer permutation) :pointer) (signum (:pointer :int))) @@ -53,7 +53,7 @@ Algorithm 3.4.1).") (defmfun LU-solve - ((A matrix) (b vector) permutation &optional x-spec + ((A grid:matrix) (b vector) permutation &optional x-spec &aux (x (if (eq x-spec t) (grid:make-foreign-array element-type :dimensions (grid:dimensions b)) @@ -78,7 +78,7 @@ will be computed there. Otherwise it should be a supplied vector.") (defmfun LU-refine - ((A matrix) LU p (b vector) (x vector) + ((A grid:matrix) LU p (b vector) (x vector) &optional (residual (grid:make-foreign-array element-type :dimensions (dim0 A)))) ("gsl_linalg" :complex "_LU_refine") (((mpointer A) :pointer) ((mpointer LU) :pointer) @@ -95,7 +95,7 @@ A x = b, using the LU decomposition of A into (LU,p). The initial residual r = A x - b is also computed and stored in residual. ") -(defmfun LU-invert ((LU matrix) p inverse) +(defmfun LU-invert ((LU grid:matrix) p inverse) ("gsl_linalg" :complex "_LU_invert") (((mpointer LU) :pointer) ((mpointer p) :pointer) ((mpointer inverse) :pointer)) @@ -112,7 +112,7 @@ the same result more efficiently and reliably (consult any introductory textbook on numerical linear algebra for details).") - (defmfun LU-determinant ((LU matrix) signum) + (defmfun LU-determinant ((LU grid:matrix) signum) ("gsl_linalg" :complex "_LU_det") (((mpointer LU) :pointer) (signum :int)) :definition :generic @@ -124,7 +124,7 @@ decomposition, LU. The determinant is computed as the product of the diagonal elements of U and the sign of the row permutation signum.") -(defmfun LU-log-determinant ((LU matrix)) +(defmfun LU-log-determinant ((LU grid:matrix)) ("gsl_linalg" :complex "_LU_lndet") (((mpointer LU) :pointer)) :definition :generic @@ -137,7 +137,7 @@ LU. This function may be useful if the direct computation of the determinant would overflow or underflow.") -(defmfun LU-sgndet ((LU matrix) signum) +(defmfun LU-sgndet ((LU grid:matrix) signum) ("gsl_linalg" :complex "_LU_sgndet") (((mpointer LU) :pointer) (signum :int)) :definition :generic @@ -170,7 +170,7 @@ the index." (let* ((dim (dim0 matrix)) (rhs (or vector - (create-rhs-vector dim (element-type matrix))))) + (create-rhs-vector dim (grid:element-type matrix))))) (multiple-value-bind (upper permutation signum) (LU-decomposition (copy matrix)) (declare (ignore signum)) diff --git a/linear-algebra/matrix-generation.lisp b/linear-algebra/matrix-generation.lisp index 21645764..902564b9 100644 --- a/linear-algebra/matrix-generation.lisp +++ b/linear-algebra/matrix-generation.lisp @@ -1,8 +1,8 @@ ;; Generate matrices used in tests of linear algebra functions ;; Liam Healy 2009-09-19 18:28:31EDT matrix-generation.lisp -;; Time-stamp: <2010-08-12 22:48:01EDT matrix-generation.lisp> +;; Time-stamp: <2011-01-11 23:58:19EST matrix-generation.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 @@ -40,13 +40,13 @@ :source function :destination-specification (if dim1 - `((foreign-array ,dim0 ,dim1) ,element-type) - `((foreign-array ,dim0) ,element-type)))) + `((grid:foreign-array ,dim0 ,dim1) ,element-type) + `((grid:foreign-array ,dim0) ,element-type)))) (defun constant-matrix (constant dim0 &optional (dim1 dim0) (element-type 'double-float)) (grid:make-grid - `((foreign-array ,dim0 ,dim1) ,element-type) + `((grid:foreign-array ,dim0 ,dim1) ,element-type) :initial-element constant)) ;;;;**************************************************************************** diff --git a/random/shuffling-sampling.lisp b/random/shuffling-sampling.lisp index b41d2733..47756947 100644 --- a/random/shuffling-sampling.lisp +++ b/random/shuffling-sampling.lisp @@ -1,6 +1,6 @@ ;; Shuffling and sampling ;; Liam Healy, Sat Dec 2 2006 - 18:40 -;; Time-stamp: <2011-01-10 17:59:29EST shuffling-sampling.lisp> +;; Time-stamp: <2011-01-11 23:34:14EST shuffling-sampling.lisp> ;; ;; Copyright 2006, 2007, 2008, 2009, 2011 Liam M. Healy ;; Distributed under the terms of the GNU General Public License @@ -46,7 +46,7 @@ &aux (destarr (if (integerp dest) - (grid:make-foreign-array (element-type src) :dimensions dest) + (grid:make-foreign-array (grid:element-type src) :dimensions dest) dest))) "gsl_ran_choose" (((mpointer generator) :pointer) @@ -74,7 +74,7 @@ &aux (destarr (if (integerp dest) - (grid:make-foreign-array (element-type src) :dimensions dest) + (grid:make-foreign-array (grid:element-type src) :dimensions dest) dest))) "gsl_ran_sample" (((mpointer generator) :pointer) diff --git a/tests/fast-fourier-transform.lisp b/tests/fast-fourier-transform.lisp index dac5cda2..72d880a4 100644 --- a/tests/fast-fourier-transform.lisp +++ b/tests/fast-fourier-transform.lisp @@ -1,8 +1,8 @@ ;; Fast fourier transform tests ;; Liam Healy 2010-08-14 11:58:26EDT fast-fourier-transform.lisp -;; Time-stamp: <2010-09-04 17:07:32EDT fast-fourier-transform.lisp> +;; Time-stamp: <2011-01-12 00:50:11EST fast-fourier-transform.lisp> ;; -;; Copyright 2010 Liam M. Healy +;; Copyright 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 @@ -27,7 +27,7 @@ "Make a grid that is all of the original array except that the stride points are excluded." (grid:make-foreign-array - (element-type array) + (grid:element-type array) :initial-contents (loop for i from 0 below (grid:total-size array) unless (zerop (mod i stride)) -- GitLab