From jivestgarden at common-lisp.net Fri Jul 10 19:31:26 2009
From: jivestgarden at common-lisp.net (=?UTF-8?Q?J=C3=B8rn_Inge_Vestg=C3=A5rden?=)
Date: Fri, 10 Jul 2009 15:31:26 -0400
Subject: [lisplab-cvs] r56 - doc/manual
Message-ID:
Author: jivestgarden
Date: Fri Jul 10 15:31:25 2009
New Revision: 56
Log:
A lot more writing on the manual
Modified:
doc/manual/lisplab.texi
Modified: doc/manual/lisplab.texi
==============================================================================
--- doc/manual/lisplab.texi (original)
+++ doc/manual/lisplab.texi Fri Jul 10 15:31:25 2009
@@ -27,8 +27,7 @@
@menu
* Introduction::
-* Dependencies::
-* Installing::
+* Getting started::
* Tutorial::
* Structure::
* Index::
@@ -38,98 +37,93 @@
@node Introduction
@chapter Introduction
-Lisplab is a mathematics library in Common Lisp. Common Lisp
-is a general purpose programming. The purpose
-of Lisplab is to specialize Common Lisp towards mathematics.
+Lisplab is a mathematics library in Common Lisp and offers
+an easy-to-use and rich programming framework with linear algebra,
+Fast Fourier Transform, Special functions, Runge-Kutta solver,
+infix notation, and general matrix utility functions.
The name Lisplab is inspired by Matlab and Lisplab offers
much of the same kind of programming style as Matlab, with high level
manipulation of matrices. Contrary to Matlab, Lisplab can do a
-lot other than just matrix manipulation because Lisplab is
+lot more than just matrix manipulation because Lisplab is
based on Common Lisp. Hence, you get all
-the benefits of programming in a lexically scoped, dynamic, and fast
-general purpose programming language, not bound to the idiom
-of @i{everything's a matrix}.
+the benefits of lexical scope, dynamic scope, macros, CLOS, fast execution,
+and working in an free general purpose programming language. And
+best of all: you can enjoy you favorite data-types in addition
+to the matrices: functions, hash tables, structures,
+classes, arbitrary precision
+integers, rationals, and lists.
Note that Lisplab is not unique in building Matlab-like
-syntax on top of Common Lisp. Lisplab contains much code from
+syntax on top of Common Lisp. Lisplab contains code from
Matlisp, but has also a lot of new code, refactored
-code and rewritten code. Other libraries of similar nature
+code and rewritten code. Other Common Lisp matrix libraries
are FEMLLISP and NLISP.
- at node Dependencies
- at chapter Dependencies
+ at node Getting started
+ at chapter Getting started
+
+ at section Dependencies
Lisplab has been developed with SBCL, SLIME and ASDF on Linux,
and there are yet unnecessary bindings to these platforms.
@enumerate
- at item
-Some of the optimized lisp code uses the SBCL macro
- at code{truly-the}. This must be dealt with.
-
- at item
-The FFTW FFI is only for SBCL.
-
- at item
-The Matlisp FFI should be portable to other lisps and
+ at item Some of the optimized lisp code uses the
+SBCL macro @code{truly-the}. This must be dealt with.
+ at item The FFTW FFI is only for SBCL.
+ at item The Matlisp FFI should be portable to other lisps and
Windows, but it has not been tested.
-
+ at item The @code{*READ-DEFAULT-FLOAT-FORMAT*} must be @code{double-float}.
@end enumerate
In order to enjoy the full power of Lisplab you
must install some foreign libraries. These are
@enumerate
@item
-BLAS -- Basic Linear Algebra Subprograms. Preferably the Atlas build
+BLAS -- Basic Linear Algebra Subprograms. Preferably the Atlas build.
@item
-LAPACK -- Matrix library. Preferably the Atlas build
-
+LAPACK -- Matrix library. Preferably the Atlas build.
@item
FFTW -- The fastest Fast Fourier Transform available.
@end enumerate
+ at section Installing
+Lisplab is ASDF installable, but before you come so far you need to
+specify the location of the foreign libraries.
+You specify these in three special variables,
+ at itemize
+ at item *lisplab-libblas-path*
+ at item *lisplab-liblapack-path*
+ at item *lisplab-libfftw-path*
+ at 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
+installation file, in @code{start.lisp}, or
+probably the easiest: directly in @code{lisplab.asd}.
- at node Installing
- at chapter Installing
-Lisplab is ASDF installable, but the installations is
-more complicated than most Common Lisp libraries because of
-the external dependencies. Lisplab has of the following
-ASDF systems
- at enumerate
+ASDF sub-systems
+ at itemize
@item @emph{Lisplab} --
the full Lisplab installation.
-
@item @emph{Lisplab-base} --
-the part of Lisplab without external dependencies. It should run
-on all platforms.
-
+the part of Lisplab without external dependencies.
@item @emph{Lisplab-matlisp} --
FFIs to BLAS and LAPACK. These are modified version from Matlisp.
-
@item @emph{Lisplab-fftw} --
FFI to FFTW for Fast Fourier Transform.
-
@item Slatec --
special functions, generated from Fortran by f2cl.
Originally made for Maxima.
-
@item Quadpack --
integration routines, generated from Fortran by f2cl.
- at end enumerate
+ at end itemize
-The simplest way to install Lisplab is to load @code{start.lisp}.
+The simplest way to test Lisplab is to load @code{start.lisp}.
If you have problems loading, first look at @code{start.lisp}
-and see if you can hack it.
-The foreign libraries are also loaded by ASDF and it takes
-the file pathnames from the file @code{libs.lisp}.
+and see if you can hack it. Then look at @code{lisplab.asd}.
- at node Tutorial
- at chapter Tutorial
-The main package of Lisplab is @i{lisplab}, with nickname @i{ll}.
-The tutorial assues that you are in the @i{lisplab} package or
-use it.
@section Naming conventions
The matrix classes and constructors follow the naming convention
@@ -145,21 +139,193 @@
@xref{Structure}, for more about the naming conventions
of matrix structure. There you also see the naming conventions for
-files.
+files, with level0 to level3.
+
+
+ at section Status - past and future
+The purpose of Lisplab
+is to provide a complete mathematics programming environment,
+not just linear algebra. Currently it contains a fairly
+large matrix manipulation basis and linear algebra,
+as well as fast Fourier transform and special functions.
+It lacks special matrices, such as diagonal, tridiagonal,
+and sparse matrices.
+
+Lisplab started as a refactoring of Matlisp, but
+I ended up by reimplementing most of it, keeping
+only the interfaces to Blas and Lapack. Currently,
+Lisplab and Matlisp have more or less the same functionality.
+Lisplab differ from Matlisp in the following ways
+ at itemize
+ at item Layered structure (@xref{Structure}.)
+ at item Shorter names.
+ at item Using the standard Lapack and Blas libraries, not a special build.
+ at item Native Common Lisp linear algebra implementations.
+ at end itemize
+
+The future I will mainly do minor changes and bug-fixes,
+since it now covers my basic needs. I will only add new
+modules when needed.
+
+
+However, there are many exiting extensions that can be made,
+such as
+ at itemize
+ at item Parallel computation, e.g. using MPI.
+ at item More native linear algebra routines, e.g. with eigenvalues.
+ at item New non-matrix algebra items, e.g. quaternions, polynomes or
+arbitrary precision floats.
+ at item Symbolic manipulation. Could make something like
+ at i{ginac} in @code{c++}.
+ at item Other Common Lisp libraries, e.g. image processing libraries.
+ at end itemize
+
+Please contact if you want to contribute.
+
+
+ at node Tutorial
+ at chapter Tutorial
+
+ at section Starting
+To test Lisplab open Emacs and Slime in the lisplab directory.
+ at example
+CL-USER> (load "start.lisp")
+CL-USER> (in-package :ll)
+ at end example
+The main package of Lisplab is @i{lisplab}, with nickname @i{ll}.
+The tutorial assues that you are in the @i{lisplab} package or
+use it.
+
+
@section Basic algebra
+Central in Lisplab is an algebra with the functions
+ at code{.+}, @code{.-}, @code{.*}, @code{./}, and @code{.^}.
+These are generalization of
+ at code{+}, @code{-}, @code{*}, @code{/}, and @code{^}.
+For numbers they work the same,
+ at example
+LL> (.+ 1 2)
+3
+ at end example
+The functions @code{.+}, @code{.-}, @code{.*}, @code{./}, and @code{.^}
+are mainly wrappers that call @code{reduce} on its arguments with the
+generic functions
+ at code{.add}, @code{.sub}, @code{.mul}, @code{.div}, and @code{.expt}.
+If you want to extend the algebra, e.g. with polynomials,
+you should add specializing methods to these generic functions.
@section Matrix classes
+The matrix classes hierarchy has three lines of inheritance. The
+first is on structure, the second is on element type, and
+the third is on implementation. This hierarchy is similar
+to the stream example in Object-Oriented Programming in Common Lisp,
+by Sonya E. Keene.
+
+The most common classes are @code{matrix-dge} which
+is a general, double-float matrix with any implementation
+and @code{matrix-zge} which is a
+general, complex double-float matrix with any implementation.
+
+The best way to inspect the class structure is to play
+with the low level constructor @code{make-matrix-instance},
+for example,
+ at example
+LL> (make-matrix-instance '(:z :ge :any) '(2 2) 1)
+#
+ at end example
+where types are :d, :z, or :any, structure is :ge or :d,
+and implementation is :any, :lisp, :blas. Not all combinations
+have a class, since not all combinations are usefull. More types
+and structures will be added in the future.
+
+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
+by default. To add new classes in a structured way,
+ at xref{Structure}.
@section Matrix construction
-Lisplab offers a very many ways to create a matrix.
-
+The constructor @code{make-matrix-instance} is not
+the primary choice to create a matrix. Its better to use a special
+constructor. Try
+ at example
+LL> (dnew 0 2 2)
+#
+
+LL>(drow 1 2)
+#
+
+LL> (dcol 1 2)
+#
+
+LL> (dmat (1 2) (3 4))
+#
+ at end example
+where @code{dnew}, @code{dcol}, and @code{drow} are functions,
+while @code{dmat} is a macro. Similarly, there are
+ at code{znew}, @code{zcol}, @code{zrow}, and @code{zmat}
+for double float matrices and
+ at code{mnew}, @code{mcol}, @code{mrow}, and @code{mmat}
+for any matrices. The latter take matrix class as first argument.
+
+Often you want to create a matrix of the same type as a input
+matrix. Then you can use @code{mcreate}. It's mainly useful when
+creating methods that should operate on many matrix types.
+
+To create matrices from something else, use @code{convert}
+ at example
+LL> (convert '((1 2) (3 4)) '(:d :ge :any))
+#
+ at end example
+ at code{Convert} also converts between matrix types. If the
+matrix contents cannot be converted directly (e.g., conversion
+from complex to real), use @code{copy-contents} instead.
+
+ at section Matrix element reference
+To access a matrix element use the generic function @code{mref}
+ at example
+LL> (mref (dmat (1 2) (3 4)) 0 1)
+2.0
+ at end example
+Matrix references are zero based. The @code{mref} is settable.
+
+Furthermore, all matrices can also list their elements as vectors
+(similar to row-major-aref for arrays). To access a matrix as vector
+use the generic function @code{vref}
+ at example
+LL> (vref (dmat (1 2) (3 4)) 1)
+3.0
+ at end example
+whcih is also settable. Note that the matrices are column major order.
@section Matrix manipulation
+ at section Matrices without store
+
@section Ordinary functions
@section Special functions
+ at section Infix notation
+
@node Structure
@chapter Structure
From jivestgarden at common-lisp.net Sat Jul 11 08:28:33 2009
From: jivestgarden at common-lisp.net (=?UTF-8?Q?J=C3=B8rn_Inge_Vestg=C3=A5rden?=)
Date: Sat, 11 Jul 2009 04:28:33 -0400
Subject: [lisplab-cvs] r57 - src/matrix
Message-ID:
Author: jivestgarden
Date: Sat Jul 11 04:28:32 2009
New Revision: 57
Log:
matrix-ge
Modified:
src/matrix/level1-constructors.lisp
Modified: src/matrix/level1-constructors.lisp
==============================================================================
--- src/matrix/level1-constructors.lisp (original)
+++ src/matrix/level1-constructors.lisp Sat Jul 11 04:28:32 2009
@@ -61,7 +61,8 @@
;;; Adding all the matrix descriptions
-(add-matrix-class 'matrix-ge :any :ge :lisp)
+(add-matrix-class 'matrix-base-ge :any :ge :base)
+(add-matrix-class 'matrix-ge :any :ge :any)
(add-matrix-class 'matrix-base-dge :d :ge :base)
(add-matrix-class 'matrix-lisp-dge :d :ge :lisp)
From jivestgarden at common-lisp.net Sat Jul 11 09:33:39 2009
From: jivestgarden at common-lisp.net (=?UTF-8?Q?J=C3=B8rn_Inge_Vestg=C3=A5rden?=)
Date: Sat, 11 Jul 2009 05:33:39 -0400
Subject: [lisplab-cvs] r58 - doc/manual
Message-ID:
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
From jivestgarden at common-lisp.net Mon Jul 20 07:54:51 2009
From: jivestgarden at common-lisp.net (=?UTF-8?Q?J=C3=B8rn_Inge_Vestg=C3=A5rden?=)
Date: Mon, 20 Jul 2009 03:54:51 -0400
Subject: [lisplab-cvs] r59 - doc/manual
Message-ID:
Author: jivestgarden
Date: Mon Jul 20 03:54:44 2009
New Revision: 59
Log:
manual
Added:
doc/manual/Makefile
Modified:
doc/manual/lisplab.texi
Added: doc/manual/Makefile
==============================================================================
--- (empty file)
+++ doc/manual/Makefile Mon Jul 20 03:54:44 2009
@@ -0,0 +1,9 @@
+source=lisplab.texi
+
+all: html
+
+html: $(source)
+ makeinfo --html $(source)
+
+pdf: $(source)
+ texi2pdf $(source)
\ No newline at end of file
Modified: doc/manual/lisplab.texi
==============================================================================
--- doc/manual/lisplab.texi (original)
+++ doc/manual/lisplab.texi Mon Jul 20 03:54:44 2009
@@ -338,9 +338,111 @@
@end example
which is also settable. Note that the matrices are column major order.
- at section Matrix manipulation
+ at section The dotted algebra
+The element-vise functions by conventions have names starting
+with a dot (period). The dotted algebra works on the single elements and
+is structure agnostic. The functions of the dotted algebra
+introduce a programming style
+much the same as for Matlab, and combined with the linear algebra
+functions, you can write compact programs, without the slower
+single element references.
+ at example
+LL> (.sin (drow 0 1))
+#
+ at end example
+And so also for the algebraic operations
+ at example
+LL> (let ((a (drow 0 1))
+ (b (dcol 0.1 0.2)))
+ (.+ a (.* b 2)))
+#
+ at end example
+Note here that the @code{.+}, @code{.*}, etc. ignore the structure
+so that it is completely valid to add a row and a column matrix. Note
+also that the scalar is multiplied element-vise.
+
+The dotted algebra is to some extent also implemented for
+general element matrices
+ at example
+LL> (.+ (row 'matrix-ge 1/2 3/2) 1)
+#
+ at end example
+
@section Linear algebra
+The linear algebra functions (unlike the dotted algebra)
+The linear algebra functions often start with @i{m}, although this
+conventions is not strictly enforced. Currently there is no a wide
+spectrum of linear algebra function, but you find matrix multiplication,
+matrix inversion, transpose, conjugate transpose and eigenvalues.
+
+Matrix multiplications
+ at example
+LL>(let ((a (dmat (1 0) (0 -1)))
+ (b (dcol 0.1 0.2)))
+ (m* a b))
+#
+ at end example
+Matrix inversion
+ at example
+LL> (minv (dmat (1 2) (-2 1)))
+#
+ at end example
+Transpose
+ at example
+LL> (mtp (dmat (1 2) (-2 1)))
+#
+ at end example
+Conjugate transpose
+ at example
+LL> (mct (zmat (1 (* 2 %i)) (-2 1)))
+#
+ at end example
+Eigenvalues
+ at example
+LL> (eigenvalues (dmat (1 2) (0 0.5)))
+#
+ at end example
+Eigenvectors
+ at example
+LL> (eigenvectors (dmat (1 2) (0 0.5)))
+(#
+ #)
+ at end example
+
+Some of the linear algebra functions also work for
+general element matrices
+ at example
+
+ at end example
+
@section Matrix IO
From jivestgarden at common-lisp.net Mon Jul 20 10:47:37 2009
From: jivestgarden at common-lisp.net (=?UTF-8?Q?J=C3=B8rn_Inge_Vestg=C3=A5rden?=)
Date: Mon, 20 Jul 2009 06:47:37 -0400
Subject: [lisplab-cvs] r60 - src/matrix
Message-ID:
Author: jivestgarden
Date: Mon Jul 20 06:47:34 2009
New Revision: 60
Log:
remove unused
Removed:
src/matrix/level1-funmat.lisp
Modified:
src/matrix/level2-funmat.lisp
Modified: src/matrix/level2-funmat.lisp
==============================================================================
--- src/matrix/level2-funmat.lisp (original)
+++ src/matrix/level2-funmat.lisp Mon Jul 20 06:47:34 2009
@@ -64,7 +64,7 @@
(defmethod view-col (matrix col)
"Outputs a function matrix"
- (make-instance 'function-matrix
+ (make-instance 'function-matrix
:rows (rows matrix)
:cols 1
:size (rows matrix)
From jivestgarden at common-lisp.net Mon Jul 20 10:55:01 2009
From: jivestgarden at common-lisp.net (=?UTF-8?Q?J=C3=B8rn_Inge_Vestg=C3=A5rden?=)
Date: Mon, 20 Jul 2009 06:55:01 -0400
Subject: [lisplab-cvs] r61 - src/matrix
Message-ID:
Author: jivestgarden
Date: Mon Jul 20 06:54:56 2009
New Revision: 61
Log:
matrix views
Modified:
lisplab.asd
src/matrix/level2-funmat.lisp
Modified: lisplab.asd
==============================================================================
--- lisplab.asd (original)
+++ lisplab.asd Mon Jul 20 06:54:56 2009
@@ -68,7 +68,9 @@
(:file "level2-generic")
(:file "level2-matrix-dge")
(:file "level2-matrix-zge")
- (:file "level2-array-functions")))
+ (:file "level2-array-functions")
+ (:file "level2-funmat")
+ ))
;;
;; IO (level 3)
Modified: src/matrix/level2-funmat.lisp
==============================================================================
--- src/matrix/level2-funmat.lisp (original)
+++ src/matrix/level2-funmat.lisp Mon Jul 20 06:54:56 2009
@@ -28,8 +28,6 @@
(make-instance 'function-matrix
:rows rows
:cols cols
- :size size
- :element-type (element-type matrix)
:mref #'(lambda (x i j)
(declare (ignore x))
(vref matrix (column-major-idx i j rows)))
@@ -47,8 +45,6 @@
(make-instance 'function-matrix
:rows (cols matrix)
:cols 1
- :size (cols matrix)
- :element-type (element-type matrix)
:mref #'(lambda (x i j)
(declare (ignore x j))
(mref matrix row i))
@@ -67,8 +63,6 @@
(make-instance 'function-matrix
:rows (rows matrix)
:cols 1
- :size (rows matrix)
- :element-type (element-type matrix)
:mref #'(lambda (x i j)
(declare (ignore x j))
(mref matrix i col))
From jivestgarden at common-lisp.net Mon Jul 20 19:23:18 2009
From: jivestgarden at common-lisp.net (=?UTF-8?Q?J=C3=B8rn_Inge_Vestg=C3=A5rden?=)
Date: Mon, 20 Jul 2009 15:23:18 -0400
Subject: [lisplab-cvs] r62 - in doc: html manual
Message-ID:
Author: jivestgarden
Date: Mon Jul 20 15:23:09 2009
New Revision: 62
Log:
manual and html
Added:
doc/html/
doc/html/index.html
Modified:
doc/manual/lisplab.texi
Added: doc/html/index.html
==============================================================================
--- (empty file)
+++ doc/html/index.html Mon Jul 20 15:23:09 2009
@@ -0,0 +1,86 @@
+
+
+
+
+ LISPLAB project
+
+
+
+
+
+
+
LISPLAB
+
Mathematics library for Common Lisp
+
+
+
Introduction
+
+ Lisplab is a mathematics library in common lisp
+ released under the GNU General Public License (GPL).
+ Lisplab is based on code from Matlisp
+ to interface Blas/Lapack for computations, but has also a lots
+ of code written natively in Common Lisp in addition. The main purpose
+ of the library is to integration various sources
+ of mathematical software to a convenient platform for computations.
+ The sources of software include
+
+
Interfaces to BLAS and LAPACK.
+
Interface to FFTW.
+
Numerical integration from QUADPACK and F2CL.
+
Special functions from SLATEC and F2CL.
+
A lot of additional routines, for linear algebra, IO, fft, etc.
+
+
+
+ The part of Lisplab which is most mature is the matrix and linear algebra,
+ and these should provide a good basis for matrix based modelling.
+ The interfaces to Blas/Matlisp are only to low degree finished.
+ However, new methods here should be quite easily added.
+