Version: 4.1.5.3
Semi-persistent Matrices
| (require (planet jaymccarthy/matrix:1:0)) |
This package defines matrices using semi-persistent vectors from the (planet jaymccarthy/spvector) package.
| (build-matrix rows cols cell-f) → matrix? |
| rows : exact-positive-integer? |
| cols : exact-positive-integer? |
| cell-f : (exact-nonnegative-integer? exact-nonnegative-integer? . -> . any/c) |
Constructs a matrix m such that (matrix-ref m ri ci) is (cell-f ri ci).
| (matrix? v) → boolean? |
| v : any/c |
Determines if v is a valid matrix.
| (matrix-rows m) → exact-positive-integer? |
| m : matrix? |
Returns how many rows m has.
| (matrix-cols m) → exact-positive-integer? |
| m : matrix? |
Returns how many cols m has.
| (matrix-valid-ref? m ri ci) → boolean? |
| m : matrix? |
| ri : exact-nonnegative-integer? |
| ci : exact-nonnegative-integer? |
Determines if (matrix-ref m ri ci) would error.
| (matrix-ref m ri ci) → any/c |
| m : matrix? |
| ri : exact-nonnegative-integer? |
| ci : exact-nonnegative-integer? |
Extracts the value of a cell in the matrix.
| (matrix-set m ri ci v) → matrix? |
| m : matrix? |
| ri : exact-nonnegative-integer? |
| ci : exact-nonnegative-integer? |
| v : any/c |
Semi-persistently modifies m.
| (matrix-set! m ri ci v) → void |
| m : matrix? |
| ri : exact-nonnegative-integer? |
| ci : exact-nonnegative-integer? |
| v : any/c |
Destructively modifies m.
| (matrix-fold m row-f cell-f acc) → any/c |
| m : matrix? |
| row-f : (exact-nonnegative-integer? any/c . -> . any/c) |
| cell-f : (exact-nonnegative-integer? exact-nonnegative-integer? any/c any/c . -> . any/c) |
| acc : any/c |
Like foldr but for matrices. row-f is called with the result of cell-f from the last column in the row. cell-f is called from left to right.
| (display-matrix m) → void |
| m : matrix? |