Installation

Two main asdf systems are provided:

  • numericals which works with cl:array,
  • and dense-numericals which works with dense-arrays

Load either or both of them according to your needs.

Without quicklisp client: ocicl

Install ocicl as per the instructions here.

Once ocicl is installed, setup, and the runtime loaded into the lisp image, simply:

(asdf:load-system "numericals")
;;; OR
(asdf:load-system "dense-numericals")

Using quicklisp client

quicklisp is a defacto package manager for Common Lisp. All the below methods rely on the availability of the quicklisp client. The instructions to install it can be found here. Other useful resources to get started with quicklisp include:

Once the quicklisp client is installed, proceed with one of the below methods to install numericals or dense-numericals or both.

Through quicklisp dist alone

Simply quickload the required asdf system.

(ql:quickload "numericals")
;;; OR
(ql:quickload "dense-numericals")

Depending on when you are reading this, the quicklisp versions could be a bit older than what you might wish for. If you want to use recent feature updates or bug fixes, you might want to use ultralisp or download-dependencies.

Using ultralisp dist

If you are trying Ultralisp for the first time:

(ql-dist:install-dist "http://dist.ultralisp.org/"
                      :prompt nil)

If you have been using ultralisp, simply update its dist:

(ql:update-dist "ultralisp")

Once (ql:quickload "numericals") or (ql:quickload "dense-numericals") is successful; use inside your own package using :mix option of uiop:define-package, or package-local-nicknames.

Using download-dependencies

First clone the github repository of numericals to where quicklisp can find.

cd /path/to/quicklisp/local-projects/ # This is usually $HOME/quicklisp/local-projects
git clone https://github.com/digikar99/numericals

download-dependencies is a simple tool to download the dependencies of any given project. In order to use it, clone also the download-dependencies asdf system into your quicklisp local projects.

git clone https://github.com/digikar99/download-dependencies

Then create the directory where you want to download the dependencies for numericals or dense-numericals.

mkdir -p /path/to/dependencies

Finally, quickload and download the dependencies:

(ql:quickload "download-dependencies")
(let ((download-dependencies:*dependencies-home* #P"/path/to/dependencies/"))
  (download-dependencies:ensure-system "numericals"))

Finally, you will need to instruct the quicklisp client to look into this path. After that, you can simply use quickload:

(push #P"/path/to/dependencies" ql:*local-project-directories*)
(ql:quickload "numericals")
;;; OR
(ql:quickload "dense-numericals")

Using clpm

TODO

Using ros

TODO

  • Needs a way to install packages outside github.