[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