num::cholesky_blocked¶
Defined in header <linear/factorization/cholesky.hpp>
template <std::floating_point T>
bool cholesky_blocked(T *A, idx lda, idx n, idx block_size) noexcept; // (1)
template <std::floating_point T>
bool cholesky_blocked(T *A, idx n, idx block_size = 256) noexcept; // (2)
(1) Blocked lower Cholesky of an n x n block with row stride lda.
Diagonal blocks wider than the trsm/syrk block are factored by recursion, so the panel solve and trailing update always see blocks long enough for their internal gemm to matter.
(2) In-place blocked Cholesky factorization, A <- L with A = L*L^T.
Panels of block_size columns; the panel solve and trailing update are the blocked trsm and syrk, so large sizes run at gemm speed.