[lisplab-cvs] r97 - doc/www

Jørn Inge Vestgården jivestgarden at common-lisp.net
Sun Sep 27 17:08:56 UTC 2009


Author: jivestgarden
Date: Sun Sep 27 13:08:55 2009
New Revision: 97

Log:
Updated web page

Modified:
   doc/www/index.html

Modified: doc/www/index.html
==============================================================================
--- doc/www/index.html	(original)
+++ doc/www/index.html	Sun Sep 27 13:08:55 2009
@@ -1,103 +1,210 @@
-<?xml version="1.0"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
- <head>
- <title>LISPLAB project</title>
- <link rel="stylesheet" type="text/css" href="style.css"/>
- <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<head>
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
+<style type="text/css" media="all">
+body {
+  margin: 1em;
+  padding: 0px;
+  color: black;
+  background-color: white;
+  font: normal 100% sans-serif;
+}
+h1 {
+  font: bold 200% sans-serif;
+  color: green;
+}
+h2 {
+  font: bold 168% sans-serif;
+  color: blue;
+}
+h3 {
+  font: bold 141% sans-serif;
+  color: blue;
+}
+div#content {
+  padding: 2em 3em;
+}
+table {
+  border-top: 1px solid gray;
+  border-bottom: 1px solid gray;
+}
+
+th {
+  padding: .25em 2em;
+  border-bottom: 1px solid silver; 
+}
+td {
+  padding: 0em 2em;
+}
+
+</style>
+
+<title>LISPLAB project</title>
+
 </head>
 
 <body>
- <div class="header">
-  <h1>Lisplab</h1>
-  <h2>A mathematics library for Common Lisp</h2>
- </div>
- <hr>
- <h3>Introduction</h3>
- <p>
- Lisplab is a mathematics library in Common Lisp
- released under the GNU General Public License (GPL). 
- Lisplab is based on code from <a href=http://matlisp.sourceforge.net>Matlisp</a>, 
- but has now moved quite far from the original code mass.
- <p>
-   The main purpose of Lisplab is to provide a framwork for 
-   mathematical computations. This means that it should be easy
-   to create and manipulate mathematical objects and have 
-   a consistent naming of methods and classes. 
-   Lisplab is heavily based on CLOS. 
- </p>
- Lisplab contains  
- <ul>
-  <li>Interfaces to BLAS and LAPACK.
-  <li>Interface to FFTW.
-  <li>Numerical integration from QUADPACK and F2CL.
-  <li>Special functions from SLATEC and F2CL. 
-  <li>Routines for linear algebra,
+  <div class="header">
+    <h1>Lisplab</h1>
+    <h2>A mathematics library for Common Lisp</h2>
+  </div>
+  <p>
+    Lisplab is a mathematics library in Common Lisp
+    released under the GNU General Public License (GPL). 
+    Lisplab is based on code from <a href=http://matlisp.sourceforge.net>Matlisp</a>, 
+    but has now moved quite far from the original code mass.
+  <p>
+    The main purpose of Lisplab is to provide a framwork
+    for mathematical computations. This means that it should be easy
+    to create and manipulate mathematical objects and that naming 
+    of classes and functions should be consistent and clear. 
+    Lisplab is heavily based on CLOS. 
+  </p>
+  Lisplab contains
+  <ul>
+    <li>Interfaces to BLAS and LAPACK.</li>
+    <li>Interface to FFTW.</li>
+    <li>Numerical integration from QUADPACK and F2CL.</li>
+    <li>Special functions from SLATEC and F2CL.</li>
+    <li>Routines for linear algebra,
     postscript output, PGM output, 
-    Fast Fourier Transform (in Common Lisp), infix math, etc. 
- </ul>
- </p>
- <p>
- 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. 
- </p>
-
- <h3>Documentation</h3>
- <p>
-   The manual is in 
-   <a href="http://common-lisp.net/project/lisplab/manual/index.html">
-     html</a>
-   and in 
-   <a href="http://common-lisp.net/project/lisplab/manual/lisplab.pdf">
-     pdf</a>.
-   There is also
-   <a href="http://common-lisp.net/project/lisplab/tinaa/index.html">
-     module documentation</a>, made with
-   <a href="http://common-lisp.net/project/tinaa/">Tinaa</a>.
- </p>
-
- <h3>Mailing Lists</h3>
- <p>
- <ul>
-  <li>
-   <a
-    href="http://www.common-lisp.net/mailman/listinfo/lisplab-devel">
-    lisplab-devel</a><br/>for developers</li>
-  <li>
-   <a
-    href="http://www.common-lisp.net/mailman/listinfo/lisplab-cvs">
-    lisplab-cvs</a><br/>CVS log feed.</li>
-  <li>
-   <a
-    href="http://www.common-lisp.net/mailman/listinfo/lisplab-announce">
-    lisplab-announce</a><br/>for announcements.</li>
-
- </ul>
- </p>
-
- <h3>Download</h3>
- <p>
- This project has no stable releases. For latest unstable 
- code please checkout from Subversion.
- </p>
-
- <h3>Subversion</h3>
- <p>
- You can get the latest version of the source code from subversion 
- <pre>
-   svn checkout svn://common-lisp.net/project/lisplab/svn lisplab</pre>
- or browse it
- <a href="http://common-lisp.net/websvn/listing.php?repname=lisplab&path=%2F&sc=0">
-   here</a>.
- </p>
- <br>
-   <hr>
- <div class="footer">
-  <a href="mailto:jivestgarden at gmail.com">Jørn Inge Vestgården</a>, 28. Feb. 2008.
- </div>
- <div class="check">
-  <a href="http://validator.w3.org/check/referer">Valid XHTML 1.0 Strict</a>
- </div>
+    Fast Fourier Transform (native Common Lisp), infix math, etc.</li>
+  </ul>
+  </p>
+  <p>
+    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. 
+  </p>
+
+  <h3>Installing</h3>
+  <p>
+    Lisplab is installed by <a href="http://common-lisp.net/project/asdf/">asdf</a>.
+    The external libraries, BLAS, LAPACK, and FFTW must be installed separately. 
+    They make Lisplab more powerful, but it also makes sense to run it 
+    without external libraries. 
+    Lisplab does not depend on any other Common Lisp projects, but will only 
+    compile out-of-the-box for <a href="http://www.sbcl.org/">SBCL</a> and 
+    for other Lisps you must expect some hacking. 
+  </p>
+  <p>
+    See 
+    <a href="http://common-lisp.net/project/lisplab/manual/index.html">
+      manual</a> for details. 
+  </p>
+
+  <h3>Getting started</h3>
+  On SBCL, make sure that  <verb>asdf:*central-registry*</verb> 
+  contains <verb>lisplab.asd</verb>. Then you install it by
+  <pre>   > (require :lisplab)</pre> and use it by
+  <pre>   > (use-package :ll-user)</pre>
+  When started, you can do
+  <pre>  LL-USER> (.^ (dmat (1 2) (3 4)) 2)
+  #<MATRIX-DGE  2x2
+    1.0 4.0 
+    9.0 16.0 
+  {B7E3E71}></pre>Common operations are
+  <pre>  .+ .- .* ./ .^ 
+  .expt .sqrt .log
+  .sin .cos .tan .asin .acos .atan
+  .sinh .cosh .tanh .asinh .acosh .atanh
+  .besj .besy .besi .besk .besh 
+  .gamma .erf .erfc
+  mref vref 
+  size dim rows cols rank
+  mmap
+  make-matrix-instance
+  dnew dmat dcol drow
+  znew zmat zcol zrow
+  mnew mmat mcol mrow
+  mmax mmin circ-shift pad-shift
+  m* m/ minv mtp mct 
+  eivenvalues eigenvectors 
+  dlmread dlmwrite pswrite pgmwrite
+  export-list import-list
+  fftw1 ifftw1 
+  fftw2 ifftw2 
+  fft-shift ifft-shift
+  rk4 euler
+  w/infix</pre>
+
+  <h3>Performance</h3>
+  <p>
+    Performance should be quite good (at least on SBCL) since Lisplab's main 
+    usage has been to solve partial differential equations in physics.   
+  </p>
+  <p>
+    The graph below compares matrix inversion scalability between
+    the Lapack FFI, and two native implementations: one typed and one untyped. 
+    All graphs scale as O(n<sup>3</sup>), 
+    but we see that the untyped version is hopelessly slow, while the typed 
+    version is a factor 10 slower than Lapack, which is rather good, and means 
+    that it is usable for high performance computing. 
+  </p>
+  <img width="500" src="compare-matrix-inversion.jpg "/></img> 
+
+  <hr></hr>
+  <h3>Documentation</h3>
+  <p>
+    The manual is in 
+    <a href="http://common-lisp.net/project/lisplab/manual/index.html">
+      html</a>
+    and in 
+    <a href="http://common-lisp.net/project/lisplab/manual/lisplab.pdf">
+      pdf</a>.
+  </p>
+  <p>
+    <a href="http://common-lisp.net/project/lisplab/tinaa/index.html">
+      Module documentation</a> is generated with
+    <a href="http://common-lisp.net/project/tinaa/">Tinaa</a>.
+  </p>
+
+
+  <h3>Download</h3>
+  <p>
+    Tarballs are <a href="http://common-lisp.net/project/lisplab/download/">here</a>.
+  </p>
+  
+  <h3>Subversion</h3>
+  <p>
+    You can 
+    <a href="http://common-lisp.net/websvn/listing.php?repname=lisplab&path=%2F&sc=0">
+      browse the svn repository</a> or check out the latest development 
+    tree from anonymous svn,
+    <pre>
+  % svn checkout svn://common-lisp.net/project/lisplab/svn lisplab</pre>
+  </p>
+
+  <h3>Mailing Lists</h3>
+  <p>
+    <ul>
+      <li>
+	<a href="http://www.common-lisp.net/mailman/listinfo/lisplab-devel">
+	  lisplab-devel</a><br/>for developers</li>
+      <li>
+	<a href="http://www.common-lisp.net/mailman/listinfo/lisplab-cvs">
+	  lisplab-cvs</a><br/>CVS log feed.</li>
+      <li>
+	<a href="http://www.common-lisp.net/mailman/listinfo/lisplab-announce">
+	lisplab-announce</a><br/>for announcements.</li>
+    </ul>
+  </p>
+  
+  <hr></hr>
+  <h3>Links</h3>
+  Other mathematics resources for Common Lisp
+  <ul>
+   <li><a href="http://matlisp.sourceforge.net/">Matlisp</a></il>
+   <li><a href="http://www.femlisp.org/">Femlisp</a></il>
+   <li><a href="http://www.nlisp.info/">NLISP</a></il>
+  </ul>
+
+  <hr></hr>
+  <div class="footer">
+    <a href="mailto:jivestgarden at gmail.com">Jørn Inge Vestgården</a>, Sep. 2009.
+  </div>
+  <div class="check">
+    <a href="http://validator.w3.org/check/referer">Valid XHTML 1.0 Strict</a>
+  </div>
 </body>
 </html>




More information about the lisplab-cvs mailing list