(git:31b3539)
Loading...
Searching...
No Matches
cp_fm_cholesky Module Reference

various cholesky decomposition related routines More...

Functions/Subroutines

subroutine, public cp_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
subroutine, public cp_fm_cholesky_solve (matrix, matrixb, n, info_out)
 solves A*X = B for X, given the Cholesky decomposition U of the symmetric positive def. matrix A (A = U^T*U, U upper triangular), as produced by cp_fm_cholesky_decompose
subroutine, public cp_fm_cholesky_invert (matrix, n, info_out, work)
 Replace the upper Cholesky factor by the upper triangle of the inverse. When work is provided, expand the upper triangle to a full symmetric matrix.
subroutine, public cp_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)
subroutine, public cp_fm_cholesky_restore (fm_matrix, neig, fm_matrixb, fm_matrixout, op, pos, transa)
 apply Cholesky decomposition op can be "SOLVE" (out = U^-1 * in) or "MULTIPLY" (out = U * in) pos can be "LEFT" or "RIGHT" (U at the left or at the right)

Variables

integer, save, public cholesky_type = 0
integer, save, public dlaf_cholesky_n_min = 0
integer, parameter, public fm_cholesky_type_scalapack = 101
integer, parameter, public fm_cholesky_type_dlaf = 104
integer, parameter, public fm_cholesky_type_default = FM_CHOLESKY_TYPE_SCALAPACK

Detailed Description

various cholesky decomposition related routines

History
09.2002 created [fawzi]
Author
Fawzi Mohamed

Function/Subroutine Documentation

◆ cp_fm_cholesky_decompose()

subroutine, public cp_fm_cholesky::cp_fm_cholesky_decompose ( type(cp_fm_type), intent(in) matrix,
integer, intent(in), optional n,
integer, intent(out), optional info_out )

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

Parameters
matrixthe matrix to replace with its cholesky decomposition
nthe number of row (and columns) of the matrix & (defaults to the min(size(matrix)))
info_out...
History
05.2002 created [JVdV] 12.2002 updated, added n optional parm [fawzi]
Author
Joost

Definition at line 61 of file cp_fm_cholesky.F.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ cp_fm_cholesky_solve()

subroutine, public cp_fm_cholesky::cp_fm_cholesky_solve ( type(cp_fm_type), intent(in) matrix,
type(cp_fm_type), intent(inout) matrixb,
integer, intent(in), optional n,
integer, intent(out), optional info_out )

solves A*X = B for X, given the Cholesky decomposition U of the symmetric positive def. matrix A (A = U^T*U, U upper triangular), as produced by cp_fm_cholesky_decompose

Parameters
matrixthe Cholesky factor U of A, as produced by cp_fm_cholesky_decompose
matrixbon input the right-hand side(s) B, on output the solution(s) X
nthe number of rows (and columns) of matrix (defaults to the min(size(matrix)))
info_out...

Definition at line 126 of file cp_fm_cholesky.F.

Here is the caller graph for this function:

◆ cp_fm_cholesky_invert()

subroutine, public cp_fm_cholesky::cp_fm_cholesky_invert ( type(cp_fm_type), intent(in) matrix,
integer, intent(in), optional n,
integer, intent(out), optional info_out,
type(cp_fm_type), intent(in), optional work )

Replace the upper Cholesky factor by the upper triangle of the inverse. When work is provided, expand the upper triangle to a full symmetric matrix.

Parameters
matrixthe matrix to invert (must be an upper triangular matrix)
nsize of the matrix to invert (defaults to the min(size(matrix)))
info_out...
workoptional workspace of the same size and distribution for expanding the upper triangle
History
05.2002 created [JVdV]
Author
Joost VandeVondele

Definition at line 184 of file cp_fm_cholesky.F.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ cp_fm_cholesky_reduce()

subroutine, public cp_fm_cholesky::cp_fm_cholesky_reduce ( type(cp_fm_type), intent(in) matrix,
type(cp_fm_type), intent(in) matrixb,
integer, optional 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)

Parameters
matrixthe symmetric matrix A
matrixbthe cholesky decomposition of matrix B
itype...
History
05.2002 created [JVdV]
Author
Joost VandeVondele

Definition at line 260 of file cp_fm_cholesky.F.

Here is the caller graph for this function:

◆ cp_fm_cholesky_restore()

subroutine, public cp_fm_cholesky::cp_fm_cholesky_restore ( type(cp_fm_type), intent(in) fm_matrix,
integer, intent(in) neig,
type(cp_fm_type), intent(in) fm_matrixb,
type(cp_fm_type), intent(in) fm_matrixout,
character(len=*), intent(in) op,
character(len=*), intent(in), optional pos,
character(len=*), intent(in), optional transa )

apply Cholesky decomposition op can be "SOLVE" (out = U^-1 * in) or "MULTIPLY" (out = U * in) pos can be "LEFT" or "RIGHT" (U at the left or at the right)

Parameters
fm_matrix...
neig...
fm_matrixb...
fm_matrixout...
op...
pos...
transa...

Definition at line 318 of file cp_fm_cholesky.F.

Here is the caller graph for this function:

Variable Documentation

◆ cholesky_type

integer, save, public cp_fm_cholesky::cholesky_type = 0

Definition at line 37 of file cp_fm_cholesky.F.

◆ dlaf_cholesky_n_min

integer, save, public cp_fm_cholesky::dlaf_cholesky_n_min = 0

Definition at line 40 of file cp_fm_cholesky.F.

◆ fm_cholesky_type_scalapack

integer, parameter, public cp_fm_cholesky::fm_cholesky_type_scalapack = 101

Definition at line 42 of file cp_fm_cholesky.F.

◆ fm_cholesky_type_dlaf

integer, parameter, public cp_fm_cholesky::fm_cholesky_type_dlaf = 104

Definition at line 42 of file cp_fm_cholesky.F.

◆ fm_cholesky_type_default

integer, parameter, public cp_fm_cholesky::fm_cholesky_type_default = FM_CHOLESKY_TYPE_SCALAPACK

Definition at line 44 of file cp_fm_cholesky.F.