scirs2-linalg 0.4.2

Linear algebra module for SciRS2 (scirs2-linalg)
Documentation
//! Advanced matrix decomposition algorithms organised as a dedicated submodule.
//!
//! This module groups specialised decompositions that complement the standard
//! factorizations available through the top-level `scirs2_linalg` API.
//!
//! # Submodules
//!
//! | Module | Contents |
//! |--------|----------|
//! | [`gsvd()`] | Generalized Singular Value Decomposition |
//!
//! # Quick Start
//!
//! ```
//! use scirs2_core::ndarray::array;
//! use scirs2_linalg::factorization::gsvd::gsvd;
//!
//! let a = array![[1.0_f64, 0.0], [0.0, 1.0]];
//! let b = array![[1.0_f64, 0.0], [0.0, 1.0]];
//! let result = gsvd(&a.view(), &b.view()).expect("gsvd");
//!
//! // alpha² + beta² = 1
//! for i in 0..result.alpha.len() {
//!     let sq = result.alpha[i].powi(2) + result.beta[i].powi(2);
//!     assert!((sq - 1.0).abs() < 1e-10);
//! }
//! ```

pub mod gsvd;
pub mod iterative_refinement;
pub mod rrqr;
pub mod urv;

pub use gsvd::{generalized_singular_values, gsvd, GsvdResult};
pub use iterative_refinement::{
    generic_iterative_refinement, lu_iterative_refinement, qr_iterative_refinement,
    IterativeRefinementResult, RefinementConfig,
};
pub use rrqr::{perm_to_matrix, rrqr, rrqr_rank, strong_rrqr, RRQRResult};
pub use urv::{urv, urv_lstsq, URVResult};