mfi_ssytrf Subroutine

public pure subroutine mfi_ssytrf(a, uplo, ipiv, info)

Modern interface for ssytrf. See also: mfi_sytrf, f77_sytrf. Computes the factorization of a symmetric matrix using the Bunch-Kaufman diagonal pivoting method

The factorization has the form: - A = UDUT (if uplo='U') or - A = LDLT (if uplo='L')

where U (or L) is a product of permutation and unit upper (lower) triangular matrices, and D is block diagonal with 1-by-1 and 2-by-2 diagonal blocks.

Parameters: - a (inout): On entry, the symmetric matrix A. On exit, the block diagonal matrix D and the multipliers used to obtain the factor U or L. - uplo (in, optional): Specifies whether the upper ('U') or lower ('L') triangular part of the symmetric matrix A is stored. Default: 'U' - ipiv (out, optional): The pivot indices that define the permutation matrix P. If ipiv is not provided, it will be allocated internally. - info (out, optional): Output status: 0 for success, < 0 for illegal argument, > 0 if D(k,k) is exactly zero.

Arguments

Type IntentOptional Attributes Name
real(kind=REAL32), intent(inout) :: a(:,:)
character(len=1), intent(in), optional :: uplo
integer, intent(out), optional, target :: ipiv(:)
integer, intent(out), optional :: info