rustebra 0.3.1

A hybrid no_std/alloc linear algebra crate for Rust, scaling from embedded targets to dynamic Krylov subspace solvers.
Documentation
# DEVELOPMENT BOARD


---

## 1.0.0 — EARLY DEVELOPMENT


To be defined once every group above is implemented and the public API has been reviewed as
a whole.

---

# IN PROGRESS


## v0.3.1

- [ ] Patches for sparse matrices

---

# PENDING


## v0.4.0 — Eigenvalue computation (power iteration methods)


- [ ] Power iteration — compute dominant eigenvalue/eigenvector iteratively.
- [ ] Inverse power iteration — compute smallest eigenvalue/eigenvector.

## v0.4.1 — Iterative linear solvers (symmetric systems)


- [ ] Lanczos iteration — reduce symmetric matrices to tridiagonal form.
- [ ] Conjugate Gradient (CG) — solve symmetric positive-definite systems without factorization.

## v0.4.2 — Iterative linear solvers (general systems)


- [ ] Arnoldi iteration — reduce general matrices to upper Hessenberg form.
- [ ] GMRES — solve general linear systems with Arnoldi-based orthogonalization.

## v0.5.0 — Numerical calculus


- [ ] Numerical differentiation (finite differences)
- [ ] Numerical integration (trapezoidal, Simpson's, Gaussian quadrature)
- [ ] Root finding (bisection, Newton-Raphson, secant)
- [ ] Interpolation (linear, polynomial, cubic spline)
- [ ] Basic optimization (gradient descent, line search)

## v0.6.0 — Dynamical systems


- [ ] ODE solvers (Euler, Runge-Kutta, adaptive step-size, implicit methods)
- [ ] Systems of coupled ODEs
- [ ] Canonical examples (logistic map, Lorenz system, Rössler system)
- [ ] Fixed points and stability analysis
- [ ] Lyapunov exponents
- [ ] Bifurcation analysis

## v0.7.0 — Signal processing


- [ ] FIR / IIR filtering
- [ ] Convolution / correlation
- [ ] DFT / FFT
- [ ] Window functions
- [ ] Signal analysis (RMS, peak detection, zero-crossing rate, spectral analysis)
- [ ] Resampling (decimation, interpolation)

---

## BACKLOG


- [ ] SIMD acceleration

---

## DELIVERED


## v0.3.0 — Sparse matrices (foundation)


- [x] COO representation
- [x] CSR representation
- [x] Conversions COO ↔ CSR
- [x] Scalar multiply
- [x] Sparse × dense vector
- [x] CSC representation
- [x] Conversions CSR ↔ CSC
- [x] Sparse addition
- [x] Sparse × dense matrix
- [x] Sparse × sparse

### v0.2.1 — Code clean up


- [x] Refactor examples
- [x] Add missing black-box test
- [x] Improve the GitHub page
- [x] Refactor Taylor series to avoid code duplication

### v0.2.0 — Matrix decompositions and structural properties


- [x] Determinant
- [x] sin
- [x] cos
- [x] Rank
- [x] LU decomposition
- [x] QR decomposition
- [x] Cholesky decomposition
- [x] Singular Value Decomposition (SVD)
- [x] Condition number
- [x] no-alloc end-to-end test (custom panicking allocator confirms StaticVector and
  StaticMatrix never touch the heap)

### v0.1.0 — Initial release


- [x] Define the `Scalar` trait (minimal: zero, one, add, sub, mul, div)
- [x] Implement `Scalar` for `f32`
- [x] Implement `Scalar` for `f64`
- [x] Unit tests for `Scalar` implementations
- [x] Define the minimal `Storage` trait (element access, dimensions)
- [x] Implement static storage backed by a const-generic array
- [x] Implement dynamic storage backed by `Vec<T>`, behind the `alloc` feature
- [x] Unit tests for both storage implementations
- [x] Smoke test confirming the crate builds with `--no-default-features` (no `alloc`)
- [x] `sqrt` on the `Scalar` trait (fixed-iteration Newton-Raphson, no `std` dependency)
- [x] Vector operations: `add`, `sub`, `scale`, `dot`, `norm`, each with doc-comment +
  compiling example
- [x] `StaticVector<T, const N: usize>` and `DynamicVector<T>` (behind `alloc`), each with an
  example in `examples/`
- [x] Matrix operations: `add`, `sub`, `mul_scalar`, `mul` (matrix×vector and matrix×matrix),
  `transpose`, each with doc-comment + compiling example
- [x] `StaticMatrix<T, const R: usize, const C: usize>` and `DynamicMatrix<T>` (behind
  `alloc`), each with an example in `examples/`
- [x] External tests in `tests/` covering the public vector and matrix API end-to-end
- [x] `Cargo.toml` metadata complete: `license`, `description`, `repository`
- [x] `LICENSE` file present at repo root with the copyright line filled in
- [x] Working tree clean (no uncommitted changes) — `cargo publish --dry-run` passes without
  `--allow-dirty`
- [x] `cargo fmt --check`, `cargo clippy --all-features -- -D warnings`,
  `cargo test --no-default-features`, `cargo test --all-features` all clean
- [x] `CHANGELOG.md` has a `[0.1.0]` section (moved out of `[Unreleased]`)
- [x] Tag `v0.1.0`