scirs2_sparse/linalg/
mod.rs

1//! Linear algebra operations for sparse matrices
2//!
3//! This module provides linear algebra operations for sparse matrices,
4//! including solvers, eigenvalue computations, and matrix functions.
5
6mod amg;
7// mod banded_solvers; // Will be added separately
8mod cgs;
9mod decomposition;
10mod eigen;
11mod enhanced_operators;
12mod expm;
13mod gcrot;
14mod ic;
15mod interface;
16mod iterative;
17mod lgmres;
18mod lsmr;
19mod lsqr;
20mod matfuncs;
21mod minres;
22mod preconditioners;
23mod qmr;
24mod qmr_simple;
25mod solvers;
26mod spai;
27mod svd;
28mod tfqmr;
29
30pub use amg::{AMGOptions, AMGPreconditioner, CycleType, InterpolationType, SmootherType};
31// pub use banded_solvers::*; // Will be added separately
32pub use cgs::{cgs, CGSOptions, CGSResult};
33pub use decomposition::{
34    cholesky_decomposition, incomplete_cholesky, incomplete_lu, ldlt_decomposition,
35    lu_decomposition, lu_decomposition_with_options, pivoted_cholesky_decomposition,
36    qr_decomposition, CholeskyResult, ICOptions, ILUOptions, LDLTResult, LUOptions, LUResult,
37    PivotedCholeskyResult, PivotingStrategy, QRResult,
38};
39pub use eigen::{
40    eigs, eigsh, eigsh_generalized, eigsh_generalized_enhanced, eigsh_shift_invert,
41    eigsh_shift_invert_enhanced, lanczos, power_iteration, ArpackOptions, EigenResult,
42    EigenvalueMethod, EigenvalueMode, LanczosOptions, PowerIterationOptions,
43};
44pub use enhanced_operators::{
45    convolution_operator, enhanced_add, enhanced_diagonal, enhanced_scale, enhanced_subtract,
46    finite_difference_operator, BoundaryCondition, ConvolutionMode, ConvolutionOperator,
47    EnhancedDiagonalOperator, EnhancedDifferenceOperator, EnhancedOperatorOptions,
48    EnhancedScaledOperator, EnhancedSumOperator, FiniteDifferenceOperator,
49};
50pub use expm::expm;
51pub use gcrot::{gcrot, GCROTOptions, GCROTResult};
52pub use ic::IC0Preconditioner;
53pub use interface::{
54    AsLinearOperator, DiagonalOperator, IdentityOperator, LinearOperator, ScaledIdentityOperator,
55};
56pub use iterative::{
57    bicg, bicgstab, cg, gmres, BiCGOptions, BiCGSTABOptions, BiCGSTABResult, CGOptions,
58    GMRESOptions, IterationResult, IterativeSolver,
59};
60pub use lgmres::{lgmres, LGMRESOptions, LGMRESResult};
61pub use lsmr::{lsmr, LSMROptions, LSMRResult};
62pub use lsqr::{lsqr, LSQROptions, LSQRResult};
63pub use matfuncs::{
64    condest, condest_enhanced, expm_multiply, onenormest, onenormest_enhanced, twonormest,
65    twonormest_enhanced,
66};
67pub use minres::{minres, MINRESOptions, MINRESResult};
68pub use preconditioners::{ILU0Preconditioner, JacobiPreconditioner, SSORPreconditioner};
69pub use qmr::{qmr, QMROptions, QMRResult};
70pub use solvers::{
71    add, diag_matrix, eye, inv, matmul, matrix_power, multiply, norm, sparse_direct_solve,
72    sparse_lstsq, spsolve,
73};
74pub use spai::{SpaiOptions, SpaiPreconditioner};
75pub use svd::{svd_truncated, svds, SVDOptions, SVDResult};
76pub use tfqmr::{tfqmr, TFQMROptions, TFQMRResult};