From fdb7a09f94c9d6457774016af4118e58b0d36e44 Mon Sep 17 00:00:00 2001 From: Liam Healy <liam@thinkpad.local> Date: Sun, 18 Jul 2010 22:47:18 -0400 Subject: [PATCH] Moved array documentation to GSD --- documentation/index.html | 97 +++------------------------------------- 1 file changed, 5 insertions(+), 92 deletions(-) diff --git a/documentation/index.html b/documentation/index.html index 05ad1d9e..b0ee0a40 100644 --- a/documentation/index.html +++ b/documentation/index.html @@ -277,98 +277,11 @@ GSLL has many functions that work on vectors (one-dimensional arrays) and matrices (two-dimensional arrays). GSLL supports all array element types that are supported by CFFI, the CL implementation, GSL, and the platform. This list is available in the -variable <code>grid:*array-element-types*</code>. On implementations that -support it (currently only SBCL), the contents are directly available -to the GSL functions without copying between the Lisp area and the C -area of memory.</p> +variable <code>grid:*array-element-types*</code>. <p> - The <a href="http://repo.or.cz/w/gsd.git">GSD</a> suite provides - many functions for construction, transformation, and composition of - GSL grid:foreign-arrays. When using grid functions for this purpose, - the <code>grid:specification</code> will - contain <code>grid:foreign-array</code> as the type; for example, -</p> -<pre> -(grid:make-grid '((grid:foreign-array 3 3) double-float) :initial-element 0) -</pre> -<p> - will make a 3x3 <code>matrix-double-float</code>. - The functions that the <code>grid</code> system provides such - as <code>transpose</code> as <code>subgrid</code>, are documented - in that collection. - </p> -<p> - Common Lisp arrays should be created with <code>grid:make-foreign-array</code> or - <code>#m</code>: - The #m reader macro in the default form creates a vector or matrix of - element type double-float, which is the most common type needed for - GSL functions. It optionally takes a numeric argument prefix as in - the example above to make an array with a different element type; a - guide to the numeric argument is given below. It should be - followed by a list; this list will be evaluated. If the list - contains <code>^</code>, the object created will be a matrix - and each row is ended with that symbol. - <p> - Classes of vectors and matrices are named by appending the element - type as hypenated words to "vector" or "matrix". The following table - shows the classes available on a 64-bit platform: - <center> - <table border=5 frame=all cellpadding=4 cellspacing=4 cols=6> - <caption align=top>Element types, vector and matrix - classes</caption> - <thead> - <tr><th><b>Element type</b><td><b>Vector class name</b> - <td><b>Matrix class name</b><td><b>#m prefix</b></thead> - <tbody> - <tr><td>double-float<td>vector-double-float<td>matrix-double-float - <td>1 or empty - <tr><td>(complex double-float)<td>vector-complex-double-float<td>matrix-complex-double-float<td>2 - <tr><td>single-float<td>vector-single-float<td>matrix-single-float<td>3 - <tr><td>(complex single-float)<td>vector-complex-single-float<td>matrix-complex-single-float<td>4 - <tr><td>(signed-byte 8)<td>vector-signed-byte-8<td>matrix-signed-byte-8<td>7 - <tr><td>(unsigned-byte 8)<td>vector-unsigned-byte-8<td>matrix-unsigned-byte-8<td>8 - <tr><td>(signed-byte 16)<td>vector-signed-byte-16<td>matrix-signed-byte-16<td>15 - <tr><td>(unsigned-byte 16)<td>vector-unsigned-byte-16<td>matrix-unsigned-byte-16<td>16 - <tr><td>(signed-byte 32)<td>vector-signed-byte-32<td>matrix-signed-byte-32<td>31 - <tr><td>(unsigned-byte 32)<td>vector-unsigned-byte-32<td>matrix-unsigned-byte-32<td>32 - <tr><td>(signed-byte 64)<td>vector-signed-byte-64<td>matrix-signed-byte-64<td>63 - <tr><td>(unsigned-byte 64)<td>vector-unsigned-byte-64<td>matrix-unsigned-byte-64<td>64 - </tbody> - </table> - </center> -<p> - Individual elements are obtained using <code>grid:gref</code> (analogous - to Lisp's <code>aref</code>), and are set - with <code>setf grid:gref</code>. A complete CL array may - be extracted with the function <code>#'cl-array</code>. -</p> -<p>Copying grid:foreign-arrays is performed with the function <code>copy</code>. - This works between grid:foreign-arrays, pointers, and CL arrays. It is useful - for functions intended to be passed to GSL functions (for - e.g. solving, minimizing or fitting) that need to set a GSL vector - or matrix, because one can simply copy into the passed-in pointer. -</p> -<p>There are two functions provided to extract the dimensions of a - vector or array: <code>dim0</code> and <code>dim1</code>; the latter - is applicable only for matrices. -</p> -<p>If you - use <a href="http://common-lisp.net/project/iterate/">iterate</a>, - there are extensions defined that make it easier to iterate over - grid:foreign-arrays. These are: - <ul> - <li><code>matrix-row</code>, <code>matrix-row-index</code></li> - <li><code>matrix-column</code>, <code>matrix-column-index</code></li> - <li><code>vector-element</code>, <code>vector-element-index</code></li> - <li><code>matrix-element</code>, <code>matrix-element-index</code></li> - </ul> - <p>For example, -<pre> -(defparameter m1 #m(1 2 3 ^ 0 6 8)) -(iter:iter (iter:for e :matrix-element m1) (princ e) (princ " ")) -1.0 2.0 3.0 0.0 0.0 6.0 8.0 -</pre> - <h3>Passing functions</h3> +See the documentation for GSD for more information. + +<h3>Passing functions</h3> <p> Functions that are passed to GSL functions (known as <i>callbacks</i> in C) are specified with a @@ -466,7 +379,7 @@ and arrays used internally or for function return. <!-- Created: Feb 25 2005 --> <!-- hhmts start --> <small> -Time-stamp: <2010-06-30 21:18:34EDT index.html> +Time-stamp: <2010-07-18 22:13:28EDT index.html> </small> <!-- hhmts end --> </div> -- GitLab