F64Decompositions
Dense factorizations as a backend half.
Inheritors
Properties
kernels
The vector kernels this half's inherited routines run on; the installed ones by default.
Whether this backend can do work on this host. koblas's own implementations always can, so the default is true; a binding reports whether the library it calls resolved.
Whether this is koblas's own implementation rather than a binding to a host library. The compiled-in SIMD kernels are portable however fast they are; only something calling out counts as accelerated.
Relative preference among the backends offered for one half (F64Blas, F64Decompositions, F64Kernels or a sparse counterpart). registerBackend picks the highest; the portable reference is 0.
Functions
applyQ
Apply Q, or Qᵀ when transpose, from qr to a length-m y, into a fresh result (LAPACK dormqr restricted to a single column).
applyQInto
Apply Q, or Qᵀ when transpose, from qr to y into out, which is returned. out may be y.
cholesky
Cholesky factorization A = L·Lᵀ of a symmetric positive-definite a (dpotrf with uplo = 'L'). Reads only the lower triangle of a, so an upper-only matrix factors to silent nonsense.
Throws
at the first non-positive pivot unless policy allows it.
factor
factorInto
invert
Invert a general matrix from its LU factorization, returning A⁻¹ given P·A = L·U (LAPACK dgetri). Prefer solve to apply A⁻¹, which costs less and is more accurate.
Throws
if lu is singular; the position is F64LuDecomposition.failedAt.
Invert an SPD matrix from its Cholesky factorization, returning A⁻¹ given chol (LAPACK dpotri).
ldl
Symmetric indefinite factorization A = L·D·Lᵀ with Bunch-Kaufman pivoting (LAPACK dsytrf, lower). Reads only the lower triangle of a, so an upper-only matrix factors to silent nonsense.
qr
qrPivoted
QR with column pivoting, A·P = Q·R (LAPACK dgeqp3), reporting F64PivotedQrDecomposition.rank as the count of leading diagonal entries with |R_kk| > tolerance · |R₀₀|. tolerance is a fraction of |R₀₀|; AUTOMATIC_RANK_TOLERANCE derives one from the shape, max(m, n) · ε, and a negative value is rejected.
Throws
if tolerance is negative.
rcond
solve
Solve A · x = b, or Aᵀ · x = b when transpose, for the factorization lu (LAPACK dgetrs).
Solve A · X = B, or Aᵀ · X = B when transpose, for all right-hand-side columns of b at once (LAPACK dgetrs with nrhs).
Solve A · x = b for a symmetric indefinite factorization ldl (LAPACK dsytrs).
Solve A · X = B for all right-hand-side columns of b at once against a symmetric indefinite factorization (LAPACK dsytrs with nrhs).
Least-squares solve from a pivoted factorization, with the column permutation undone. A rank-deficient factorization returns the basic solution, not the minimum-norm one: zero outside the pivoted rank.
Solve from a QR factorization. By default, finds the least-squares solution min ‖A·x − b‖₂ for a tall or square A; it requires full column rank and returns R⁻¹·(Qᵀb). With minimumNorm, finds the minimum-norm solution of a consistent wide system from qr(Aᵀ); it requires full row rank.
Solve A · x = b for the Cholesky factorization chol (LAPACK dpotrs). b is not modified.
solveInto
Solve A · x = b, or Aᵀ · x = b when transpose, into out, which is returned. out may be b, and a workspace lends the transposed direction's staging buffer.
Solve A · X = B, or Aᵀ · X = B when transpose, into out, which is returned. out may be b, and a workspace lends the transposed direction's n·nrhs staging block.
Solve A · x = b into out, which is returned. out may be b.
Solve A · X = B into out, which is returned. out may be b.
solve into out, which is returned.
solve into out, which is returned. Its length is n by default and m with minimumNorm. A workspace lends the intermediate for applying Q or Qᵀ.
trtri
Invert a triangular matrix into a fresh result (LAPACK dtrtri), returning T⁻¹ for the lower or upper triangle of the square a, taking the diagonal as 1 when unitDiag.
Throws
naming the first zero diagonal position.