Expand description
Native LAPACK
Each function names the LAPACK routine it follows, so it can be checked against
the reference source of the same name (LAPACK 3.12.1’s SRC/ and BLAS/SRC/).
§What is here
Every routine the crate’s public API needs has a native implementation. This table says where each one lives; the module’s own doc comment gives its pipeline.
| Routine | Where |
|---|---|
dgetrf LU with partial pivoting | dgetrf |
dgetri inverse from LU | dgetri |
dgesv solve A X = B | dgesv |
dpotrf Cholesky | dpotrf |
dlange matrix norms | super::blas::dlange |
dsyev symmetric eigen-decomposition | sym |
dgeev general eigen-decomposition | eig |
dgesvd real SVD | svd |
dggev generalized eigen-decomposition (QZ) | qz |
zgetrf, zgetri, zgesv, zpotrf | complex |
zheev, zgeev | zeig |
zgesvd complex SVD | zsvd |
zggev complex QZ | qz |
LapackError::NotImplemented is retained, and no routine returns it: a
caller that reaches a routine with no native path still gets a runtime error
naming the feature to enable rather than a link error, and a routine that is
reverted keeps its error handling.
§Conventions
- Column-major,
data[i + j * n], matchingcrate::Matrix. - 0-based indices and
usizelengths. LAPACK’s 1-based indices and itslda/lworkarguments are Fortran artifacts, not part of the math, so they do not appear here; the leading dimension of ann x nmatrix isn. - Workspace is allocated inside each routine.
- A driver returns
Result<(), LapackError>, never LAPACK’s integerINFO:INFO < 0(an illegal argument) andINFO > 0(non-convergence, or a back-substitution failure) both becomeLapackError, so no caller has to remember which integer means what. Internal helpers still returnINFO, because that is what the reference source says and what a diff against it should show; the drivers translate it at the boundary.
Re-exports§
pub use super::blas::dlange;
Modules§
- complex
- Native complex LAPACK
- eig
- Native real eigen-decompositions:
dgeevand the pieces it is built from. - qz
- The generalized eigenproblem
A v = lambda B vfor real and complex matrices: the QZ algorithm. - svd
- Native singular value decomposition:
dgesvdand the unblocked pieces it is built from. - sym
- Native symmetric eigen-decomposition:
dsyevand the pieces it is built from. - zeig
- Native complex Hermitian eigen-decomposition:
zheevand the unblocked pieces it is built from. - zsvd
- Native complex singular value decomposition:
zgesvdand the unblocked pieces it is built from.
Enums§
- Lapack
Error - Error kinds these routines can report.
Constants§
- ZERO_
DETERMINANT - Value below which a pivot counts as zero.
Functions§
- dgesv
dgesv: solveA X = Bfor a single right-hand side.- dgetrf
dgetrf: LU factorization with partial pivoting, in place.- dgetrf_
rect dgetrf_rect: LU factorization of a rectangular panel with partial pivoting.- dgetri
dgetri: inverse of a matrix from itsdgetrffactorization, in place.- dpotrf
dpotrf: Cholesky factorizationA = L L^T, lower triangle, in place.- norm_
char - The BLAS norm character for a
crate::Normdiscriminant. - not_
implemented - Error used when a routine has no native implementation yet.