array-operations
Provides commonly used operations on arrays.

Operations provided include elementwise +, -, * and /, the same operations involving an array and a scalar, minimum, maximum and range (the last one is faster then the two of them called separately), and also general functions to implement other, similar functions, including array-reduce, array-map, etc.

It also has a macro for `vectorizing' operations:

(let ((a #(1d0 2d0 3d0)) (b #(4d0 5d0 6d0)) (c 0.25d0)) (vectorize (a b) (+ a b c 0.25))) ; => #(5.5d0 7.5d0 9.5d0)

Formerly, many functions in this package were part of FFA, but were split to eliminate the dependency on CFFI. With the fix in SBCL, we no longer need to make a special effort to make arrays "foreign friendly".

Homepage: GitHub (original), GitHub (an actively maintained fork)

License: MIT (as stated in asdf:defsystem; the license text in LICENSE file is boilerplate from another project)

As of 2018-03-10, Quicklisp offers original version, not the fork. This might change in the coming months. See article Multidimensional arrays in The Common Lisp Cookbook for some differences between the fork and the original.


data structure