§deimos_numerics
Numerical methods and control systems analysis.
§Feature Status
| Feature area | Sparse | Dense | Continuous | Discrete | no-std | no-alloc | wasm |
| Linear solves | ✅ | ✅ | n/a | n/a | ✅ | n/a | ✅ |
| Matrix decompositions | 💡 | ✅ | n/a | n/a | ✅ | n/a | ✅ |
| Matrix equations | n/a | ✅ | ✅ | ✅ | ✅ | n/a | ✅ |
| LTI models and analysis | n/a | ✅ | ✅ | ✅ | ✅ | n/a | ✅ |
| Filter design | n/a | ✅ | ✅ | ✅ | ✅ | n/a | ✅ |
| Control synthesis | n/a | ✅ | ✅ | ✅ | ✅ | n/a | ✅ |
| Estimation | n/a | ✅ | n/a | ✅ | ✅ | n/a | ✅ |
| Embedded fixed runtime | n/a | ✅ | n/a | ✅ | ✅ | ✅ | ✅ |
| Identification and realization | n/a | ✅ | n/a | ✅ | ✅ | n/a | ✅ |
| Model reduction | n/a | ✅ | ✅ | 💡 | ✅ | n/a | ✅ |
§Numerical Methods
§Linear solves
| Feature | Sparse | Dense | Continuous | Discrete | no-std | no-alloc | wasm |
| LU factorization | ✅ | ✅ | n/a | n/a | ✅ | n/a | ✅ |
| Iterative refinement | ✅ | n/a | n/a | n/a | ✅ | n/a | ✅ |
| Cholesky / LDLT | ✅ | ✅ | n/a | n/a | ✅ | n/a | ✅ |
| BiCGSTAB | ✅ | n/a | n/a | n/a | ✅ | n/a | ✅ |
| Equilibration | ✅ | 💡 | n/a | n/a | ✅ | n/a | ✅ |
| Preconditioners | ✅ | n/a | n/a | n/a | ✅ | n/a | ✅ |
| Schur-complement operators | ✅ | n/a | n/a | n/a | ✅ | n/a | ✅ |
§Matrix decompositions
| Feature | Sparse | Dense | Continuous | Discrete | no-std | no-alloc | wasm |
| Eigenvalues and eigenvectors | ✅ | ✅ | n/a | n/a | ✅ | n/a | ✅ |
| Self-adjoint eigen decomposition | ✅ | ✅ | n/a | n/a | ✅ | n/a | ✅ |
| Generalized eigen decomposition | 💡 | ✅ | n/a | n/a | ✅ | n/a | ✅ |
| Singular value decomposition | ✅ | ✅ | n/a | n/a | ✅ | n/a | ✅ |
| Matrix-free operator adapters | ✅ | n/a | n/a | n/a | ✅ | n/a | ✅ |
| Convergence diagnostics | ✅ | ✅ | n/a | n/a | ✅ | n/a | ✅ |
§Control Systems & Digital Signal Processing
§Embedded fixed runtime
| Feature | Sparse | Dense | Continuous | Discrete | no-std | no-alloc | wasm |
| Fixed-size matrix / vector storage | n/a | ✅ | n/a | ✅ | ✅ | ✅ | ✅ |
| Fixed discrete state-space runtime | n/a | ✅ | n/a | ✅ | ✅ | ✅ | ✅ |
| Fixed FIR runtime | n/a | ✅ | n/a | ✅ | ✅ | ✅ | ✅ |
| Fixed delta-SOS runtime | n/a | ✅ | n/a | ✅ | ✅ | ✅ | ✅ |
| Fixed PID runtime | n/a | ✅ | n/a | ✅ | ✅ | ✅ | ✅ |
| Fractional-delay FIR taps | n/a | ✅ | n/a | ✅ | ✅ | ✅ | ✅ |
| Fixed discrete Kalman filter | n/a | ✅ | n/a | ✅ | ✅ | ✅ | ✅ |
| Fixed steady-state Kalman filter | n/a | ✅ | n/a | ✅ | ✅ | ✅ | ✅ |
§Matrix equations
| Feature | Sparse | Dense | Continuous | Discrete | no-std | no-alloc | wasm |
| Lyapunov solve | ✅ | ✅ | ✅ | n/a | ✅ | n/a | ✅ |
| Stein solve | ✅ | ✅ | n/a | ✅ | ✅ | n/a | ✅ |
| Controllability Gramians | ✅ | ✅ | ✅ | ✅ | ✅ | n/a | ✅ |
| Observability Gramians | ✅ | ✅ | ✅ | ✅ | ✅ | n/a | ✅ |
| Algebraic Riccati equations | 💡 | ✅ | ✅ | ✅ | ✅ | n/a | ✅ |
§LTI models and analysis
| Feature | Sparse | Dense | Continuous | Discrete | no-std | no-alloc | wasm |
| State-space models | ✅ | ✅ | ✅ | ✅ | ✅ | n/a | ✅ |
| Transfer functions | n/a | ✅ | ✅ | ✅ | ✅ | n/a | ✅ |
| Zero-pole-gain models | n/a | ✅ | ✅ | ✅ | ✅ | n/a | ✅ |
| Second-order sections | n/a | ✅ | ✅ | ✅ | ✅ | n/a | ✅ |
| FIR models | n/a | ✅ | n/a | ✅ | ✅ | n/a | ✅ |
| Pole and stability analysis | ✅ | ✅ | ✅ | ✅ | ✅ | n/a | ✅ |
| Frequency-response data | ✅ | ✅ | ✅ | ✅ | ✅ | n/a | ✅ |
| Step, impulse, and simulation data | 💡 | ✅ | ✅ | ✅ | ✅ | n/a | ✅ |
| Loop margins / Nyquist / Nichols | n/a | ✅ | ✅ | ✅ | ✅ | n/a | ✅ |
| Root locus | n/a | ✅ | ✅ | ✅ | ✅ | n/a | ✅ |
| Explicit process models | n/a | ✅ | ✅ | 💡 | ✅ | n/a | ✅ |
§Filter design
| Feature | Sparse | Dense | Continuous | Discrete | no-std | no-alloc | wasm |
| Butterworth IIR design | n/a | ✅ | ✅ | ✅ | ✅ | n/a | ✅ |
| Chebyshev I IIR design | n/a | ✅ | ✅ | ✅ | ✅ | n/a | ✅ |
| Bessel IIR design | n/a | ✅ | ✅ | n/a | ✅ | n/a | ✅ |
| Lowpass / highpass transforms | n/a | ✅ | ✅ | ✅ | ✅ | n/a | ✅ |
| Bandpass / bandstop transforms | n/a | ✅ | ✅ | ✅ | ✅ | n/a | ✅ |
| Minimum-order selection | n/a | ✅ | ✅ | ✅ | ✅ | n/a | ✅ |
| SOS output | n/a | ✅ | ✅ | ✅ | ✅ | n/a | ✅ |
| Transfer-function output | n/a | ✅ | ✅ | ✅ | ✅ | n/a | ✅ |
| Savitzky-Golay FIR design | n/a | ✅ | n/a | ✅ | ✅ | n/a | ✅ |
| Delta-SOS runtime form | n/a | ✅ | n/a | ✅ | ✅ | n/a | ✅ |
§Control synthesis
| Feature | Sparse | Dense | Continuous | Discrete | no-std | no-alloc | wasm |
| LQR / DLQR | n/a | ✅ | ✅ | ✅ | ✅ | n/a | ✅ |
| LQG / DLQG | n/a | ✅ | ✅ | ✅ | ✅ | n/a | ✅ |
| Pole placement | n/a | ✅ | ✅ | ✅ | ✅ | n/a | ✅ |
| PID runtime | n/a | ✅ | n/a | ✅ | ✅ | n/a | ✅ |
| Frequency-domain PID design | n/a | ✅ | ✅ | ✅ | ✅ | n/a | ✅ |
| Process-model PID design | n/a | ✅ | ✅ | n/a | ✅ | n/a | ✅ |
| Step-response PID design | n/a | ✅ | n/a | ✅ | ✅ | n/a | ✅ |
| OKID / ERA PID design | n/a | ✅ | n/a | ✅ | ✅ | n/a | ✅ |
§Estimation
| Feature | Sparse | Dense | Continuous | Discrete | no-std | no-alloc | wasm |
| LQE / DLQE design | n/a | ✅ | ✅ | ✅ | ✅ | n/a | ✅ |
| Fixed-gain observer runtime | n/a | ✅ | ✅ | ✅ | ✅ | n/a | ✅ |
| Time-varying Kalman filter | n/a | ✅ | n/a | ✅ | ✅ | n/a | ✅ |
| Steady-state Kalman filter | n/a | ✅ | n/a | ✅ | ✅ | n/a | ✅ |
| EKF runtime | n/a | ✅ | n/a | ✅ | ✅ | n/a | ✅ |
| UKF runtime | n/a | ✅ | n/a | ✅ | ✅ | n/a | ✅ |
§Identification and realization
| Feature | Sparse | Dense | Continuous | Discrete | no-std | no-alloc | wasm |
| Markov sequences | n/a | ✅ | n/a | ✅ | ✅ | n/a | ✅ |
| Block-Hankel assembly | n/a | ✅ | n/a | ✅ | ✅ | n/a | ✅ |
| Shifted Hankel pairs | n/a | ✅ | n/a | ✅ | ✅ | n/a | ✅ |
| ERA from Markov data | n/a | ✅ | n/a | ✅ | ✅ | n/a | ✅ |
| ERA from shifted Hankel data | n/a | ✅ | n/a | ✅ | ✅ | n/a | ✅ |
| OKID from sampled I/O data | n/a | ✅ | n/a | ✅ | ✅ | n/a | ✅ |
§Model reduction
| Feature | Sparse | Dense | Continuous | Discrete | no-std | no-alloc | wasm |
| HSVD from dense Gramians | n/a | ✅ | ✅ | ✅ | ✅ | n/a | ✅ |
| HSVD from low-rank factors | ✅ | ✅ | ✅ | ✅ | ✅ | n/a | ✅ |
| Balanced realization | n/a | ✅ | ✅ | ✅ | ✅ | n/a | ✅ |
| Balanced truncation | ✅ | ✅ | ✅ | ✅ | ✅ | n/a | ✅ |
| Reduced-order diagnostics | ✅ | ✅ | ✅ | ✅ | ✅ | n/a | ✅ |
§License
Licensed under either of
at your option.