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. It is named after the Antikythera mechanism, one of the oldest examples of a scientific computer known.
Antik provides the following:
- Organization of computation
- Grids (generalized arrays)
- Physical quantities
- Numerical output format
- Mathematical utility
- Three dimensional space
- Higher mathematics
Since it is intended to provide a foundation, Antik generally avoids more specialized definitions, with the intent that separate libraries using Antik, like GSLL will make those definitions. Where it is appropriate, convenient grouping of definitions made in other libraries are provided in higher mathematics.
ANTIK-USER> (+ #_23_meters #_20_feet) #_29.096000000000000d0_m ANTIK-USER> (+ #d2011-07-30T12:00 #_4_days) 2011-08-03 12:00:00.000
ANTIK-USER> (setf *default-grid-type* 'foreign-array) FOREIGN-ARRAY ANTIK-USER> (norm #m(3.0 4.0)) 5.0
ANTIK-USER> (norm #(3.0 4.0)) 5.0
Antik should work in any Common Lisp implementation and platform combination for which the following are supported:
- CFFI, version 0.11.0 or later
- asdf-system-connnections, (Optional), required for optional systems
- static-vectors (Optional), provides direct access to foreign arrays from Lisp on some implementations,
- lisp-unit, (Optional) necessary to run tests
Download and Install
Most users will get Antik using Quicklisp. Once Quicklisp is installed, install Antik with
Download is also available from the Git repository.
This software is distributed under the GPL ; see the file COPYING. There is absolutely no warranty.
A detailed manual is available and distributed with the software source code.
Antik is usable now. The topics listed above are fairly complete, but documentation may be lacking. Added definitions for these topics and new topics may be forthcoming.
There is a mailing list for all aspects of this project, including bug reports. Please join the list to post. In addition, I am frequently on #lisp IRC channel as LiamH.
For bug reports, please use the mailing list. If you have patch(es) and use git, please commit your changes and do:
git format-patch origin
This will produce one or more files whose names start with a four-digit number; please attach them all to your email.