From 79a0f72cddec653eb33a13c3456b7f85dd98101a Mon Sep 17 00:00:00 2001
From: Liam Healy <lnp@healy.washington.dc.us>
Date: Thu, 8 Jan 2009 16:53:07 -0500
Subject: [PATCH] Minor fixes; documentation update

LU-decomposition now returns signum as a second value.  Remove unused
*sizet-type*.  Update index.html with clbuild installation procedure
provided by Glen Henshaw and how to run the tests.
---
 data/permutation.lisp    |  4 +--
 documentation/index.html | 77 +++++++++++++++++++++++++++++-----------
 init/types.lisp          |  9 ++---
 linear-algebra/lu.lisp   | 25 +++++++------
 4 files changed, 72 insertions(+), 43 deletions(-)

diff --git a/data/permutation.lisp b/data/permutation.lisp
index 8cfed933..002e05d4 100644
--- a/data/permutation.lisp
+++ b/data/permutation.lisp
@@ -1,6 +1,6 @@
 ;; Permutations
 ;; Liam Healy, Sun Mar 26 2006 - 11:51
-;; Time-stamp: <2008-12-31 21:10:05EST permutation.lisp>
+;; Time-stamp: <2009-01-08 10:28:06EST permutation.lisp>
 ;; $Id$
 
 (in-package :gsl)
@@ -17,8 +17,6 @@
     :reader element-type :allocation :class))
   (:documentation "GSL permutations."))
 
-;;(pushnew (cons 'permutation *sizet-type*) *class-element-type* :test #'equal)
-
 (cffi:defcstruct gsl-permutation-c	; The GSL struct
   (size sizet)
   (data :pointer))
diff --git a/documentation/index.html b/documentation/index.html
index c576cc31..bdf5717a 100644
--- a/documentation/index.html
+++ b/documentation/index.html
@@ -107,20 +107,13 @@ GSLL should work in any Common Lisp implementation and platform
 combination for which the following are supported:</p>
 <ul>
 <li><a href="http://www.gnu.org/software/gsl/">GSL</a>
-(<a href="http://packages.debian.org/lenny/libgsl0ldbl">libgsl0ldbl</a>
-  in Debian/Ubuntu)
 </li>
 <li><a href="http://common-lisp.net/project/cffi/">CFFI</a>,
-version 0.10.0 or newer;
-only platforms and implementations which have callbacks and
-foreign-funcall support will work
-  (<a href="http://packages.debian.org/lenny/cl-cffi">cl-cffi</a>
-  in Debian/Ubuntu)
+version 0.10.0 or newer; callbacks and <code>foreign-funcall</code> must be supported
 </li>
 <li><a href="http://www.cliki.net/trivial-garbage">trivial-garbage</a>
 <li><a href="http://common-lisp.net/project/cl-utilities/">cl-utilities</a>
-  (<a href="http://packages.debian.org/lenny/cl-utilities">cl-utilities</a>
-  in Debian/Ubuntu)</li>
+</li>
 
 <li><a href="http://www.cliki.net/asdf">ASDF</a></li></ul>
 <p>GSLL has been tested with
@@ -135,20 +128,64 @@ foreign-funcall support will work
 </p>
 
 <h2>Download and Install</h2>
+ <h3>With <a href="http://git.or.cz">git</a> and asdf</h3>
 <a name="getit"/>
-<p>Use <a href="http://git.or.cz">git</a> to download:
-<pre>
-git clone git://repo.or.cz/gsll.git
-</pre>
+<p>Download/update:
+  <ul>
+    <li><code>git clone git://repo.or.cz/gsll.git</code></li>
+    <li><code>git pull</code> in the <code>gsll</code> directory
+    afterwards to update</li> 
+  </ul>
 <p>The <a href="http://repo.or.cz/w/gsll.git"> repository web page</a>
 can be used to browse or retrieve a compressed tarball (click the most
 recent "snapshot" link).
 You will need to make a link of <code>gsll.asd</code> and
 optionally <code>gsll-tests.asd</code> to some directory known to ASDF.
 Then in Lisp, load the system:
-<pre>(asdf:operate 'asdf:load-op :gsll)</pre> 
-<p>and if you wish to run the test suite,
-<pre>(asdf:operate 'asdf:load-op :gsll-tests)</pre> 
+  <ul>
+    <li><code>(asdf:operate 'asdf:load-op :gsll)</code></li>
+  </ul>
+ <h3>With <a href="http://common-lisp.net/project/clbuild/">clbuild</a></h3>
+<p>
+ Add the following to <code>wnpp-projects</code>:
+  <ul>
+    <li><code>gsll get_git git://repo.or.cz/gsll.git</code></li>
+    <li><code>trivial-garbage get_darcs http://common-lisp.net/~loliveira/darcs/trivial-garbage</code></li>
+    <li><code>cl-utilities get_cvs_clnet</code></li>
+  </ul>
+<p>and add
+  <ul>
+    <li><code>gsll cffi trivial-garbage cl-utilities</code></li>
+  </ul>
+<p>
+to <code>dependencies</code> and execute
+from within the clbuild directory:
+  <ul>
+    <li><code>sudo ./clbuild update gsll</code></li>
+  </ul>
+ <h3>With Debian or Ubuntu</h3>
+  <ul>
+    <li><code>sudo aptitude install libgsl0-dev cl-cffi cl-utilities</code></li>
+    <li><code>git clone git://repo.or.cz/gsll.git</code></li>
+    <li><code>darcs get http://common-lisp.net/~loliveira/darcs/trivial-garbage</code></li>
+    <li><code>clc-register-user-package trivial-garbage/trivial-garbage.asd</code></li>
+    <li><code>clc-register-user-package gsll/gsll.asd</code></li>
+    <li><code>clc-register-user-package gsll/gsll-tests.asd</code></li>
+  </ul>
+<p>
+  After starting your Lisp implementation,
+  <ul>
+    <li><code>(clc:clc-require :gsll)</code></li>
+  </ul>
+ <h3>Test suite</h3>
+  <p>The test suite may be run with
+  <ul>
+    <li><code>(asdf:operate 'asdf:load-op :gsll-tests)</code></li>
+    <li><code>(in-package :gsl)</code></li>
+    <li><code>(lisp-unit:run-tests)</code></li>
+  </ul>
+  <p>Please see the file documentation/status.text for known failures.
+ <h3>License</h3>
 <p>
 This software is distributed under
 the <a href="http://www.cliki.net/LLGPL">LLGPL</a>
@@ -278,9 +315,9 @@ eigen-symm eigen-symmv eigen-herm eigen-hermv
 monte-carlo-plain monte-carlo-miser monte-carlo-vegas
 </pre>
 <p>
-An instance each may be created with a function that whose name is
-"make-" followed by the class name, e.g. <code>make-histogram</code>.
-The arguments that the function takes depends on the class.
+An instance may be created with a function whose name is "make-"
+followed by the class name, e.g. <code>make-histogram</code>.  The
+arguments that the function takes depends on the class.
 </p>
 
  <h3>Additional definitions</h3>
@@ -317,7 +354,7 @@ version should still be considered alpha.
 <!-- Created: Feb 25 2005 -->
 <!-- hhmts start -->
 <small>
-Time-stamp: <2009-01-07 22:25:08EST index.html>
+Time-stamp: <2009-01-08 13:28:20EST index.html>
 </small>
 <!-- hhmts end -->
  </div>
diff --git a/init/types.lisp b/init/types.lisp
index e1d41fe3..d6814167 100644
--- a/init/types.lisp
+++ b/init/types.lisp
@@ -1,6 +1,6 @@
 ;; Permissible types
 ;; Liam Healy 2008-12-31 21:06:34EST types.lisp
-;; Time-stamp: <2008-12-31 21:52:33EST types.lisp>
+;; Time-stamp: <2009-01-08 10:28:04EST types.lisp>
 ;; $Id: $
 
 (in-package :gsl)
@@ -9,18 +9,13 @@
 ;;;; Types for CFFI (will eventually be in CFFI)
 ;;;;****************************************************************************
 
-(defvar *sizet-type* nil
-  "The CL type for size_t.")
-
 (case
-  (cffi:foreign-type-size :long)
+    (cffi:foreign-type-size :long)
   (8
    (push :int64 *features*)
-   (setf *sizet-type* '(unsigned-byte 64))
    (cffi:defctype sizet :uint64))
   (4
    (push :int32 *features*)
-   (setf *sizet-type* '(unsigned-byte 32))
    (cffi:defctype sizet :uint32))
   (t (error "Size of :long unrecognized")))
 
diff --git a/linear-algebra/lu.lisp b/linear-algebra/lu.lisp
index b2fa5a49..645d2883 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: <2008-12-30 22:32:38EST lu.lisp>
+;; Time-stamp: <2009-01-08 12:15:52EST lu.lisp>
 ;; $Id$
 
 (in-package :gsl)
@@ -11,7 +11,7 @@
   :definition :generic
   :inputs (A)
   :outputs (A p)
-  :return (A)
+  :return (A signum)
   :element-types :doubles
   :documentation			; FDL
   "Factorize the square matrix A into the LU decomposition PA = LU,
@@ -21,12 +21,12 @@
   diagonal) contains L.  The diagonal elements of L are unity, and are
   not stored.
 
-  The permutation matrix P is encoded in the permutation
-  p.  The j-th column of the matrix P is given by the
-  k-th column of the identity matrix, where k = p_j the
-  j-th element of the permutation vector. The sign of the
-  permutation is given by signum. It has the value (-1)^n,
-  where n is the number of interchanges in the permutation.
+  The permutation matrix P is encoded in the permutation p.  The j-th
+  column of the matrix P is given by the k-th column of the identity
+  matrix, where k = p_j the j-th element of the permutation
+  vector. The sign of the permutation is returned as the second
+  value; it is the value (-1)^n, where n is the number of
+  interchanges in the permutation.
 
   The algorithm used in the decomposition is Gaussian Elimination with
   partial pivoting (Golub & Van Loan, Matrix Computations,
@@ -52,7 +52,7 @@
   :inputs (LU p)
   :outputs (x)
   :element-types :doubles
-  :documentation			; FLD
+  :documentation			; FDL
   "Solve the square system A x = b in-place
    using the LU decomposition of A into
    (LU, p). On input x should contain the right-hand
@@ -94,23 +94,22 @@
 (defmfun LU-determinant ((LU matrix) signum)
   ("gsl_linalg" :complex "_LU_det")
   (((mpointer LU) :pointer) (signum :int))
-  :c-return :double
   :definition :generic
   :inputs (LU)
   :element-types :doubles
+  :c-return :double
   :documentation			; FDL
   "Compute the determinant of a matrix from its LU
   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))
   ("gsl_linalg" :complex "_LU_lndet")
   (((mpointer LU) :pointer))
-  :c-return :double
   :definition :generic
   :inputs (LU)
   :element-types :doubles
+  :c-return :double
   :documentation			; FDL
   "The logarithm of the absolute value of the
    determinant of a matrix A, ln|det(A)|, from its LU decomposition,
@@ -120,10 +119,10 @@
 (defmfun LU-sgndet ((LU matrix) signum)
   ("gsl_linalg" :complex "_LU_sgndet")
   (((mpointer LU) :pointer) (signum :int))
-  :c-return :int
   :definition :generic
   :inputs (LU)
   :element-types :doubles
+  :c-return :int
   :documentation 			; FDL
   "Compute the sign or phase factor of the determinant of a matrix A,
   det(A)/|det(A)|, from its LU decomposition, LU.")
-- 
GitLab