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.


Unit arithmetic:

ANTIK-USER> (+ #_23_meters #_20_feet)
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)
ANTIK-USER> (norm #m(3.0 4.0))

Lisp arrays:

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

Download and Install


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

(ql:quickload "antik")


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. 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.