Trait-oriented linear algebra foundations for MoonBit, with checked APIs, backend wrappers, and mutable/immutable dense matrix and vector types.
Dependencies
moon add Luna-Flow/linear-algebra@0.5.1import {
"Luna-Flow/linear-algebra/immut",
"Luna-Flow/linear-algebra/mutable",
}///|
test "linear-algebra in a few lines" {
let a = @immut.Matrix::from_2d_array([[1, 1], [1, 0]])
inspect(a.pow(10).unwrap(), content="|89, 55|\n|55, 34|")
let m = @mutable.Matrix::from_2d_array([[4.0, 2.0], [2.0, 3.0]])
inspect(m.determinant().unwrap(), content="8")
inspect(m.inverse().unwrap(), content="|0.375, -0.25|\n|-0.25, 0.5|")
inspect(m.cholesky_decomposition().unwrap(), content="|2, 0|\n|1, 1.4142135623730951|")
}| Package | Purpose |
|---|---|
| immut | immutable Matrix, Vector and lazy MatrixFn; Bareiss determinants for integers, pivoted LU for floating point, and powers |
| mutable | in-place Matrix and Vector, row/column/transpose views; LU, inverse, rank, Cholesky, symmetric eigenvalues, power method, statistics |
| error | LinearAlgebraError and LinearAlgebraErrorKind for every checked API |
| arithmetic | scalar operation traits (Abs, ApproxEq, checked division, square root and comparison) and upstream re-exports |
| algebra | structure traits for whole vectors and matrices, from MatrixShape to MatMulMatrix (experimental) |
| backends/default | dense wrappers implementing the algebra traits over immut and mutable |
| container | storage-independent read/build/edit dictionaries and generic map, convert and transpose (experimental) |
| container/adapters | dictionaries for every vector and matrix type of this repository |
| internal, consistency | shared shape guards and cross-package agreement tests |
| perf, perf_runner, perf_support | benchmark subsystem (see bench/README.md) |
moon check --target all
./run_test.sh # default gate on all targets
LINEAR_ALGEBRA_TEST_BENCH=1 ./run_test.sh # also the benchmark packages
just bench # full benchmark reportInstall
Download zipTrait-oriented linear algebra foundations for MoonBit, with checked APIs, backend wrappers, and mutable/immutable dense matrix and vector types.
Dependencies