A statistical computing environment for Common Lisp
Table of Contents
About the Project
Lisp-Stat provides support for vectorized mathematical operations, and a comprehensive set of statistical methods that are implemented using the latest numerical algorithms. In addition, Common Lisp provides a dynamic programming environment (REPL), an excellent object-oriented facility (CLOS) and meta-object protocol (MOP).
To get a local copy up and running follow these steps:
Note: CCL is in poor condition these days, and we no can longer support it due to some serious problem with numerical accuracy. See issue 390 for just one of the problems. A shame, because it's a great environment to work in.
Lisp-Stat is composed of several systems that are designed to be independently useful. So you can, for example, use select to obtain selections from two dimensional arrays without bringing in all of Lisp-Stat.
Getting the source
To make the system accessible to ASDF (a build facility, similar to
make in the C world), clone the repository in a directory ASDF knows about. By default the
common-lisp directory in your home directory is known. Create this if it doesn't already exist and then:
- Clone the repositories
cd ~/common-lisp && \ git clone https://github.com/Lisp-Stat/data-frame.git && \ git clone https://github.com/Lisp-Stat/dfio.git && \ git clone https://github.com/Lisp-Stat/special-functions.git && \ git clone https://github.com/Lisp-Stat/numerical-utilities.git && \ git clone https://github.com/Lisp-Stat/array-operations.git && \ git clone https://github.com/Lisp-Stat/documentation.git && \ git clone https://github.com/Lisp-Stat/distributions.git && \ git clone https://github.com/Lisp-Stat/plot.git && \ git clone https://github.com/Lisp-Stat/select.git && \ git clone https://github.com/Lisp-Stat/cephes.cl.git && \ git clone https://github.com/Symbolics/alexandria-plus && \ git clone https://github.com/Lisp-Stat/statistics.git && \ git clone https://github.com/Lisp-Stat/lisp-stat.git
- Reset the ASDF source-registry to find the new system (from the REPL)
- Load the system
If you have installed the slime ASDF extensions, you can invoke this with a comma (',') from the slime REPL.
(clpm-client:sync :sources "clpi") ;sources may vary
You need do this only once. After obtaining the dependencies, you can
load the system with
ASDF as described above without first syncing
To run the
lisp-stat tests, evaluate this form:
Create a data frame from a file named
sg-weather.csv on the local disk:
(defparameter *df* (read-csv #P"LS:DATA;sg-weather.csv"))
For more examples, please refer to the Documentation.
See the open issues for a list of proposed features (and known issues).
Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated. Please see CONTRIBUTING for details on the code of conduct, and the process for submitting pull requests.
Distributed under the MS-PL License. See LICENSE for more information.
Project Link: https://github.com/lisp-stat/lisp-stat