1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
//! Low-rank updates to sparse factorizations (LU, QR, sketched).
//!
//! This module implements efficient low-rank modifications to existing matrix
//! factorizations, avoiding the cost of a full re-factorization when a matrix
//! is perturbed by a low-rank term.
//!
//! # Supported operations
//!
//! | Operation | Function | Formula |
//! |-----------|----------|---------|
//! | Sherman-Morrison-Woodbury | [`sherman_morrison_woodbury`] | (A + UCV)^{-1} |
//! | LU rank-1 update | [`lu_rank1_update`] | PA = LU, A' = A + uv^T |
//! | LU column replace | [`lu_column_replace`] | Replace column k of A |
//! | QR rank-1 update | [`qr_rank1_update`] | A = QR, A' = A + uv^T |
//! | QR column insert | [`qr_column_insert`] | Insert column at position k |
//! | QR column delete | [`qr_column_delete`] | Delete column at position k |
//! | Nystrom update | [`nystrom_update`] | Approximate A + UV^T via sketch |
//! | Randomized update | [`randomized_low_rank_update`] | Randomized range approximation |
//!
//! # References
//!
//! - Golub, Van Loan (2013). *Matrix Computations*, 4th ed., Johns Hopkins.
//! - Halko, Martinsson, Tropp (2011). "Finding structure with randomness."
//! *SIAM Review* 53(2).
/// Types and configuration for low-rank factorization updates.
/// LU factorization updates (Sherman-Morrison-Woodbury, rank-1, column replace).
/// QR factorization updates (rank-1, column insert/delete).
/// Sketched / randomized low-rank updates (Nystrom, randomized).
// Re-exports for convenience
pub use ;
pub use ;
pub use ;
pub use ;