Installation

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

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.

Using quicklisp

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 download-dependencies or ultralisp.

The latest from github and 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 ultralisp

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 clpm

TODO

Using ros

TODO