[lisplab-cvs] r82 - doc/manual
Jørn Inge Vestgården
jivestgarden at common-lisp.net
Wed Aug 12 19:41:16 UTC 2009
Author: jivestgarden
Date: Wed Aug 12 15:41:16 2009
New Revision: 82
Log:
more manual
Modified:
doc/manual/lisplab.texi
Modified: doc/manual/lisplab.texi
==============================================================================
--- doc/manual/lisplab.texi (original)
+++ doc/manual/lisplab.texi Wed Aug 12 15:41:16 2009
@@ -89,9 +89,9 @@
specify the location of the foreign libraries.
You specify these in three special variables,
@itemize
- at item *lisplab-libblas-path*
- at item *lisplab-liblapack-path*
- at item *lisplab-libfftw-path*
+ at item @code{*lisplab-libblas-path*}
+ at item @code{*lisplab-liblapack-path*}
+ at item @code{*lisplab-libfftw-path*}
@end itemize
that live their lives in the Common-Lisp-User package.
You can either assign them on the top-level, in you Common Lisp
@@ -108,10 +108,10 @@
FFIs to BLAS and LAPACK. These are modified version from Matlisp.
@item @emph{Lisplab-fftw} --
FFI to FFTW for Fast Fourier Transform.
- at item Slatec --
+ at item @emph{Slatec} --
special functions, generated from Fortran by f2cl.
Originally made for Maxima.
- at item Quadpack --
+ at item @emph{Quadpack} --
integration routines, generated from Fortran by f2cl.
@end itemize
@@ -157,6 +157,7 @@
of matrix classes.
@end itemize
+
@section Status - past and future
The purpose of Lisplab
is to provide a complete mathematics programming environment,
@@ -214,7 +215,8 @@
@section The dotted algebra
-Central in Lisplab is an algebra with the functions
+Central in Lisplab is an algebra (in the widest possible sense of the word)
+with the functions
@code{.+}, @code{.-}, @code{.*}, @code{./}, and @code{.^}.
These are generalization of
@code{+}, @code{-}, @code{*}, @code{/}, and @code{^}.
@@ -514,6 +516,37 @@
@node Structure
@chapter Structure
+ at section Design principles
+Design principles for the full library
+ at itemize
+ at item Lisplab is free software.
+ at item It makes a @i{homogeneous platform} for all
+kinds of mathematical calculations. (So it's a lot more
+than just a matrix library)
+ at item User applications need only to stay in Common Lisp.
+(There should be no need
+for optimized math in FFIs or special languages like Maxima)
+ at item Every common mathematical operator and function
+is represented by a @i{CLOS generic function}. (By convention
+the names of the operators start with a dot and is called
+the dotted algebra, where algebra is used in the widest possible sense
+of the word).
+ at item Modular structure (Inspired by GSL).
+ at item To steal as much as possible from as many as possible
+(I love free software).
+ at end itemize
+
+Design principles for the matrix part
+ at itemize
+ at item Layered structure where dependencies are
+primarily on the layer below -- not vertical in the layer.
+ at item The layers get larger upwards. Combined with the previous
+principle it ensures a modular structure!
+ at end itemize
+
+
+
+
@section Package structure
So far, there is only one main package, called, you might guess it:
@i{lisplab}. Except from that there are only a few special packages
@@ -563,8 +596,19 @@
denote the level, it is most probably level 3, or outside the level system
(non matrix code).
- at section Class structure
-TODO
+ at section Matrix class hierarchy
+The matrix class hierarchy has three independent
+lines of inheritance
+ at itemize
+ at item On structure
+ at item On element type
+ at item On implementation
+ at end itemize
+The structure is inspired by the stream example in
+Object-Oriented Programming in Common Lisp,
+by Sonya E. Keene.
+
+
More information about the lisplab-cvs
mailing list