Array-operations provides commonly used operations on arrays.

These 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".

The link to the git repository is available from Github.

data structure