| 1 | <!-- -*- mode: HTML; time-stamp-line-limit: -18; -*- --> |
|---|
| 2 | <?xml version="1.0" encoding="iso-8859-1"?> |
|---|
| 3 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> |
|---|
| 4 | <html xmlns="http://www.w3.org/1999/xhtml"> |
|---|
| 5 | <head> |
|---|
| 6 | <link rel="stylesheet" href="style.css" type="text/css"/> |
|---|
| 7 | <title>GSLL, the GNU Scientific Library for Lisp</title> |
|---|
| 8 | </head> |
|---|
| 9 | <body> |
|---|
| 10 | <div class="body"> |
|---|
| 11 | |
|---|
| 12 | <div class="header"> |
|---|
| 13 | <h1>GSLL</h1> |
|---|
| 14 | <h2>GNU Scientific Library for Lisp</h2> |
|---|
| 15 | </div> |
|---|
| 16 | |
|---|
| 17 | <h3>Introduction</h3> |
|---|
| 18 | <div class="content"> |
|---|
| 19 | <p>The GNU Scientific Library for Lisp (GSLL) allows you to use |
|---|
| 20 | the <a href="http://www.gnu.org/software/gsl/">GNU Scientific |
|---|
| 21 | Library (GSL)</a> from Common Lisp. This library provides a |
|---|
| 22 | full range of common mathematical operations useful to |
|---|
| 23 | scientific and engineering applications. The design of the GSLL |
|---|
| 24 | interface is such that access to most of the GSL library is |
|---|
| 25 | possible in a Lisp-natural way; the intent is that the user not |
|---|
| 26 | be hampered by the restrictions of the C language in which GSL |
|---|
| 27 | has been written. GSLL thus provides interactive use of GSL for |
|---|
| 28 | getting quick answers, even for someone not intending |
|---|
| 29 | to program in Lisp. |
|---|
| 30 | </p> |
|---|
| 31 | <p>Topics include: |
|---|
| 32 | roots of polynomials, special functions, vectors and matrices, |
|---|
| 33 | permutations, sorting, BLAS support, linear algebra, |
|---|
| 34 | eigensystems, fast Fourier transforms, |
|---|
| 35 | quadrature, random numbers, quasi-random sequences, |
|---|
| 36 | random distributions, statistics, histograms, N-tuples, |
|---|
| 37 | Monte Carlo integration, simulated annealing, differential |
|---|
| 38 | equations, interpolation, numerical differentiation, |
|---|
| 39 | Chebyshev approximation, series acceleration, |
|---|
| 40 | discrete Hankel transforms, root-finding, minimization |
|---|
| 41 | least-squares fitting, IEEE floating-point, |
|---|
| 42 | discrete wavelet transforms. See documentation on status of |
|---|
| 43 | some incomplete topics. |
|---|
| 44 | <p>This code should be considered alpha and is still under |
|---|
| 45 | development, but it is largely usable |
|---|
| 46 | now, with some GSL capability not yet available.</p> |
|---|
| 47 | <p>This software is distributed under the <a |
|---|
| 48 | href="http://www.cliki.net/LLGPL">LLGPL</a> |
|---|
| 49 | and <a href="http://www.gnu.org/copyleft/fdl.html">FDL</a>. |
|---|
| 50 | See COPYING. There is absolutely no warranty.</p> |
|---|
| 51 | </div> |
|---|
| 52 | |
|---|
| 53 | <h3>Examples</h3> |
|---|
| 54 | <div class="content"> |
|---|
| 55 | <p>The <a href="http://www.gnu.org/software/gsl/manual/html_node/Elliptic-Functions-_0028Jacobi_0029.html">Jacobian elliptic functions</a> <i>sn</i>, <i>cn</i>, and |
|---|
| 56 | <i>dn</i> are special functions (Chapter 7):</p> |
|---|
| 57 | <pre> |
|---|
| 58 | (jacobian-elliptic-functions 0.2d0 0.81d0) |
|---|
| 59 | 0.19762082367187703d0 |
|---|
| 60 | 0.9802785369736752d0 |
|---|
| 61 | 0.9840560289645665d0 |
|---|
| 62 | 1.828927267118668d-318 |
|---|
| 63 | 1.4821969375237396d-321 |
|---|
| 64 | 2.023692885365746d-320 |
|---|
| 65 | </pre> |
|---|
| 66 | <p>which returns the three function values in succession, along |
|---|
| 67 | with the estimated errors of each. The functions are defined |
|---|
| 68 | only if the second argument <i>m</i> is not greater than 1, |
|---|
| 69 | so an error is signalled if this parameter is out of range: </p> |
|---|
| 70 | <pre> |
|---|
| 71 | (jacobian-elliptic-functions 0.61802d0 1.5d0) |
|---|
| 72 | Input domain error |m| > 1.0 in elljac.c at line 46 |
|---|
| 73 | [Condition of type EDOM] |
|---|
| 74 | </pre> |
|---|
| 75 | </div> |
|---|
| 76 | |
|---|
| 77 | <h3>Requirements and Platforms</h3> |
|---|
| 78 | <div class="content"> |
|---|
| 79 | <p> GSLL should work in |
|---|
| 80 | any Common Lisp implementation and platform combination |
|---|
| 81 | that has <a href="http://common-lisp.net/project/cffi/">CFFI</a> |
|---|
| 82 | with callbacks and foreign-funcall support. You will need |
|---|
| 83 | </p> |
|---|
| 84 | <ul> |
|---|
| 85 | <li><a href="http://www.gnu.org/software/gsl/">GSL</a></li> |
|---|
| 86 | <li><a href="http://common-lisp.net/project/cffi/">CFFI</a> |
|---|
| 87 | (Note: you will need a version <i>newer</i> than the current version |
|---|
| 88 | 0.9.2. Use the darcs repository, a newer tarball, or Debian |
|---|
| 89 | testing/unstable.)</li> |
|---|
| 90 | <li><a href="http://www.cliki.net/asdf">ASDF</a> |
|---|
| 91 | </ul> |
|---|
| 92 | <p> |
|---|
| 93 | In <a href="http://www.debian.org">Debian</a> unstable or testing, |
|---|
| 94 | the following should work:</p> |
|---|
| 95 | <blockquote><pre>apt-get install <a |
|---|
| 96 | href="http://packages.debian.org/lenny/libgsl0ldbl">libgsl0ldbl</a> <a href="http://packages.debian.org/lenny/cl-cffi">cl-cffi</a></pre></blockquote> |
|---|
| 97 | (asdf is automatically installed with your CL implementation). |
|---|
| 98 | Once your CL implementation is running, do |
|---|
| 99 | <code>(asdf:operate 'asdf:compile-op :gsll)</code> |
|---|
| 100 | or, if using Debian with the |
|---|
| 101 | <a href="http://packages.debian.org/common-lisp-controller"> |
|---|
| 102 | common-lisp-controller</a>, install with |
|---|
| 103 | <code>clc-register-user-package</code> and then within Lisp |
|---|
| 104 | <code>(clc:clc-require :gsll)</code>. |
|---|
| 105 | <p>GSLL has been tested with <a |
|---|
| 106 | href="http://sbcl.sourceforge.net/">SBCL</a> and <a |
|---|
| 107 | href="http://clisp.cons.org/">CLISP</a> on Debian i386 and amd64.</p> |
|---|
| 108 | </div> |
|---|
| 109 | |
|---|
| 110 | <h3>Downloads</h3> |
|---|
| 111 | <div class="content"> |
|---|
| 112 | <p>You may browse or download as follows:</p> |
|---|
| 113 | <ul> |
|---|
| 114 | <li><a href="http://subversion.tigris.org/">Subversion</a>: |
|---|
| 115 | Repository at |
|---|
| 116 | svn://common-lisp.net/project/gsll/svn/trunk. For |
|---|
| 117 | example, |
|---|
| 118 | <pre> |
|---|
| 119 | svn list svn://common-lisp.net/project/gsll/svn/trunk |
|---|
| 120 | svn checkout svn://common-lisp.net/project/gsll/svn/trunk gsll |
|---|
| 121 | </pre> |
|---|
| 122 | <li>Web: |
|---|
| 123 | <a href="http://trac.common-lisp.net/gsll/browser/trunk">browse</a> |
|---|
| 124 | using Trac. |
|---|
| 125 | <li>Git: Thanks to Leonardo Varuzza, who is maintaining a |
|---|
| 126 | <a href="http://www.lambdatau.com/git/gsll.git">git mirror</a> |
|---|
| 127 | of the Subversion repository. |
|---|
| 128 | </ul> |
|---|
| 129 | <p>Due to frequent changes, no tarballs are yet available.</p> |
|---|
| 130 | </div> |
|---|
| 131 | |
|---|
| 132 | <h3>Additional information</h3> |
|---|
| 133 | <ul> |
|---|
| 134 | <li>A <a href="documentation.html">documentation</a> guide is |
|---|
| 135 | available. |
|---|
| 136 | <li>The <a href="development.html">development</a> process is described |
|---|
| 137 | separately for those interested, and a <a |
|---|
| 138 | href="http://trac.common-lisp.net/gsll">Trac page</a> is used to |
|---|
| 139 | track it and for bug reports (file a "New Ticket"). |
|---|
| 140 | <li>There is a <a |
|---|
| 141 | href="http://common-lisp.net/cgi-bin/mailman/listinfo/gsll-devel">mailing |
|---|
| 142 | list</a> for all aspects of this project. |
|---|
| 143 | </ul> |
|---|
| 144 | |
|---|
| 145 | <h3>Similar or related projects from others</h3> |
|---|
| 146 | <div class="content"> |
|---|
| 147 | A partial automatically-generated interface to GSL is provided in <a |
|---|
| 148 | href="http://common-lisp.net/project/cl-gsl/">cl-gsl</a>. |
|---|
| 149 | A Matlab-like array syntax and plotting is provided by |
|---|
| 150 | <a href="http://nlisp.info/">NLISP</a> which might work well with |
|---|
| 151 | GSLL. Other numerical mathematics software for Lisp may be found |
|---|
| 152 | <a href="http://www.cliki.net/Mathematics">on Clicki</a>. |
|---|
| 153 | </div> |
|---|
| 154 | |
|---|
| 155 | <div class="footer"> |
|---|
| 156 | <hr> |
|---|
| 157 | <address><a href="mailto:gsll-devel@common-lisp.net">Liam Healy</a></address> |
|---|
| 158 | <!-- Created: Feb 25 2005 --> |
|---|
| 159 | <!-- hhmts start --> |
|---|
| 160 | <small> |
|---|
| 161 | Time-stamp: <2008-03-27 23:08:11EDT index.html> |
|---|
| 162 | </small> |
|---|
| 163 | <!-- hhmts end --> |
|---|
| 164 | </div> |
|---|
| 165 | <script type="text/javascript"> |
|---|
| 166 | var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www."); |
|---|
| 167 | document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E")); |
|---|
| 168 | </script> |
|---|
| 169 | <script type="text/javascript"> |
|---|
| 170 | var pageTracker = _gat._getTracker("UA-3669275-1"); |
|---|
| 171 | pageTracker._initData(); |
|---|
| 172 | pageTracker._trackPageview(); |
|---|
| 173 | </script> |
|---|
| 174 | </body> |
|---|
| 175 | </html> |
|---|