// Copyright (C) 2026 Kiyotsugu Arai // SPDX-License-Identifier: LGPL-3.0-or-later // linalg.hpp — linear-algebra module umbrella header // // Public API included here (sangi-pro): // // Foundations: // — static dimension-check helpers // // Basic operations: // — Level 1/2/3 BLAS (incl. SIMD path) // — vector-space utilities // // Systems of equations: // — direct methods (LU / Cholesky / QR / SVD solves) // — iterative methods (CG / GMRES / BiCGSTAB / MINRES) // — sparse LU factorization // — sparse QR factorization // — sparse Cholesky factorization // — fill-reducing ordering (minimum-degree / AMD) // // Matrix decompositions: // — LU / QR / SVD / Cholesky / Schur / Hessenberg // // Eigenvalues / singular values: // — symmetric / non-symmetric eigenvalues, generalized eigenvalues // — Parlett-Reinsch balancing + equilibration // — equilibration for sparse matrices // — Randomized SVD (Halko-Martinsson-Tropp) // // Matrix functions / matrix equations: // — expm / logm / sqrtm / mat_power // — Sylvester / Lyapunov equations // // Integer / rational / polynomial / Boolean linear algebra: // — Boolean matrices (operations over {0,1}) // — Hermite normal form // — LLL lattice basis reduction // — polynomial matrices (Smith normal form) // — rational matrices (common-denominator representation) // — integer linear systems via Dixon p-adic lifting // // Experimental (unreleased, requires a direct include): // — TLS / structured LS // // Note: experimental headers are not included by this header (planned for integration once the API stabilizes). #ifndef SANGI_LINALG_HPP #define SANGI_LINALG_HPP #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include // NOTE: pro-only headers (BoolMatrix / LLL / PolyMatrix) are intentionally // excluded from this umbrella so it stays buildable in the free distribution. // Pro users include those headers directly. #include #include #include #endif // SANGI_LINALG_HPP