(chibi math linalg)

`(array-concatenate axis a . o)`

Returns a new specialized array which is the concatenatation of 1 or more arrays along the `axis` dimension. All arrays must have the same dimension, and all domains must have the same width for each dimension except `axis`.Shorthand for array-permute, swapping two dimensions.

`(array= a . arrays)`

Returns true iff all arrays have the same domain, and all elements in the same indexes are `=`.

`(identity-array n . o)`

Returns the 2-d identity matrix of size `n`.Performs Gaussian elimination and returns the factor to apply to the determinant.

`(array-inverse a)`

Returns the inverse of 2-d array `a`, or `#f` if `a` is not invertible.Computes the determinant of 2-d array `a`, mutating `a` in the process.

`(determinant a)`

Computes the determinant of 2-d array `a`.Returns a new array representing the matrix multiplication of 2-d arrays `a` and `b`.

`(pretty-print-array a . opt)`

Nicely formatted printing for arrays of any rank. Ranks higher than 2 are represented as successive 2D drawings. Can generate box drawings with left:, right:, etc. keywords specifying the strings to use. For example, Jacal-style matrix output can be done with: (pretty-print-array a #t 'left: "[" 'right: "]") and a tic-tac-toe board can be printed with (pretty-print-array a #t 'line-char: "|" 'top: "-" 'middle-col: "|" center-row: "-")