## Documentation for module cp_fm_cholesky

various cholesky decomposition related routines

source: cp_fm_cholesky.F

#### public Subroutines/Functions:

used to replace a symmetric positive def. matrix M with its cholesky decomposition U: M = U^T * U, with U upper triangular
used to replace the cholesky decomposition by the inverse
reduce a matrix pencil A,B to normal form B has to be cholesky decomposed with cp_fm_cholesky_decompose before calling this routine A,B -> inv(U^T)*A*inv(U),1 (AX=BX -> inv(U^T)*A*inv(U)*U*X=U*X hence evecs U*X)
...

#### SUBROUTINEcp_fm_cholesky_decompose(matrix, n, info_out)^

used to replace a symmetric positive def. matrix M with its cholesky decomposition U: M = U^T * U, with U upper triangular

##### Arguments:
 TYPE(cp_fm_type), POINTER :: matrix the matrix to replace with its cholesky decomposition INTEGER, INTENT(in), OPTIONAL :: n the number of row (and columns) of the matrix & (defaults to the min(size(matrix))) INTEGER, INTENT(out), OPTIONAL :: info_out ...

#### SUBROUTINEcp_fm_cholesky_invert(matrix, n, info_out)^

used to replace the cholesky decomposition by the inverse

##### Arguments:
 TYPE(cp_fm_type), POINTER :: matrix the matrix to invert (must be an upper triangular matrix) INTEGER, INTENT(in), OPTIONAL :: n size of the matrix to invert (defaults to the min(size(matrix))) INTEGER, INTENT(out), OPTIONAL :: info_out ...

#### SUBROUTINEcp_fm_cholesky_reduce(matrix, matrixb, itype)^

reduce a matrix pencil A,B to normal form B has to be cholesky decomposed with cp_fm_cholesky_decompose before calling this routine A,B -> inv(U^T)*A*inv(U),1 (AX=BX -> inv(U^T)*A*inv(U)*U*X=U*X hence evecs U*X)

##### Arguments:
 TYPE(cp_fm_type), POINTER :: matrix the symmetric matrix A TYPE(cp_fm_type), POINTER :: matrixb the cholesky decomposition of matrix B INTEGER, OPTIONAL :: itype ...

#### SUBROUTINEcp_fm_cholesky_restore(matrix, neig, matrixb, matrixout, op, pos, transa)^

...

##### Arguments:
 TYPE(cp_fm_type), POINTER :: matrix ... INTEGER, INTENT(in) :: neig ... TYPE(cp_fm_type), POINTER :: matrixb ... TYPE(cp_fm_type), POINTER :: matrixout ... CHARACTER(*), INTENT(in) :: op ... CHARACTER(*), INTENT(in), OPTIONAL :: pos ... CHARACTER(*), INTENT(in), OPTIONAL :: transa ...