|
grid_tools
1.13.0
|
Utility routines for various linear inversions and Cholesky. More...
Go to the source code of this file.
Data Types | |
| interface | pmat::inv |
| interface | pmat::invl |
| interface | pmat::invu |
| interface | pmat::l1lm |
| interface | pmat::ldlm |
| interface | pmat::ldum |
| interface | pmat::swpvv |
| interface | pmat::udlmm |
Functions/Subroutines | |
| subroutine | pmat::cinvmt (a) |
| Invert complex matrix in place. More... | |
| subroutine | pmat::cinvmtf (a, ff) |
| Invert a complex matrix in place, or flag if process fails. More... | |
| subroutine | pmat::cldum (a, ipiv, d) |
| Perform L*D*U decomposition, with pivoting, of square matrix. More... | |
| subroutine | pmat::cldumf (a, ipiv, d, ff) |
| Perform l-d-u decomposition of square matrix a in place with pivoting. More... | |
| subroutine | pmat::clinmmt (a, b) |
| Invert complex linear system with multiple right-hand side vectors. More... | |
| subroutine | pmat::clinmmtf (a, b, ff) |
| Invert linear system with multiple right-hand side vectors, or flag failure. More... | |
| subroutine | pmat::clinmvt (a, b) |
| Invert linear system with single right-hand side vector. More... | |
| subroutine | pmat::clinmvtf (a, b, ff) |
| Invert complex linear system with single right-hand side vector. More... | |
| subroutine | pmat::cswpvv (d, e) |
| Swap a pair of complex vectors. More... | |
| subroutine | pmat::cudlmm (a, b, ipiv) |
| Use l-u factors in A to back-substitute for several rhs in B, using ipiv to define the pivoting permutation used in the l-u decomposition. More... | |
| subroutine | pmat::cudlmv (a, b, ipiv) |
| Use l-u factors in A to back-substitute for 1 rhs in B, using ipiv to define the pivoting permutation used in the l-u decomposition. More... | |
| subroutine | pmat::dinvl (a) |
| Invert lower triangular matrix in place. More... | |
| subroutine | pmat::dinvmt (a) |
| Invert double precision matrix in place. More... | |
| subroutine | pmat::dinvmtf (a, ff) |
| Invert a double precision matrix in place, or flag if process fails. More... | |
| subroutine | pmat::dinvu (a) |
| Invert the upper triangular matrix in place by transposing, calling invl, and transposing again. More... | |
| subroutine | pmat::dl1lm (a, b) |
| Cholesky, M -> L*U, U(i,j)=L(j,i) More... | |
| subroutine | pmat::dl1lmf (a, b, ff) |
| Cholesky, M -> L*U, U(i,j)=L(j,i) More... | |
| subroutine | pmat::dldlm (a, b, d) |
| Modified Cholesky decompose Q –> L*D*U, U(i,j)=L(j,i) More... | |
| subroutine | pmat::dldlmf (a, b, d, ff) |
| Modified Cholesky Q –> L*D*U, U(i,j)=L(j,i) More... | |
| subroutine | pmat::dldum (a, ipiv, d) |
| Perform L*D*U decomposition, with pivoting, of square matrix. More... | |
| subroutine | pmat::dldumf (a, ipiv, d, ff) |
| Perform l-d-u decomposition of square matrix a in place with pivoting. More... | |
| subroutine | pmat::dlinlv (a, u) |
| Solve linear system involving lower triangular system matrix. More... | |
| subroutine | pmat::dlinmmt (a, b) |
| Invert linear system with multiple right-hand side vectors. More... | |
| subroutine | pmat::dlinmmtf (a, b, ff) |
| Invert linear system with multiple right-hand side vectors, or flag failure. More... | |
| subroutine | pmat::dlinmvt (a, b) |
| Invert linear system with single right-hand side vector. More... | |
| subroutine | pmat::dlinmvtf (a, b, ff) |
| Invert linear system with single right-hand side vector. More... | |
| subroutine | pmat::dlinuv (a, u) |
| Solve linear system involving upper triangular system matrix. More... | |
| subroutine | pmat::dswpvv (d, e) |
| Swap a pair of double precision vectors. More... | |
| subroutine | pmat::dudlmm (a, b, ipiv) |
| Use l-u factors in A to back-substitute for several rhs in B, using ipiv to define the pivoting permutation used in the l-u decomposition. More... | |
| subroutine | pmat::dudlmv (a, b, ipiv) |
| Use l-u factors in A to back-substitute for 1 rhs in B, using ipiv to define the pivoting permutation used in the l-u decomposition. More... | |
| subroutine | pmat::iinvf (imat, ff) |
| Invert integer square matrix, imat, if possible, but flag ff=.true. More... | |
| subroutine | pmat::sinvl (a) |
| Invert lower triangular matrix in place. More... | |
| subroutine | pmat::sinvmt (a) |
| Invert single precision matrix in place. More... | |
| subroutine | pmat::sinvmtf (a, ff) |
| Invert a single precision matrix in place, or flag if process fails. More... | |
| subroutine | pmat::sinvu (a) |
| Invert the upper triangular matrix in place by transposing, calling invl, and transposing again. More... | |
| subroutine | pmat::sl1lm (a, b) |
| Cholesky, M -> L*U, U(i,j)=L(j,i) More... | |
| subroutine | pmat::sl1lmf (a, b, ff) |
| Cholesky, M -> L*U, U(i,j)=L(j,i) More... | |
| subroutine | pmat::sldlm (a, b, d) |
| Modified Cholesky decompose Q –> L*D*U, U(i,j)=L(j,i) More... | |
| subroutine | pmat::sldlmf (a, b, d, ff) |
| Modified Cholesky decompose Q –> L*D*U, U(i,j)=L(j,i) More... | |
| subroutine | pmat::sldum (a, ipiv, d) |
| Perform L*D*U decomposition, with pivoting, of square matrix. More... | |
| subroutine | pmat::sldumf (a, ipiv, d, ff) |
| Perform l-d-u decomposition of square matrix a in place with pivoting. More... | |
| subroutine | pmat::slinlv (a, u) |
| Solve linear system involving lower triangular system matrix. More... | |
| subroutine | pmat::slinmmt (a, b) |
| Invert linear system with multiple right-hand side vectors. More... | |
| subroutine | pmat::slinmmtf (a, b, ff) |
| Invert linear system with multiple right-hand side vectors, or flag failure. More... | |
| subroutine | pmat::slinmvt (a, b) |
| Invert linear system with single right-hand side vector. More... | |
| subroutine | pmat::slinmvtf (a, b, ff) |
| Invert linear system with single right-hand side vector. More... | |
| subroutine | pmat::slinuv (a, u) |
| Solve linear system involving upper triangular system matrix. More... | |
| subroutine | pmat::sswpvv (d, e) |
| Swap a pair of single precision vectors. More... | |
| subroutine | pmat::sudlmm (a, b, ipiv) |
| Use l-u factors in A to back-substitute for several rhs in B, using ipiv to define the pivoting permutation used in the l-u decomposition. More... | |
| subroutine | pmat::sudlmv (a, b, ipiv) |
| Use l-u factors in A to back-substitute for 1 rhs in B, using ipiv to define the pivoting permutation used in the l-u decomposition. More... | |
Utility routines for various linear inversions and Cholesky.
Definition in file pmat.f90.
|
private |
|
private |
|
private |
| subroutine pmat::cldumf | ( | complex(dpc), dimension(:,:), intent(inout) | a, |
| integer(spi), dimension(:), intent(out) | ipiv, | ||
| complex(dpc), intent(out) | d, | ||
| logical, intent(out) | ff | ||
| ) |
Perform l-d-u decomposition of square matrix a in place with pivoting.
Complex double precision version.
| [in,out] | a | square matrix to be factorized |
| [out] | ipiv | vector encoding the pivoting sequence |
| [out] | d | indicator for possible sign change of determinant |
| [out] | ff | failure flag, set to .true. when determinant of a vanishes. |
|
private |
|
private |
|
private |
|
private |
|
private |
| subroutine pmat::cudlmm | ( | complex(dpc), dimension(:,:), intent(in) | a, |
| complex(dpc), dimension(:,:), intent(inout) | b, | ||
| integer(spi), dimension(:), intent(in) | ipiv | ||
| ) |
Use l-u factors in A to back-substitute for several rhs in B, using ipiv to define the pivoting permutation used in the l-u decomposition.
| [in] | a | square matrix to be factorized |
| [in,out] | b | rt-hand-sides vectors on input, corresponding solutions on return |
| [in] | ipiv | vector encoding the pivoting sequence |
Definition at line 798 of file pmat.f90.
References pietc::c1.
| subroutine pmat::cudlmv | ( | complex(dpc), dimension(:,:), intent(in) | a, |
| complex(dpc), dimension(:), intent(inout) | b, | ||
| integer(spi), dimension(:), intent(in) | ipiv | ||
| ) |
Use l-u factors in A to back-substitute for 1 rhs in B, using ipiv to define the pivoting permutation used in the l-u decomposition.
| [in] | a | square matrix to be factorized |
| [in,out] | b | right-hand side vector on input, corresponding solution on return |
| [in] | ipiv | array encoding the pivoting sequence |
Definition at line 893 of file pmat.f90.
References pietc::c1.
| subroutine pmat::dinvl | ( | real(dp), dimension(:,:), intent(inout) | a | ) |
|
private |
| subroutine pmat::dinvmtf | ( | real(dp), dimension(:,:), intent(inout) | a, |
| logical, intent(out) | ff | ||
| ) |
|
private |
|
private |
| subroutine pmat::dl1lmf | ( | real(dp), dimension(:,:), intent(in) | a, |
| real(dp), dimension(:,:), intent(inout) | b, | ||
| logical, intent(out) | ff | ||
| ) |
|
private |
| subroutine pmat::dldlmf | ( | real(dp), dimension(:,:), intent(in) | a, |
| real(dp), dimension(:,:), intent(inout) | b, | ||
| real(dp), dimension(:), intent(out) | d, | ||
| logical, intent(out) | ff | ||
| ) |
|
private |
| subroutine pmat::dldumf | ( | real(dp), dimension(:,:), intent(inout) | a, |
| integer, dimension(:), intent(out) | ipiv, | ||
| real(dp), intent(out) | d, | ||
| logical(spi), intent(out) | ff | ||
| ) |
Perform l-d-u decomposition of square matrix a in place with pivoting.
Double precision version.
| [in,out] | a | square matrix to be factorized |
| [out] | ipiv | vector encoding the pivoting sequence |
| [out] | d | indicator for possible sign change of determinant |
| [out] | ff | failure flag, set to .true. when determinant of a vanishes. |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
| subroutine pmat::dudlmm | ( | real(dp), dimension(:,:), intent(in) | a, |
| real(dp), dimension(:,:), intent(inout) | b, | ||
| integer(spi), dimension(:), intent(in) | ipiv | ||
| ) |
Use l-u factors in A to back-substitute for several rhs in B, using ipiv to define the pivoting permutation used in the l-u decomposition.
| [in] | a | square matrix to be factorized |
| [in,out] | b | rt-hand-sides vectors on input, corresponding solutions on return |
| [in] | ipiv | vector encoding the pivoting sequence |
Definition at line 764 of file pmat.f90.
References pietc::u1.
| subroutine pmat::dudlmv | ( | real(dp), dimension(:,:), intent(in) | a, |
| real(dp), dimension(:), intent(inout) | b, | ||
| integer(spi), dimension(:), intent(in) | ipiv | ||
| ) |
Use l-u factors in A to back-substitute for 1 rhs in B, using ipiv to define the pivoting permutation used in the l-u decomposition.
| [in] | a | square matrix to be factorized |
| [in,out] | b | right-hand side vector on input, corresponding solution on return |
| [in] | ipiv | array encoding the pivoting sequence |
Definition at line 862 of file pmat.f90.
References pietc::u1.
|
private |
|
private |
|
private |
|
private |
| subroutine pmat::sinvu | ( | real(sp), dimension(:,:), intent(inout) | a | ) |
| subroutine pmat::sl1lm | ( | real(sp), dimension(:,:), intent(in) | a, |
| real(sp), dimension(:,:), intent(inout) | b | ||
| ) |
|
private |
| subroutine pmat::sldlm | ( | real(sp), dimension(:,:), intent(in) | a, |
| real(sp), dimension(:,:), intent(inout) | b, | ||
| real(sp), dimension(:), intent(out) | d | ||
| ) |
|
private |
|
private |
|
private |
Perform l-d-u decomposition of square matrix a in place with pivoting.
Single precision version.
| [in,out] | a | square matrix to be factorized |
| [out] | ipiv | vector encoding the pivoting sequence |
| [out] | d | indicator for possible sign change of determinant |
| [out] | ff | failure flag, set to .true. when determinant of a vanishes. |
| subroutine pmat::slinlv | ( | real(sp), dimension(:,:), intent(in) | a, |
| real(sp), dimension(:), intent(inout) | u | ||
| ) |
| subroutine pmat::slinmmt | ( | real(sp), dimension(:,:), intent(inout) | a, |
| real(sp), dimension(:,:), intent(inout) | b | ||
| ) |
|
private |
|
private |
|
private |
|
private |
|
private |
| subroutine pmat::sudlmm | ( | real(sp), dimension(:,:), intent(in) | a, |
| real(sp), dimension(:,:), intent(inout) | b, | ||
| integer(spi), dimension(:), intent(in) | ipiv | ||
| ) |
Use l-u factors in A to back-substitute for several rhs in B, using ipiv to define the pivoting permutation used in the l-u decomposition.
| [in] | a | L-D-U factorization of linear system matrux |
| [in,out] | b | rt-hand-sides vectors on input, corresponding solutions on return |
| [in] | ipiv | vector encoding the pivoting sequence |
| subroutine pmat::sudlmv | ( | real(sp), dimension(:,:), intent(in) | a, |
| real(sp), dimension(:), intent(inout) | b, | ||
| integer(spi), dimension(:), intent(in) | ipiv | ||
| ) |
Use l-u factors in A to back-substitute for 1 rhs in B, using ipiv to define the pivoting permutation used in the l-u decomposition.
| [in] | a | L-D-U factorization of linear system matrix |
| [in,out] | b | right-hand-side vector on input, corresponding solution on return |
| [in] | ipiv | vector encoding the pivoting sequence |