About

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:

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.

Examples

Unit arithmetic:

ANTIK-USER> (+ #_23_meters #_20_feet)
#_29.096000000000000d0_m
ANTIK-USER> (+ #d2011-07-30T12:00  #_4_days)
2011-08-03 12:00:00.000

Foreign arrays:

ANTIK-USER> (setf *default-grid-type* 'foreign-array)
FOREIGN-ARRAY
ANTIK-USER> (norm #m(3.0 4.0))
5.0

Lisp arrays:

ANTIK-USER> (norm #(3.0 4.0))
5.0

Download and Install

Download

Most users will get Antik using Quicklisp. Once Quicklisp is installed, install Antik with

(ql:quickload "antik")

License

This software is distributed under the GPL ; see the file COPYING. There is absolutely no warranty.

Documentation

A detailed manual is available and distributed with the software source code.

Status

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.

Contact

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. The development site for Antik has the git repository. If you have patch(es), 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.