Array operations library for Common Lisp
Table of Contents
About the Project
array-operations system is a collection of functions and
macros for manipulating Common Lisp arrays and performing numerical
calculations with them.
Array-operations is a 'generic' way of operating on array like data
aops functions have been implemented for
data-frame. For those that haven't, you can transform arrays to
data frames using the
df:matrix-df function, and a data-frame to an
df:as-array. This make it convenient to work with the
data sets using either system.
To get a local copy up and running follow these steps:
An ANSI Common Lisp implementation. Developed and tested with SBCL.
- Clone the repository
cd ~/quicklisp/local-projects && git clone https://github.com/Lisp-Stat/array-operations.git
- Reset the ASDF source-registry to find the new system (from the REPL)
- Load the system
Arrays can be created with numbers from a statistical distribution:
(rand '(2 2)) ; => #2A((0.62944734 0.2709539) (0.81158376 0.6700171))
in linear ranges:
(linspace 1 10 7) ; => #(1 5/2 4 11/2 7 17/2 10)
or generated using a function, optionally given index position
(generate #'identity '(2 3) :position) ; => #2A((0 1 2) (3 4 5))
For more examples, please refer to the manual.
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.md 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.
Expect spurious warnings from SBCL related to 'deleting unreachable code' when running the tests. The tests it's warning about do run and we haven't had the time to debug SBCL's warnings.
Project Link: https://github.com/lisp-stat/array-operations