sytf2_rk#

Functions

void ssytf2_rk(
    const char*          uplo,
    const INT            n,
          f32*  restrict A,
    const INT            lda,
          f32*  restrict E,
          INT*  restrict ipiv,
          INT*           info
);
void ssytf2_rk(const char *uplo, const INT n, f32 *restrict A, const INT lda, f32 *restrict E, INT *restrict ipiv, INT *info)#

SSYTF2_RK computes the factorization of a real symmetric matrix A using the bounded Bunch-Kaufman (rook) diagonal pivoting method:

A = P*U*D*(U**T)*(P**T) or A = P*L*D*(L**T)*(P**T),

where U (or L) is unit upper (or lower) triangular matrix, U**T (or L**T) is the transpose of U (or L), P is a permutation matrix, P**T is the transpose of P, and D is symmetric and block diagonal with 1-by-1 and 2-by-2 diagonal blocks.

This is the unblocked version of the algorithm, calling Level 2 BLAS.

Parameters

in
uplo

Specifies whether the upper or lower triangular part of the symmetric matrix A is stored: = ‘U’: Upper triangular = ‘L’: Lower triangular

in
n

The order of the matrix A. n >= 0.

inout
A

Double precision array, dimension (lda, n). On entry, the symmetric matrix A. On exit, contains: a) ONLY diagonal elements of the symmetric block diagonal matrix D on the diagonal of A, i.e. D(k,k) = A(k,k); (superdiagonal (or subdiagonal) elements of D are stored on exit in array E), and b) If UPLO = ‘U’: factor U in the superdiagonal part of A. If UPLO = ‘L’: factor L in the subdiagonal part of A.

in
lda

The leading dimension of the array A. lda >= max(1, n).

out
E

Double precision array, dimension (n). On exit, contains the superdiagonal (or subdiagonal) elements of the symmetric block diagonal matrix D.

out
ipiv

Integer array, dimension (n). IPIV describes the permutation matrix P in the factorization.

out
info

  • = 0: successful exit

  • < 0: If info = -k, the k-th argument had an illegal value

  • > 0: If info = k, the matrix A is singular.

Functions

void dsytf2_rk(
    const char*          uplo,
    const INT            n,
          f64*  restrict A,
    const INT            lda,
          f64*  restrict E,
          INT*  restrict ipiv,
          INT*           info
);
void dsytf2_rk(const char *uplo, const INT n, f64 *restrict A, const INT lda, f64 *restrict E, INT *restrict ipiv, INT *info)#

DSYTF2_RK computes the factorization of a real symmetric matrix A using the bounded Bunch-Kaufman (rook) diagonal pivoting method:

A = P*U*D*(U**T)*(P**T) or A = P*L*D*(L**T)*(P**T),

where U (or L) is unit upper (or lower) triangular matrix, U**T (or L**T) is the transpose of U (or L), P is a permutation matrix, P**T is the transpose of P, and D is symmetric and block diagonal with 1-by-1 and 2-by-2 diagonal blocks.

This is the unblocked version of the algorithm, calling Level 2 BLAS.

Parameters

in
uplo

Specifies whether the upper or lower triangular part of the symmetric matrix A is stored: = ‘U’: Upper triangular = ‘L’: Lower triangular

in
n

The order of the matrix A. n >= 0.

inout
A

Double precision array, dimension (lda, n). On entry, the symmetric matrix A. On exit, contains: a) ONLY diagonal elements of the symmetric block diagonal matrix D on the diagonal of A, i.e. D(k,k) = A(k,k); (superdiagonal (or subdiagonal) elements of D are stored on exit in array E), and b) If UPLO = ‘U’: factor U in the superdiagonal part of A. If UPLO = ‘L’: factor L in the subdiagonal part of A.

in
lda

The leading dimension of the array A. lda >= max(1, n).

out
E

Double precision array, dimension (n). On exit, contains the superdiagonal (or subdiagonal) elements of the symmetric block diagonal matrix D.

out
ipiv

Integer array, dimension (n). IPIV describes the permutation matrix P in the factorization.

out
info

  • = 0: successful exit

  • < 0: If info = -k, the k-th argument had an illegal value

  • > 0: If info = k, the matrix A is singular.

Functions

void csytf2_rk(
    const char*          uplo,
    const INT            n,
          c64*  restrict A,
    const INT            lda,
          c64*  restrict E,
          INT*  restrict ipiv,
          INT*           info
);
void csytf2_rk(const char *uplo, const INT n, c64 *restrict A, const INT lda, c64 *restrict E, INT *restrict ipiv, INT *info)#

CSYTF2_RK computes the factorization of a complex symmetric matrix A using the bounded Bunch-Kaufman (rook) diagonal pivoting method:

A = P*U*D*(U**T)*(P**T) or A = P*L*D*(L**T)*(P**T),

where U (or L) is unit upper (or lower) triangular matrix, U**T (or L**T) is the transpose of U (or L), P is a permutation matrix, P**T is the transpose of P, and D is symmetric and block diagonal with 1-by-1 and 2-by-2 diagonal blocks.

This is the unblocked version of the algorithm, calling Level 2 BLAS.

Parameters

in
uplo

Specifies whether the upper or lower triangular part of the symmetric matrix A is stored: = ‘U’: Upper triangular = ‘L’: Lower triangular

in
n

The order of the matrix A. n >= 0.

inout
A

Single complex array, dimension (lda, n). On entry, the symmetric matrix A. On exit, contains: a) ONLY diagonal elements of the symmetric block diagonal matrix D on the diagonal of A, i.e. D(k,k) = A(k,k); (superdiagonal (or subdiagonal) elements of D are stored on exit in array E), and b) If UPLO = ‘U’: factor U in the superdiagonal part of A. If UPLO = ‘L’: factor L in the subdiagonal part of A.

in
lda

The leading dimension of the array A. lda >= max(1, n).

out
E

Single complex array, dimension (n). On exit, contains the superdiagonal (or subdiagonal) elements of the symmetric block diagonal matrix D.

out
ipiv

Integer array, dimension (n). IPIV describes the permutation matrix P in the factorization.

out
info

  • = 0: successful exit

  • < 0: If info = -k, the k-th argument had an illegal value

  • > 0: If info = k, the matrix A is singular.

Functions

void zsytf2_rk(
    const char*          uplo,
    const INT            n,
          c128* restrict A,
    const INT            lda,
          c128* restrict E,
          INT*  restrict ipiv,
          INT*           info
);
void zsytf2_rk(const char *uplo, const INT n, c128 *restrict A, const INT lda, c128 *restrict E, INT *restrict ipiv, INT *info)#

ZSYTF2_RK computes the factorization of a complex symmetric matrix A using the bounded Bunch-Kaufman (rook) diagonal pivoting method:

A = P*U*D*(U**T)*(P**T) or A = P*L*D*(L**T)*(P**T),

where U (or L) is unit upper (or lower) triangular matrix, U**T (or L**T) is the transpose of U (or L), P is a permutation matrix, P**T is the transpose of P, and D is symmetric and block diagonal with 1-by-1 and 2-by-2 diagonal blocks.

This is the unblocked version of the algorithm, calling Level 2 BLAS.

Parameters

in
uplo

Specifies whether the upper or lower triangular part of the symmetric matrix A is stored: = ‘U’: Upper triangular = ‘L’: Lower triangular

in
n

The order of the matrix A. n >= 0.

inout
A

Double complex array, dimension (lda, n). On entry, the symmetric matrix A. On exit, contains: a) ONLY diagonal elements of the symmetric block diagonal matrix D on the diagonal of A, i.e. D(k,k) = A(k,k); (superdiagonal (or subdiagonal) elements of D are stored on exit in array E), and b) If UPLO = ‘U’: factor U in the superdiagonal part of A. If UPLO = ‘L’: factor L in the subdiagonal part of A.

in
lda

The leading dimension of the array A. lda >= max(1, n).

out
E

Double complex array, dimension (n). On exit, contains the superdiagonal (or subdiagonal) elements of the symmetric block diagonal matrix D.

out
ipiv

Integer array, dimension (n). IPIV describes the permutation matrix P in the factorization.

out
info

  • = 0: successful exit

  • < 0: If info = -k, the k-th argument had an illegal value

  • > 0: If info = k, the matrix A is singular.