linear/¶
Umbrella include for linear algebra routines.
banded matrix storage and solvers <linear/banded/banded.hpp>
band_mat – banded_factor – banded_gemv – banded_lu_result – banded_matvec – banded_norm1 – banded_solve – lu – solve
Condition number estimates from any factorization <linear/condition.hpp>
Runtime validation of structural invariants carried by stored matrices <linear/debug.hpp>
Full symmetric eigendecomposition via cyclic Jacobi sweeps <linear/eigen/jacobi_eig.hpp>
eig_sym – eigen_result – jacobi_rotation – lapack::eig_sym – omp::eig_sym – seq::eig_sym – unsafe::eig_sym
Lanczos eigensolver for symmetric operators <linear/eigen/lanczos.hpp>
inverse_sqrt_lanczos – lanczos – lanczos_action_result – lanczos_result – sqrt_lanczos – unsafe::lanczos
Power iteration, inverse iteration, Rayleigh quotient iteration <linear/eigen/power.hpp>
inverse_iteration – power_iteration – power_result – rayleigh_iteration
Krylov subspace matrix exponential-vector product: compute exp(tA)v <linear/expv/expv.hpp>
Block LU and block Cholesky for block-tridiagonal sparse matrices <linear/factorization/block_tridiagonal.hpp>
block_cholesky_factor – block_lu_factor – factor_block_cholesky – factor_block_lu – refactor_block_cholesky_suffix – refactor_block_lu_suffix – solve_in_place – solve_transpose_in_place
Dense Cholesky factorization for SPD matrices <linear/factorization/cholesky.hpp>
cholesky – cholesky_block – cholesky_blocked – cholesky_downdate – cholesky_result – cholesky_solve – cholesky_update – lapack::cholesky – linear::is_spd – linear::make_spd – unsafe::cholesky
Factor a matrix once and solve against any number of right-hand sides <linear/factorization/factor.hpp>
block_structure – blocks – similar_factor – sparse – sparse_structure
Upper Hessenberg decomposition A = Q H Q^T via Householder reflections <linear/factorization/hessenberg.hpp>
hessenberg – hessenberg_back_project – hessenberg_decomposition – hessenberg_project – hessenberg_shifted_factor – hessenberg_shifted_solve – hessenberg_shifted_substitute – lapack::hessenberg – seq::hessenberg
Diagonal of an inverse from reusable factorizations <linear/factorization/inverse_diagonal.hpp>
inverse_diagonal – inverse_diagonal_workspace – inverse_principal_block – safe_add – selected_inverse
LU factorization, with partial pivoting or without, in any floating-point precision <linear/factorization/lu.hpp>
det – inverse – lapack::lu – lower – lu_diagonal_shift_derivative – lu_factor – lu_factor_blocked – lu_invert – lu_no_pivot – lu_no_pivot_solve_multiple – lu_no_pivot_solve_transpose_multiple – lu_result – lu_solve – no_pivot – no_pivot_structure – seq::lu – upper
LU in single precision, refined to double-precision accuracy <linear/factorization/mixed_lu.hpp>
Randomized estimate of diag(A^-1) for a nonsingular M-matrix <linear/factorization/probed_inverse_diagonal.hpp>
ac – ac2 – grounded_approxchol_factor – inverse_diagonal_options
QR factorization via Householder reflections <linear/factorization/qr.hpp>
householder_left – householder_right – householder_vector – householder_vector_strided – lapack::qr – qr – qr_apply_block_left – qr_block – qr_factor_blocked – qr_form_block – qr_result – qr_workspace – seq::qr
Factor R again from the factor of a matrix that differs at a few slots <linear/factorization/reuse.hpp>
corrected_cholesky – corrected_factor – corrected_lu – suffix_block_cholesky – suffix_block_lu
Pure template Thomas algorithm for tridiagonal systems <linear/factorization/thomas.hpp>
Precomputed Thomas solver for constant-coefficient complex systems <linear/factorization/tridiag_complex.hpp>
Low-rank corrected solves against a retained factorization <linear/factorization/woodbury.hpp>
inverse_rows_workspace – low_rank_difference – low_rank_update – update_inverse_rows – woodbury_solver
Matrices produced from a graph <linear/graph/laplacian.hpp>
linear::dense_laplacian – linear::dense_markov_generator – linear::laplacian – linear::markov_generator – linear::to_dense_adjacency – linear::to_multigraph – linear::to_sparse_adjacency
Block-tridiagonal level labels from graph distance <linear/graph/levels.hpp>
Randomized Approximate Cholesky (ApproxChol) factorizations and SDD/Laplacian preconditioners <linear/graph/randommat/approxchol.hpp>
randommat::ac1 – randommat::ac2 – randommat::act – randommat::exact – randommat::factorize – randommat::gao_kyng_spielman_2023::ac – randommat::gao_kyng_spielman_2023::ac2
Adapting the ApproxChol factorization to numerics' operator vocabulary <linear/graph/randommat/preconditioner.hpp>
approx_chol_preconditioner – grounded_approx_chol_factor – randommat::approx_chol_preconditioner – randommat::approxchol_preconditioner – randommat::grounded_approx_chol_factor – randommat::grounded_approxchol_factor – randommat::to_approxchol_graph
Substitution and solve routines for Approximate Cholesky factors <linear/graph/randommat/solve.hpp>
Core types and factor representations for Randomized Numerical Linear Algebra (RandNLA) <linear/graph/randommat/types.hpp>
randommat::adjacency_list – randommat::cholesky_factor – randommat::factor_column – randommat::factor_entry – randommat::get_entry – randommat::graph_edge – randommat::neighbor
Exact symmetry and definiteness checks for dense matrices, and the laws they attach <linear/matrix_properties.hpp>
linear::is_symmetric – linear::make_symmetric – linear::relative_symmetry_error – linear::symmetry_error
Small dense matrix construction and diagonal utilities <linear/matrix_utils.hpp>
accu – diagonal_matrix – divide_elements – divide_rows – eye – gather – identity – identity_columns – ones – scale_elements – scale_rows – scatter – set_diagonal – unit_vector – zeros
The solve protocol every factorization follows <linear/solve.hpp>
Automatic dense/sparse factorization for reusable real solves <linear/solvers/auto_linear.hpp>
Automatic dense/sparse shifted-resolvent selection <linear/solvers/auto_resolvent.hpp>
Conjugate gradient solvers <linear/solvers/cg.hpp>
cg – cg_options – krylov_result – unsafe::cg
Matrix-free Chebyshev polynomial preconditioner <linear/solvers/chebyshev.hpp>
chebyshev_preconditioner – chebyshev_preconditioner_from_below – estimate_largest_eigenvalue – make_chebyshev_preconditioner
Gauss-Seidel iterative solver <linear/solvers/gauss_seidel.hpp>
Evidence-constrained restarted GMRES <linear/solvers/gmres.hpp>
O(n^2)-per-shift complex resolvent solves from one Hessenberg decomposition <linear/solvers/hessenberg_resolvent.hpp>
hessenberg_resolvent – hessenberg_shifted_lu – shift – solve_batch
Incomplete LU preconditioner with zero fill-in, ILU(0) <linear/solvers/ilu.hpp>
csr_diagonal_positions – csr_lu_solve – ilu0_factor – ilu0_preconditioner – make_ilu0_preconditioner
Jacobi iterative solver <linear/solvers/jacobi.hpp>
Universal linear solver callable type <linear/solvers/linear_solver.hpp>
Evidence-constrained minimum residual iteration <linear/solvers/minres.hpp>
Evidence-constrained preconditioned conjugate gradient <linear/solvers/pcg.hpp>
preconditioner concept and diagonal preconditioners <linear/solvers/preconditioner.hpp>
Common result type shared by all iterative solvers <linear/solvers/solver_result.hpp>
Shifted sparse resolvent plans with optional SuiteSparse backend <linear/solvers/sparse_resolvent.hpp>
sparse_resolvent – sparse_resolvent_available – sparse_resolvent_options – sparse_shifted_lu
Optional SuiteSparse KLU factorization for real sparse matrices <linear/sparse/klu.hpp>
Compressed Sparse Row (CSR) matrix and operations <linear/sparse/sparse.hpp>
dense – diagonal – diagonal_similarity – sparse_congruence – sparse_diagonal_similarity – sparse_matvec – spmat – symmetric_part – transpose
spmat adapter for the operator protocol <linear/sparse/sparse_op.hpp>
Optional SuiteSparse UMFPACK factorization for real sparse matrices <linear/sparse/umfpack.hpp>
Subspace construction and orthogonalization kernels <linear/subspace.hpp>
dispatch::subspace::arnoldi_step – dispatch::subspace::mgs_orthogonalize – mgs_columns
Dense and randomized truncated SVD <linear/svd/svd.hpp>
lapack::svd – seq::svd – svd – svd_result – svd_truncated