Commit 155af5c9 authored by Liam Healy's avatar Liam Healy

Documenation updates, fix for iteration defclause package

parent 2b6faf80
;; Find the Jacobian matrix of a multivariate function
;; Liam Healy 2011-10-15 12:40:05EDT jacobian.lisp
;; Time-stamp: <2013-12-25 19:09:57EST jacobian.lisp>
;; Time-stamp: <2015-11-21 15:06:38EST jacobian.lisp>
;; Copyright 2011, 2013 Liam M. Healy
;; Copyright 2011, 2013, 2015 Liam M. Healy
;; Distributed under the terms of the GNU General Public License
;;
;; This program is free software: you can redistribute it and/or modify
......@@ -21,25 +21,29 @@
;;; This does not use GSLL's central-difference, because that is scalar only and it would be inefficient to repeatedly re-evaluate the function to get the various components.
(in-package :antik)
(export 'jacobian-matrix)
(defun jacobian-matrix
(function point step
&optional (matrix-or-nrows (grid:dim0 (funcall function point))))
"The matrix of partial derivatives of the function. If the number
of rows nrows is not supplied, it is determined by evaluating the
function at the point; supplying this information avoids that
calculation. Step must be a scalar."
"The matrix of partial derivatives of the function. If the number of rows nrows is not supplied, it is determined by evaluating the function at the point; supplying this information avoids that calculation. Step must be a scalar."
;; This cannot currently use pq.
(let ((matrix (if (grid:gridp matrix-or-nrows)
matrix-or-nrows
(grid:make-simple-grid
:dimensions (list (grid:dim0 point) matrix-or-nrows)
:grid-type (grid:gridp point)))))
(iter (for col from 0 below (grid:dim1 matrix))
(let ((pos (grid:copy point :grid-type *default-grid-type*))
(neg (grid:copy point :grid-type *default-grid-type*)))
(iter (iter:for col from 0 below (grid:dim1 matrix))
(let ((pos (grid:copy point :grid-type grid:*default-grid-type*))
(neg (grid:copy point :grid-type grid:*default-grid-type*)))
(incf (grid:aref pos col) (/ step 2))
(decf (grid:aref neg col) (/ step 2))
(iter:for column = (/ (- (funcall function pos) (funcall function neg)) step))
(unless matrix
(setf matrix
(grid:make-simple-grid
:dimensions (list (grid:dim0 point) (grid:dim0 column))
:grid-type (grid:gridp point))))
(setf (grid:column matrix col)
(/ (- (funcall function pos) (funcall function neg)) step))))
)))
matrix))
# Sphinx build info version 1
# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
config: 0583f5cb403f591c8a4eb836577b4484
config: bc74e20fb1c456a2641a76bf1dd5b6ee
tags: 645f666f9bcd5a90fca523b33c5a78b7
Conditions
==========
Conditions helpful for arithmetic calculations are provided. Complex number are sometimes undesirable; ``making-complex-number`` is a condition that will be signalled when a computation will produce a complex number. The macro ``handling-complex-number`` allows various restarts which can be selected, depending on the desired action. For example::
(handling-complex-number return-zero
(/ (sin x)
(* pi (sqrt (+ (expt (cos y) 2)
(expt (* (cos z) (sin y)) 2)
(- (expt (cos x) 2)))))))
will return zero if from the body form if any calculation inside returns a complex number.
.. cl:package:: antik
.. FAIL cl:condition:: coerce-undefined
.. FAIL cl:condition:: coerce-nil
.. FAIL cl:condition:: making-complex-number
.. cl:macro:: handling-complex-number
.. cl:macro:: arithmetic-errors-return-nan
Elementary Mathematical Functions
====================
=================================
Generic mathematical functions are provided so that they may be called on something other than numbers, such as grids. When called with CL numbers, they call the equivalent CL function.
.. cl:package:: antik
.. cl:function:: abs
.. cl:function:: acos
.. cl:function:: asin
.. cl:function:: atan
.. cl:function:: cosh
.. cl:function:: cos
.. cl:function:: exp
.. cl:function:: expt
.. cl:function:: floor
.. cl:function:: round
.. cl:function:: signum
.. cl:function:: sinh
.. cl:function:: sin
.. cl:function:: sqrt
.. cl:function:: tanh
.. cl:function:: tan
.. cl:function:: =
.. cl:function:: >=
.. cl:function:: >
......@@ -32,5 +23,3 @@ Generic mathematical functions are provided so that they may be called on someth
.. cl:function:: -
.. cl:function:: *
.. cl:function:: /
......@@ -3,7 +3,7 @@ Introduction to Antik
Antik provides a foundation for scientific and engineering computation in Common Lisp. It is designed not only to facilitate numerical computations, but to permit the use of numerical computation libraries and the interchange of data and procedures, whether foreign (non-Lisp) or Lisp libraries. Notably, GSLL_ provides an interface to the GNU Scientific Library (GSL_) and is based on Antik.
Antik is designed and developed to provide a common foundation and interoperability between scientific, engineering and mathematical libraries, whether in Lisp or not. Interoperability means that objects created can easily be passed to one or more libraries, and libraries can be mixed and combined to solve a problem. It also means that names of like functions will be the same, differening only in the package. For example, if systems ``foo`` and ``bar`` both provide an LU decomposition, that function will be ``foo:lu-decomposition`` in one and ``bar:lu-decomposition`` in the other. Should a user wish to compare or switch libraries in such a function call, it is a simple matter of changing the package. If a whole library should be switched, the names can be used without a package prefix and the use-package form changed. This makes it easy to compare results, and select and mix the best libraries for a calculation.
Antik is designed and developed to provide a common foundation and interoperability between scientific, engineering and mathematical libraries, whether in Lisp or not. Interoperability means that objects created can easily be passed to one or more libraries, and libraries can be mixed and combined to solve a problem. It also means that names of like functions will be the same, differing only in the package. For example, if systems ``foo`` and ``bar`` both provide an LU decomposition, that function will be ``foo:lu-decomposition`` in one and ``bar:lu-decomposition`` in the other. Should a user wish to compare or switch libraries in such a function call, it is a simple matter of changing the package. If a whole library should be switched, the names can be used without a package prefix and the use-package form changed. This makes it easy to compare results, and select and mix the best libraries for a calculation.
.. _GSLL: http://common-lisp.net/project/gsll/
.. _GSL: http://www.gnu.org/software/gsl/
Linear Agebra
=============
At present, these call the LU methods in GSLL. Someday, they will take arguments to allow other methods and libraries. To find the inverse and determinant of a matrix, use ``invert-matrix`` with a two-dimensional ``foreign-array``::
> (invert-matrix
(grid:make-foreign-array
'double-float :initial-contents '((1.0d0 2.0d0) (3.0d0 4.0d0))))
#m((-2.000000000000000d0 1.000000000000000d0)
(1.500000000000000d0 -0.500000000000000d0))
-2.0
.. cl:package:: antik
.. cl:function:: invert-matrix
.. cl:function:: determinant
.. cl:function:: solve-linear
Mathematics
=================================
Contents:
.. toctree::
:maxdepth: 2
elemmath
trigonometry
optimize
linalg
statistics
Optimization
============
.. cl:package:: antik
.. cl:function:: root-1d
.. cl:function:: minimize-1d
.. cl:function:: maximize-1d
.. cl:function:: linear-least-squares-1d
......@@ -14,8 +14,9 @@ Contents:
intro
starting
packages
elemmath
mathematics
utility
conditions
Indices and tables
==================
......
Statistics
==========
Given a function ``#'make-orbit`` which takes several keyword arguments ``:semimajor-axis``, ``:eccentricity`` and ``:inclination``, the is example of ``low-discrepancy-sample`` will make five orbits with values in the specified ranges::
(low-discrepancy-sample
5
'make-orbit
'(:semimajor-axis #_7000_km #_9000_km)
'(:eccentricity 0.0)
'(:inclination #_95_deg #_105_deg))
.. cl:package:: antik
.. cl:function:: low-discrepancy-sample
.. cl:function:: apply-to-arguments
.. cl:function:: list-no-key
Trigonometry
============
.. cl:package:: antik
.. cl:function:: acos
.. cl:function:: asin
.. cl:function:: atan
.. cl:function:: cosh
.. cl:function:: cos
.. cl:function:: sinh
.. cl:function:: sin
.. cl:function:: tanh
.. cl:function:: tan
.. cl:function:: angle-law-of-cosines
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Conditions &mdash; Antik 0 documentation</title>
<link rel="stylesheet" href="_static/classic.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: './',
VERSION: '0',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true
};
</script>
<script type="text/javascript" src="_static/jquery.js"></script>
<script type="text/javascript" src="_static/underscore.js"></script>
<script type="text/javascript" src="_static/doctools.js"></script>
<script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
<link rel="top" title="Antik 0 documentation" href="root.html" />
<link rel="prev" title="Utility" href="utility.html" />
</head>
<body role="document">
<div class="related" role="navigation" aria-label="related navigation">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="genindex.html" title="General Index"
accesskey="I">index</a></li>
<li class="right" >
<a href="utility.html" title="Utility"
accesskey="P">previous</a> |</li>
<li class="nav-item nav-item-0"><a href="root.html">Antik 0 documentation</a> &raquo;</li>
</ul>
</div>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<div class="section" id="conditions">
<h1>Conditions<a class="headerlink" href="#conditions" title="Permalink to this headline"></a></h1>
<p>Conditions helpful for arithmetic calculations are provided. Complex number are sometimes undesirable; <code class="docutils literal"><span class="pre">making-complex-number</span></code> is a condition that will be signalled when a computation will produce a complex number. The macro <code class="docutils literal"><span class="pre">handling-complex-number</span></code> allows various restarts which can be selected, depending on the desired action. For example:</p>
<div class="highlight-python"><div class="highlight"><pre>(handling-complex-number return-zero
(/ (sin x)
(* pi (sqrt (+ (expt (cos y) 2)
(expt (* (cos z) (sin y)) 2)
(- (expt (cos x) 2)))))))
</pre></div>
</div>
<p>will return zero if from the body form if any calculation inside returns a complex number.</p>
<dl class="macro">
<dt id="macro:antik:handling-complex-number">
<em class="property">macro </em> (<code class="descname">handling-complex-number</code> <em>restart</em> <em>&amp;body</em> <em>body</em>)<a class="headerlink" href="#macro:antik:handling-complex-number" title="Permalink to this definition"></a></dt>
<dd><p>A handler to make the complex number.</p>
</dd></dl>
<dl class="macro">
<dt id="macro:antik:arithmetic-errors-return-nan">
<em class="property">macro </em> (<code class="descname">arithmetic-errors-return-nan</code> <em>&amp;body</em> <em>body</em>)<a class="headerlink" href="#macro:antik:arithmetic-errors-return-nan" title="Permalink to this definition"></a></dt>
<dd><p>Return a NaN for a variety of arithmetic errors.</p>
</dd></dl>
</div>
</div>
</div>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
<div class="sphinxsidebarwrapper">
<h4>Previous topic</h4>
<p class="topless"><a href="utility.html"
title="previous chapter">Utility</a></p>
<div role="note" aria-label="source link">
<h3>This Page</h3>
<ul class="this-page-menu">
<li><a href="_sources/conditions.txt"
rel="nofollow">Show Source</a></li>
</ul>
</div>
<div id="searchbox" style="display: none" role="search">
<h3>Quick search</h3>
<form class="search" action="search.html" method="get">
<input type="text" name="q" />
<input type="submit" value="Go" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
<p class="searchtip" style="font-size: 90%">
Enter search terms or a module, class or function name.
</p>
</div>
<script type="text/javascript">$('#searchbox').show(0);</script>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="related" role="navigation" aria-label="related navigation">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="genindex.html" title="General Index"
>index</a></li>
<li class="right" >
<a href="utility.html" title="Utility"
>previous</a> |</li>
<li class="nav-item nav-item-0"><a href="root.html">Antik 0 documentation</a> &raquo;</li>
</ul>
</div>
<div class="footer" role="contentinfo">
&copy; Copyright 2015, Liam M. Healy.
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.3.1.
</div>
</body>
</html>
\ No newline at end of file
......@@ -25,8 +25,9 @@
<script type="text/javascript" src="_static/doctools.js"></script>
<script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
<link rel="top" title="Antik 0 documentation" href="root.html" />
<link rel="next" title="Utility" href="utility.html" />
<link rel="prev" title="Systems and Packages" href="packages.html" />
<link rel="up" title="Mathematics" href="mathematics.html" />
<link rel="next" title="Trigonometry" href="trigonometry.html" />
<link rel="prev" title="Mathematics" href="mathematics.html" />
</head>
<body role="document">
<div class="related" role="navigation" aria-label="related navigation">
......@@ -36,12 +37,13 @@
<a href="genindex.html" title="General Index"
accesskey="I">index</a></li>
<li class="right" >
<a href="utility.html" title="Utility"
<a href="trigonometry.html" title="Trigonometry"
accesskey="N">next</a> |</li>
<li class="right" >
<a href="packages.html" title="Systems and Packages"
<a href="mathematics.html" title="Mathematics"
accesskey="P">previous</a> |</li>
<li class="nav-item nav-item-0"><a href="root.html">Antik 0 documentation</a> &raquo;</li>
<li class="nav-item nav-item-0"><a href="root.html">Antik 0 documentation</a> &raquo;</li>
<li class="nav-item nav-item-1"><a href="mathematics.html" accesskey="U">Mathematics</a> &raquo;</li>
</ul>
</div>
......@@ -58,31 +60,6 @@
<em class="property">function </em> (<code class="descname">abs</code> <em>num</em>)<a class="headerlink" href="#function:antik:abs" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="function">
<dt id="function:antik:acos">
<em class="property">function </em> (<code class="descname">acos</code> <em>arg</em>)<a class="headerlink" href="#function:antik:acos" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="function">
<dt id="function:antik:asin">
<em class="property">function </em> (<code class="descname">asin</code> <em>arg</em>)<a class="headerlink" href="#function:antik:asin" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="function">
<dt id="function:antik:atan">
<em class="property">function </em> (<code class="descname">atan</code> <em>num</em> <em class="lambda_keyword text-muted">&amp;optional</em> <em>den</em> <em>default</em> <em>zero-enough</em>)<a class="headerlink" href="#function:antik:atan" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="function">
<dt id="function:antik:cosh">
<em class="property">function </em> (<code class="descname">cosh</code> <em>num</em>)<a class="headerlink" href="#function:antik:cosh" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="function">
<dt id="function:antik:cos">
<em class="property">function </em> (<code class="descname">cos</code> <em>num</em>)<a class="headerlink" href="#function:antik:cos" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="function">
<dt id="function:antik:exp">
<em class="property">function </em> (<code class="descname">exp</code> <em>num</em>)<a class="headerlink" href="#function:antik:exp" title="Permalink to this definition"></a></dt>
......@@ -108,32 +85,12 @@
<em class="property">function </em> (<code class="descname">signum</code> <em>a</em>)<a class="headerlink" href="#function:antik:signum" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="function">
<dt id="function:antik:sinh">
<em class="property">function </em> (<code class="descname">sinh</code> <em>num</em>)<a class="headerlink" href="#function:antik:sinh" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="function">
<dt id="function:antik:sin">
<em class="property">function </em> (<code class="descname">sin</code> <em>num</em>)<a class="headerlink" href="#function:antik:sin" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="function">
<dt id="function:antik:sqrt">
<em class="property">function </em> (<code class="descname">sqrt</code> <em>num</em>)<a class="headerlink" href="#function:antik:sqrt" title="Permalink to this definition"></a></dt>
<dd><p>The square root <span class="math">\(\\sqrt{x}\)</span> of the generalized or regular number <span class="math">\(x\)</span>.</p>
<dd><p>The square root <span class="math">\(\sqrt{x}\)</span> of the generalized or regular number <span class="math">\(x\)</span>.</p>
</dd></dl>
<dl class="function">
<dt id="function:antik:tanh">
<em class="property">function </em> (<code class="descname">tanh</code> <em>num</em>)<a class="headerlink" href="#function:antik:tanh" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="function">
<dt id="function:antik:tan">
<em class="property">function </em> (<code class="descname">tan</code> <em>num</em>)<a class="headerlink" href="#function:antik:tan" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="function">
<dt id="function:antik:=">
<em class="property">function </em> (<code class="descname">=</code> <em class="lambda_keyword text-muted">&amp;rest</em> <em>args</em>)<a class="headerlink" href="#function:antik:=" title="Permalink to this definition"></a></dt>
......@@ -207,11 +164,11 @@
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
<div class="sphinxsidebarwrapper">
<h4>Previous topic</h4>
<p class="topless"><a href="packages.html"
title="previous chapter">Systems and Packages</a></p>
<p class="topless"><a href="mathematics.html"
title="previous chapter">Mathematics</a></p>
<h4>Next topic</h4>
<p class="topless"><a href="utility.html"
title="next chapter">Utility</a></p>
<p class="topless"><a href="trigonometry.html"
title="next chapter">Trigonometry</a></p>
<div role="note" aria-label="source link">
<h3>This Page</h3>
<ul class="this-page-menu">
......@@ -243,12 +200,13 @@
<a href="genindex.html" title="General Index"
>index</a></li>
<li class="right" >
<a href="utility.html" title="Utility"
<a href="trigonometry.html" title="Trigonometry"
>next</a> |</li>
<li class="right" >
<a href="packages.html" title="Systems and Packages"
<a href="mathematics.html" title="Mathematics"
>previous</a> |</li>
<li class="nav-item nav-item-0"><a href="root.html">Antik 0 documentation</a> &raquo;</li>
<li class="nav-item nav-item-0"><a href="root.html">Antik 0 documentation</a> &raquo;</li>
<li class="nav-item nav-item-1"><a href="mathematics.html" >Mathematics</a> &raquo;</li>
</ul>
</div>
<div class="footer" role="contentinfo">
......
......@@ -50,8 +50,12 @@
<a href="#Symbols"><strong>Symbols</strong></a>
| <a href="#A"><strong>A</strong></a>
| <a href="#C"><strong>C</strong></a>
| <a href="#D"><strong>D</strong></a>
| <a href="#E"><strong>E</strong></a>
| <a href="#F"><strong>F</strong></a>
| <a href="#H"><strong>H</strong></a>
| <a href="#I"><strong>I</strong></a>
| <a href="#L"><strong>L</strong></a>
| <a href="#M"><strong>M</strong></a>
| <a href="#P"><strong>P</strong></a>
| <a href="#R"><strong>R</strong></a>
......@@ -112,21 +116,33 @@
</dt>
<dt><a href="elemmath.html#function:antik:acos">acos (Lisp function)</a>
<dt><a href="trigonometry.html#function:antik:acos">acos (Lisp function)</a>
</dt>
<dt><a href="utility.html#function:antik:all-same">all-same (Lisp function)</a>
</dt>
<dt><a href="trigonometry.html#function:antik:angle-law-of-cosines">angle-law-of-cosines (Lisp function)</a>
</dt>
</dl></td>
<td style="width: 33%" valign="top"><dl>
<dt><a href="elemmath.html#function:antik:asin">asin (Lisp function)</a>
<dt><a href="statistics.html#function:antik:apply-to-arguments">apply-to-arguments (Lisp function)</a>
</dt>
<dt><a href="conditions.html#macro:antik:arithmetic-errors-return-nan">arithmetic-errors-return-nan (Lisp macro)</a>
</dt>
<dt><a href="trigonometry.html#function:antik:asin">asin (Lisp function)</a>
</dt>
<dt><a href="elemmath.html#function:antik:atan">atan (Lisp function)</a>
<dt><a href="trigonometry.html#function:antik:atan">atan (Lisp function)</a>
</dt>
</dl></td>
......@@ -136,13 +152,23 @@
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%" valign="top"><dl>
<dt><a href="elemmath.html#function:antik:cos">cos (Lisp function)</a>
<dt><a href="trigonometry.html#function:antik:cos">cos (Lisp function)</a>
</dt>
</dl></td>
<td style="width: 33%" valign="top"><dl>
<dt><a href="trigonometry.html#function:antik:cosh">cosh (Lisp function)</a>
</dt>
</dl></td>
</tr></table>
<h2 id="D">D</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%" valign="top"><dl>
<dt><a href="elemmath.html#function:antik:cosh">cosh (Lisp function)</a>
<dt><a href="linalg.html#function:antik:determinant">determinant (Lisp function)</a>
</dt>
</dl></td>
......@@ -174,6 +200,46 @@
</dl></td>
</tr></table>
<h2 id="H">H</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%" valign="top"><dl>
<dt><a href="conditions.html#macro:antik:handling-complex-number">handling-complex-number (Lisp macro)</a>
</dt>
</dl></td>
</tr></table>
<h2 id="I">I</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%" valign="top"><dl>
<dt><a href="linalg.html#function:antik:invert-matrix">invert-matrix (Lisp function)</a>
</dt>
</dl></td>
</tr></table>
<h2 id="L">L</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%" valign="top"><dl>
<dt><a href="optimize.html#function:antik:linear-least-squares-1d">linear-least-squares-1d (Lisp function)</a>
</dt>
<dt><a href="statistics.html#function:antik:list-no-key">list-no-key (Lisp function)</a>
</dt>
</dl></td>
<td style="width: 33%" valign="top"><dl>
<dt><a href="statistics.html#function:antik:low-discrepancy-sample">low-discrepancy-sample (Lisp function)</a>
</dt>
</dl></td>
</tr></table>
<h2 id="M">M</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%" valign="top"><dl>
......@@ -181,9 +247,17 @@
<dt><a href="packages.html#function:antik:make-user-package">make-user-package (Lisp function)</a>
</dt>
<dt><a href="optimize.html#function:antik:maximize-1d">maximize-1d (Lisp function)</a>
</dt>
</dl></td>
<td style="width: 33%" valign="top"><dl>
<dt><a href="optimize.html#function:antik:minimize-1d">minimize-1d (Lisp function)</a>
</dt>
<dt><a href="elemmath.html#function:antik:minusp">minusp (Lisp function)</a>
</dt>
......@@ -204,6 +278,12 @@
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%" valign="top"><dl>
<dt><a href="optimize.html#function:antik:root-1d">root-1d (Lisp function)</a>
</dt>
</dl></td>
<td style="width: 33%" valign="top"><dl>
<dt><a href="elemmath.html#function:antik:round">round (Lisp function)</a>
</dt>
......@@ -226,13 +306,17 @@
</dt>
<dt><a href="elemmath.html#function:antik:sin">sin (Lisp function)</a>
<dt><a href="trigonometry.html#function:antik:sin">sin (Lisp function)</a>
</dt>
</dl></td>
<td style="width: 33%" valign="top"><dl>
<dt><a href="elemmath.html#function:antik:sinh">sinh (Lisp function)</a>
<dt><a href="trigonometry.html#function:antik:sinh">sinh (Lisp function)</a>
</dt>
<dt><a href="linalg.html#function:antik:solve-linear">solve-linear (Lisp function)</a>
</dt>
......@@ -250,13 +334,13 @@
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%" valign="top"><dl>
<dt><a href="elemmath.html#function:antik:tan">tan (Lisp function)</a>
<dt><a href="trigonometry.html#function:antik:tan">tan (Lisp function)</a>
</dt>
</dl></td>
<td style="width: 33%" valign="top"><dl>
<dt><a href="elemmath.html#function:antik:tanh">tanh (Lisp function)</a>
<dt><a href="trigonometry.html#function:antik:tanh">tanh (Lisp function)</a>
</dt>
</dl></td>
......
......@@ -53,7 +53,7 @@
<div class="section" id="introduction-to-antik">
<h1>Introduction to Antik<a class="headerlink" href="#introduction-to-antik" title="Permalink to this headline"></a></h1>
<p>Antik provides a foundation for scientific and engineering computation in Common Lisp. It is designed not only to facilitate numerical computations, but to permit the use of numerical computation libraries and the interchange of data and procedures, whether foreign (non-Lisp) or Lisp libraries. Notably, <a class="reference external" href="http://common-lisp.net/project/gsll/">GSLL</a> provides an interface to the GNU Scientific Library (<a class="reference external" href="http://www.gnu.org/software/gsl/">GSL</a>) and is based on Antik.</p>
<p>Antik is designed and developed to provide a common foundation and interoperability between scientific, engineering and mathematical libraries, whether in Lisp or not. Interoperability means that objects created can easily be passed to one or more libraries, and libraries can be mixed and combined to solve a problem. It also means that names of like functions will be the same, differening only in the package. For example, if systems <code class="docutils literal"><span class="pre">foo</span></code> and <code class="docutils literal"><span class="pre">bar</span></code> both provide an LU decomposition, that function will be <code class="docutils literal"><span class="pre">foo:lu-decomposition</span></code> in one and <code class="docutils literal"><span class="pre">bar:lu-decomposition</span></code> in the other. Should a user wish to compare or switch libraries in such a function call, it is a simple matter of changing the package. If a whole library should be switched, the names can be used without a package prefix and the use-package form changed. This makes it easy to compare results, and select and mix the best libraries for a calculation.</p>
<p>Antik is designed and developed to provide a common foundation and interoperability between scientific, engineering and mathematical libraries, whether in Lisp or not. Interoperability means that objects created can easily be passed to one or more libraries, and libraries can be mixed and combined to solve a problem. It also means that names of like functions will be the same, differing only in the package. For example, if systems <code class="docutils literal"><span class="pre">foo</span></code> and <code class="docutils literal"><span class="pre">bar</span></code> both provide an LU decomposition, that function will be <code class="docutils literal"><span class="pre">foo:lu-decomposition</span></code> in one and <code class="docutils literal"><span class="pre">bar:lu-decomposition</span></code> in the other. Should a user wish to compare or switch libraries in such a function call, it is a simple matter of changing the package. If a whole library should be switched, the names can be used without a package prefix and the use-package form changed. This makes it easy to compare results, and select and mix the best libraries for a calculation.</p>
</div>
......
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Linear Agebra &mdash; Antik 0 documentation</title>
<link rel="stylesheet" href="_static/classic.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: './',
VERSION: '0',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true
};
</script>
<script type="text/javascript" src="_static/jquery.js"></script>
<script type="text/javascript" src="_static/underscore.js"></script>
<script type="text/javascript" src="_static/doctools.js"></script>
<script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
<link rel="top" title="Antik 0 documentation" href="root.html" />
<link rel="up" title="Mathematics" href="mathematics.html" />
<link rel="next" title="Statistics" href="statistics.html" />
<link rel="prev" title="Optimization" href="optimize.html" />
</head>
<body role="document">
<div class="related" role="navigation" aria-label="related navigation">