[lisplab-cvs] r58 - doc/manual
Jørn Inge Vestgården
jivestgarden at common-lisp.net
Sat Jul 11 09:33:39 UTC 2009
Author: jivestgarden
Date: Sat Jul 11 05:33:38 2009
New Revision: 58
Log:
backup
Modified:
doc/manual/lisplab.texi
Modified: doc/manual/lisplab.texi
==============================================================================
--- doc/manual/lisplab.texi (original)
+++ doc/manual/lisplab.texi Sat Jul 11 05:33:38 2009
@@ -66,18 +66,18 @@
@section Dependencies
Lisplab has been developed with SBCL, SLIME and ASDF on Linux,
and there are yet unnecessary bindings to these platforms.
- at enumerate
+ at itemize
@item Some of the optimized lisp code uses the
SBCL macro @code{truly-the}. This must be dealt with.
@item The FFTW FFI is only for SBCL.
@item The Matlisp FFI should be portable to other lisps and
Windows, but it has not been tested.
@item The @code{*READ-DEFAULT-FLOAT-FORMAT*} must be @code{double-float}.
- at end enumerate
+ at end itemize
In order to enjoy the full power of Lisplab you
must install some foreign libraries. These are
- at enumerate
+ at itemize
@item
BLAS -- Basic Linear Algebra Subprograms. Preferably the Atlas build.
@@ -87,7 +87,7 @@
@item
FFTW -- The fastest Fast Fourier Transform available.
- at end enumerate
+ at end itemize
@section Installing
Lisplab is ASDF installable, but before you come so far you need to
@@ -103,7 +103,7 @@
installation file, in @code{start.lisp}, or
probably the easiest: directly in @code{lisplab.asd}.
-ASDF sub-systems
+ASDF sub-systems:
@itemize
@item @emph{Lisplab} --
the full Lisplab installation.
@@ -124,23 +124,43 @@
If you have problems loading, first look at @code{start.lisp}
and see if you can hack it. Then look at @code{lisplab.asd}.
+To install Blas, Lapack, and FFTW, if you are lazy, and lucky
+enough to administer a Debian or Ubuntu machine,
+you typically do
+ at example
+# aptitude install libatlas3gf-base
+# aptitude install libfftw3-3
+ at end example
@section Naming conventions
+ at itemize
+ at item
The matrix classes and constructors follow the naming convention
from BLAS where you give names based on element type and
matrix structure.
-
The most used types are @i{f - float}, @i{d - double},
@i{c - complex float}, @i{z - complex double float},
while for matrix structure @i{ge - general}, @i{di - diagonal},
and many more. So @i{matrix-dge} is a general matrix
with double float elements, while @i{matrix-zge} is a
general matrix with complex double float elements.
-
+ at item
+The generic functions of the basic algebra start with period:
+ at code{.+}, @code{.-}, @code{.*}, @code{./}, @code{.^}, @code{.sin}
+ at code{.cos}, @code{.tan}, @code{.besj}, @code{.realpart}, etc.
+These functions work on numbers as the non-dotted Common Lisp functions
+and work element-vise on matrices.
+ at item
+Linear algebra functions tend to start with @i{m}:
+ at code{m*}, @code{minv}, @code{mmax}, @code{mtp}, etc.,
+but this conventions is followed only to low degree.
+ at item
+The naming convention of files follow the layered structure of
+Lisplab, with level0 to level3.
+ at item
@xref{Structure}, for more about the naming conventions
-of matrix structure. There you also see the naming conventions for
-files, with level0 to level3.
-
+of matrix classes.
+ at end itemize
@section Status - past and future
The purpose of Lisplab
@@ -172,12 +192,14 @@
such as
@itemize
@item Parallel computation, e.g. using MPI.
- at item More native linear algebra routines, e.g. with eigenvalues.
+ at item More native linear algebra routines, e.g. eigenvalue computation.
@item New non-matrix algebra items, e.g. quaternions, polynomes or
arbitrary precision floats.
@item Symbolic manipulation. Could make something like
@i{ginac} in @code{c++}.
- at item Other Common Lisp libraries, e.g. image processing libraries.
+ at item New matrix optimization for new usage, e.g. integer matrices for
+image processing or cryptography.
+ at item Interface to new foreign libraries, e.g. GSL.
@end itemize
Please contact if you want to contribute.
@@ -244,7 +266,7 @@
Note that with these three lines of inheritance there
are potentially incredibly many potential class. Let's
say we have 10 structures, 10 types and 4 implementations, giving
-400 classes. Not all of these are useful and not all are created
+400 classes. Not all of these are useful and only few are created
by default. To add new classes in a structured way,
@xref{Structure}.
@@ -314,10 +336,14 @@
LL> (vref (dmat (1 2) (3 4)) 1)
3.0
@end example
-whcih is also settable. Note that the matrices are column major order.
+which is also settable. Note that the matrices are column major order.
@section Matrix manipulation
+ at section Linear algebra
+
+ at section Matrix IO
+
@section Matrices without store
@section Ordinary functions
More information about the lisplab-cvs
mailing list