rapid_models.gp_diagnostics.utils.linalg¶
Module Contents¶
Functions¶
|
Wrapper for lapack dtrtrs function |
|
Solve A*X = B where A = F*F^{T} |
|
Reversed version of mulinv_solve |
|
Create symmetric matrix from triangular matrix |
|
Return inverse of matrix A = L*L.T where L is lower triangular |
|
Calculate trace(A*B) for two matrices A and B |
|
Try to compute the Cholesky decomposition of (K + noise_variance*I), and print an error message if it does not work |
- rapid_models.gp_diagnostics.utils.linalg.triang_solve(A: nptyping.NDArray[nptyping.Shape[N, N], nptyping.Float], B: Union[nptyping.NDArray[nptyping.Shape[N], nptyping.Float], nptyping.NDArray[nptyping.Shape[N, M], nptyping.Float]], lower: bool = True, trans: bool = False) Union[nptyping.NDArray[nptyping.Shape[N], nptyping.Float], nptyping.NDArray[nptyping.Shape[N, M], nptyping.Float]]¶
Wrapper for lapack dtrtrs function DTRTRS solves a triangular system of the form
A * X = B or A**T * X = B,
where A is a triangular matrix of order N, and B is an N-by-NRHS matrix. A check is made to verify that A is nonsingular. :param A: Matrix A(triangular) :param B: Matrix B :param lower: is matrix lower (true) or upper (false) :param trans: calculate A**T * X = B (true) or A * X = B (false)
- Returns:
Solution to A * X = B or A**T * X = B
- rapid_models.gp_diagnostics.utils.linalg.mulinv_solve(F: nptyping.NDArray[nptyping.Shape[N, N], nptyping.Float], B: Union[nptyping.NDArray[nptyping.Shape[N], nptyping.Float], nptyping.NDArray[nptyping.Shape[N, M], nptyping.Float]], lower: bool = True) Union[nptyping.NDArray[nptyping.Shape[N], nptyping.Float], nptyping.NDArray[nptyping.Shape[N, M], nptyping.Float]]¶
Solve A*X = B where A = F*F^{T}
lower = True -> when F is LOWER triangular. This gives faster calculation
- rapid_models.gp_diagnostics.utils.linalg.mulinv_solve_rev(F: nptyping.NDArray[nptyping.Shape[N, N], nptyping.Float], B: Union[nptyping.NDArray[nptyping.Shape[N], nptyping.Float], nptyping.NDArray[nptyping.Shape[M, N], nptyping.Float]], lower: bool = True) Union[nptyping.NDArray[nptyping.Shape[N], nptyping.Float], nptyping.NDArray[nptyping.Shape[M, N], nptyping.Float]]¶
Reversed version of mulinv_solve
Solves X*A = B where A = F*F^{T}
lower = True -> when F is LOWER triangular. This gives faster calculation
- rapid_models.gp_diagnostics.utils.linalg.symmetrify(A: nptyping.NDArray[nptyping.Shape[*, *], nptyping.Float], upper: bool = False)¶
Create symmetric matrix from triangular matrix
- rapid_models.gp_diagnostics.utils.linalg.chol_inv(L: nptyping.NDArray[nptyping.Shape[N, N], nptyping.Float]) nptyping.NDArray[nptyping.Shape[N, N], nptyping.Float]¶
Return inverse of matrix A = L*L.T where L is lower triangular Uses LAPACK function dpotri
- rapid_models.gp_diagnostics.utils.linalg.traceprod(A: nptyping.NDArray[nptyping.Shape[N, M], nptyping.Float], B: nptyping.NDArray[nptyping.Shape[M, N], nptyping.Float]) float¶
Calculate trace(A*B) for two matrices A and B
- rapid_models.gp_diagnostics.utils.linalg.try_chol(K: nptyping.NDArray[nptyping.Shape[N, N], nptyping.Float], noise_variance: float = 0.0, func_name: str = '') Union[nptyping.NDArray[nptyping.Shape[N, N], nptyping.Float], None]¶
Try to compute the Cholesky decomposition of (K + noise_variance*I), and print an error message if it does not work