hetrf_aa(3)
π hetrf_aa(3) π
okay so this is the Library Functions Manual page for hetrf_aa(3) β yes, the {he,sy}trf_aa girlies are all here in the synopsis, and this part has the full detailed tea for chetrf_aa, csytrf_aa, and dsytrf_aa. bestie, grab a lil snack, weβre going in πβ¨
β¨ NAME β¨
hetrf_aa β {he,sy}trf_aa: triangular factor
πΈ SYNOPSIS πΈ
Functions
subroutine chetrf_aa (uplo, n, a, lda, ipiv, work, lwork, info)β CHETRF_AAsubroutine csytrf_aa (uplo, n, a, lda, ipiv, work, lwork, info)β CSYTRF_AAsubroutine dsytrf_aa (uplo, n, a, lda, ipiv, work, lwork, info)β DSYTRF_AAsubroutine ssytrf_aa (uplo, n, a, lda, ipiv, work, lwork, info)β SSYTRF_AAsubroutine zhetrf_aa (uplo, n, a, lda, ipiv, work, lwork, info)β ZHETRF_AAsubroutine zsytrf_aa (uplo, n, a, lda, ipiv, work, lwork, info)β ZSYTRF_AA
π¦ Detailed Description π¦
This section is just the heading in the source, bestie β the real function-by-function action is right below π
π Function Documentation π
π chetrf_aa β CHETRF_AA π
Signature
subroutine chetrf_aa (character uplo, integer n, complex, dimension( lda, * ) a, integer lda, integer, dimension( * ) ipiv, complex, dimension( * ) work, integer lwork, integer info)
Purpose
CHETRF_AA computes the factorization of a complex hermitian matrix A using Aasen's algorithm. The form of the factorization is:
A = U**H*T*U or A = L*T*L**H
where U (or L) is a product of permutation and unit upper (lower) triangular matrices, and T is a hermitian tridiagonal matrix.
This is the blocked version of the algorithm, calling Level 3 BLAS. π«Ά
Parameters
UPLO β UPLO is CHARACTER*1
= 'U': Upper triangle of A is stored;= 'L': Lower triangle of A is stored.
N β N is INTEGER
The order of the matrix A. N >= 0.
A β A is COMPLEX array, dimension (LDA,N)
On entry, the hermitian matrix A. If UPLO = 'U', the leading N-by-N upper triangular part of A contains the upper triangular part of the matrix A, and the strictly lower triangular part of A is not referenced. If UPLO = 'L', the leading N-by-N lower triangular part of A contains the lower triangular part of the matrix A, and the strictly upper triangular part of A is not referenced.
On exit, the tridiagonal matrix is stored in the diagonals and the subdiagonals of A just below (or above) the diagonals, and L is stored below (or above) the subdiagonals, when UPLO is 'L' (or 'U').
LDA β LDA is INTEGER
The leading dimension of the array A. LDA >= max(1,N).
IPIV β IPIV is INTEGER array, dimension (N)
On exit, it contains the details of the interchanges, i.e., the row and column k of A were interchanged with the row and column IPIV(k).
WORK β WORK is COMPLEX array, dimension (MAX(1,LWORK))
On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
LWORK β LWORK is INTEGER
The length of WORK. LWORK >= 1, if N <= 1, and LWORK >= 2*N, otherwise. For optimum performance LWORK >= N*(1+NB), where NB is the optimal blocksize, returned by ILAENV.
If LWORK = -1, then a workspace query is assumed; the routine only calculates the optimal size of the WORK array, returns this value as the first entry of the WORK array, and no error message related to LWORK is issued by XERBLA.
INFO β INFO is INTEGER
= 0: successful exit< 0: if INFO = -i, the i-th argument had an illegal value.
Author
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
Definition at line 133 of file chetrf_aa.f.
π csytrf_aa β CSYTRF_AA π
Signature
subroutine csytrf_aa (character uplo, integer n, complex, dimension( lda, * ) a, integer lda, integer, dimension( * ) ipiv, complex, dimension( * ) work, integer lwork, integer info)
Purpose
CSYTRF_AA computes the factorization of a complex symmetric matrix A using Aasen's algorithm. The form of the factorization is:
A = U**T*T*U or A = L*T*L**T
where U (or L) is a product of permutation and unit upper (lower) triangular matrices, and T is a complex symmetric tridiagonal matrix.
This is the blocked version of the algorithm, calling Level 3 BLAS. β¨
Parameters
UPLO β UPLO is CHARACTER*1
= 'U': Upper triangle of A is stored;= 'L': Lower triangle of A is stored.
N β N is INTEGER
The order of the matrix A. N >= 0.
A β A is COMPLEX array, dimension (LDA,N)
On entry, the symmetric matrix A. If UPLO = 'U', the leading N-by-N upper triangular part of A contains the upper triangular part of the matrix A, and the strictly lower triangular part of A is not referenced. If UPLO = 'L', the leading N-by-N lower triangular part of A contains the lower triangular part of the matrix A, and the strictly upper triangular part of A is not referenced.
On exit, the tridiagonal matrix is stored in the diagonals and the subdiagonals of A just below (or above) the diagonals, and L is stored below (or above) the subdiagonals, when UPLO is 'L' (or 'U').
LDA β LDA is INTEGER
The leading dimension of the array A. LDA >= max(1,N).
IPIV β IPIV is INTEGER array, dimension (N)
On exit, it contains the details of the interchanges, i.e., the row and column k of A were interchanged with the row and column IPIV(k).
WORK β WORK is COMPLEX array, dimension (MAX(1,LWORK))
On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
LWORK β LWORK is INTEGER
The length of WORK. LWORK >= MAX(1,2*N). For optimum performance LWORK >= N*(1+NB), where NB is the optimal blocksize.
If LWORK = -1, then a workspace query is assumed; the routine only calculates the optimal size of the WORK array, returns this value as the first entry of the WORK array, and no error message related to LWORK is issued by XERBLA.
INFO β INFO is INTEGER
= 0: successful exit< 0: if INFO = -i, the i-th argument had an illegal value.
Author
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
Definition at line 131 of file csytrf_aa.f.
π dsytrf_aa β DSYTRF_AA π
Signature
subroutine dsytrf_aa (character uplo, integer n, double precision, dimension( lda, * ) a, integer lda, integer, dimension( * ) ipiv, double precision, dimension( * ) work, integer lwork, integer info)
Purpose
DSYTRF_AA computes the factorization of a real symmetric matrix A using Aasen's algorithm. The form of the factorization is:
A = U**T*T*U or A = L*T*L**T
where U (or L) is a product of permutation and unit upper (lower) triangular matrices, and T is a symmetric tridiagonal matrix.
This is the blocked version of the algorithm, calling Level 3 BLAS. π₯
Parameters
UPLO β UPLO is CHARACTER*1
= 'U': Upper triangle of A is stored;= 'L': Lower triangle of A is stored.
N β N is INTEGER
The order of the matrix A. N >= 0.
A β A is DOUBLE PRECISION array, dimension (LDA,N)
On entry, the symmetric matrix A. If UPLO = 'U', the leading N-by-N upper triangular part of A contains the upper triangular part of the matrix A, and the strictly lower triangular part of A is not referenced. If UPLO = 'L', the leading N-by-N lower triangular part of A contains the lower triangular part of the matrix A, and the strictly upper triangular part of A is not referenced.
On exit, the tridiagonal matrix is stored in the diagonals and the subdiagonals of A just below (or above) the diagonals, and L is stored below (or above) the subdiagonals, when UPLO is 'L' (or 'U').
LDA β LDA is INTEGER
The leading dimension of the array A. LDA >= max(1,N).
IPIV β IPIV is INTEGER array, dimension (N)
On exit, it contains the details of the interchanges, i.e., the row and column k of A were interchanged with the row and column IPIV(k).
WORK β WORK is DOUBLE PRECISION array, dimension (MAX(1,LWORK))
On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
LWORK β LWORK is INTEGER
The length of WORK. LWORK >= 1, if N <= 1, and LWORK >= 2*N, otherwise. For optimum performance LWORK >= N*(1+NB), where NB is the optimal blocksize, returned by ILAENV.
If LWORK = -1, then a workspace query is assumed; the routine only calculates the optimal size of the WORK array, returns this value as the first entry of the WORK array, and no error message related to LWORK is issued by XERBLA.
INFO β INFO is INTEGER
= 0: successful exit< 0: if INFO = -i, the i-th argument had an illegal value.
Author
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
Definition at line 133 of file dsytrf_aa.f.
π
ssytrf_aa β the real symmetric one
subroutine ssytrf_aa (character uplo, integer n, real, dimension( lda, * )
a, integer lda, integer, dimension( * ) ipiv, real, dimension( * ) work,
integer lwork, integer info)
β¨ Purpose
SSYTRF_AAcomputes the factorization of a real symmetric matrix A using the Aasen's algorithm. The form of the factorization isfortran A = U**T*T*U or A = L*T*L**T
where U (or L) is a product of permutation and unit upper (lower) triangular matrices, and T is a symmetric tridiagonal matrix.
This is the blocked version of the algorithm, calling Level 3 BLAS. Yes bestie, blocked β it's the glow-up version that goes fast π₯
π Parameters
UPLOβCHARACTER*1. Which triangle of A we're keeping, and we do NOT keep both (she's efficient π ).= 'U': Upper triangle of A is stored;= 'L': Lower triangle of A is stored.
NβINTEGER. The order of the matrix A.N >= 0.AβREAL array, dimension (LDA,N).- On entry: the symmetric matrix A. If
UPLO = 'U', the leading N-by-N upper triangular part of A contains the upper triangular part of the matrix A, and the strictly lower triangular part of A is not referenced. IfUPLO = 'L', the leading N-by-N lower triangular part of A contains the lower triangular part of the matrix A, and the strictly upper triangular part of A is not referenced. - On exit: the tridiagonal matrix is stored in the diagonals and the subdiagonals of A just below (or above) the diagonals, and L is stored below (or above) the subdiagonals, when
UPLOis'L'(or'U'). She transforms π¦
- On entry: the symmetric matrix A. If
LDAβINTEGER. The leading dimension of the array A.LDA >= max(1,N).IPIVβINTEGER array, dimension (N). On exit, it contains the details of the interchanges, i.e., the row and column k of A were interchanged with the row and columnIPIV(k). Receipts of every swap, periodt πWORKβREAL array, dimension (MAX(1,LWORK)). On exit, ifINFO = 0,WORK(1)returns the optimalLWORK.LWORKβINTEGER. The length ofWORK.LWORK >= 1, if N <= 1, and LWORK >= 2*N, otherwise.For optimum performanceLWORK >= N*(1+NB), whereNBis the optimal blocksize, returned byILAENV.- If
LWORK = -1, then a workspace query is assumed; the routine only calculates the optimal size of theWORKarray, returns this value as the first entry of theWORKarray, and no error message related toLWORKis issued byXERBLA. (Sneaky little peek π)
- If
INFOβINTEGER.= 0: successful exit π< 0: ifINFO = -i, the i-th argument had an illegal value. Not her fault, it's yours π
π«Ά Author
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Definition at line 133 of file ssytrf_aa.f.
π¦ zhetrf_aa β the complex hermitian one
subroutine zhetrf_aa (character uplo, integer n, complex*16, dimension( lda,
* ) a, integer lda, integer, dimension( * ) ipiv, complex*16, dimension(
* ) work, integer lwork, integer info)
β¨ Purpose
ZHETRF_AAcomputes the factorization of a complex hermitian matrix A using the Aasen's algorithm. The form of the factorization isfortran A = U**H*T*U or A = L*T*L**H
where U (or L) is a product of permutation and unit upper (lower) triangular matrices, and T is a hermitian tridiagonal matrix.
This is the blocked version of the algorithm, calling Level 3 BLAS. Hermitian AND blocked? main character energy π
π Parameters
UPLOβCHARACTER*1. Same deal as always, pick a triangle.= 'U': Upper triangle of A is stored;= 'L': Lower triangle of A is stored.
NβINTEGER. The order of the matrix A.N >= 0.AβCOMPLEX*16 array, dimension (LDA,N).- On entry: the hermitian matrix A. If
UPLO = 'U', the leading N-by-N upper triangular part of A contains the upper triangular part of the matrix A, and the strictly lower triangular part of A is not referenced. IfUPLO = 'L', the leading N-by-N lower triangular part of A contains the lower triangular part of the matrix A, and the strictly upper triangular part of A is not referenced. - On exit: the tridiagonal matrix is stored in the diagonals and the subdiagonals of A just below (or above) the diagonals, and L is stored below (or above) the subdiagonals, when
UPLOis'L'(or'U').
- On entry: the hermitian matrix A. If
LDAβINTEGER. The leading dimension of the array A.LDA >= max(1,N).IPIVβINTEGER array, dimension (N). On exit, it contains the details of the interchanges, i.e., the row and column k of A were interchanged with the row and columnIPIV(k).WORKβCOMPLEX*16 array, dimension (MAX(1,LWORK)). On exit, ifINFO = 0,WORK(1)returns the optimalLWORK.LWORKβINTEGER. The length ofWORK.LWORK >= 1, if N >= 1, and LWORK >= 2*N, otherwise.For optimum performanceLWORK >= N*(1+NB), whereNBis the optimal blocksize, returned byILAENV.- If
LWORK = -1, then a workspace query is assumed; the routine only calculates the optimal size of theWORKarray, returns this value as the first entry of theWORKarray, and no error message related toLWORKis issued byXERBLA.
- If
INFOβINTEGER.= 0: successful exit β¨< 0: ifINFO = -i, the i-th argument had an illegal value.
Heads up bestie: yes, theLWORKcutoff really does readif N >= 1in this one β that's what the source says, so that's what we're telling you. No cap, don't come for me π
π«Ά Author
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Definition at line 133 of file zhetrf_aa.f.
πΈ zsytrf_aa β the complex symmetric one
subroutine zsytrf_aa (character uplo, integer n, complex*16, dimension( lda,
* ) a, integer lda, integer, dimension( * ) ipiv, complex*16, dimension(
* ) work, integer lwork, integer info)
β¨ Purpose
ZSYTRF_AAcomputes the factorization of a complex symmetric matrix A using the Aasen's algorithm. The form of the factorization isfortran A = U**T*T*U or A = L*T*L**T
where U (or L) is a product of permutation and unit upper (lower) triangular matrices, and T is a complex symmetric tridiagonal matrix.
This is the blocked version of the algorithm, calling Level 3 BLAS. Complex and symmetric β she contains multitudes π§
π Parameters
UPLOβCHARACTER*1. Triangle selection, as per usual.= 'U': Upper triangle of A is stored;= 'L': Lower triangle of A is stored.
NβINTEGER. The order of the matrix A.N >= 0.AβCOMPLEX*16 array, dimension (LDA,N).- On entry: the symmetric matrix A. If
UPLO = 'U', the leading N-by-N upper triangular part of A contains the upper triangular part of the matrix A, and the strictly lower triangular part of A is not referenced. IfUPLO = 'L', the leading N-by-N lower triangular part of A contains the lower triangular part of the matrix A, and the strictly upper triangular part of A is not referenced. - On exit: the tridiagonal matrix is stored in the diagonals and the subdiagonals of A just below (or above) the diagonals, and L is stored below (or above) the subdiagonals, when
UPLOis'L'(or'U').
- On entry: the symmetric matrix A. If
LDAβINTEGER. The leading dimension of the array A.LDA >= max(1,N).IPIVβINTEGER array, dimension (N). On exit, it contains the details of the interchanges, i.e., the row and column k of A were interchanged with the row and columnIPIV(k).WORKβCOMPLEX*16 array, dimension (MAX(1,LWORK)). On exit, ifINFO = 0,WORK(1)returns the optimalLWORK.LWORKβINTEGER. The length ofWORK.LWORK >=MAX(1,2*N). For optimum performanceLWORK >= N*(1+NB), whereNBis the optimal blocksize.- If
LWORK = -1, then a workspace query is assumed; the routine only calculates the optimal size of theWORKarray, returns this value as the first entry of theWORKarray, and no error message related toLWORKis issued byXERBLA.
- If
INFOβINTEGER.= 0: successful exit π< 0: ifINFO = -i, the i-th argument had an illegal value.
π«Ά Author
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Definition at line 131 of file zsytrf_aa.f.
π Author (the meta one)
Generated automatically by Doxygen for LAPACK from the source code. Not a human, just a very diligent little robot π€β¨
That's the whole page, bestie! This lil masterpiece is LAPACK, Version 3.12.0, and it's the hetrf_aa(3) page β go forth and factorize responsibly ππ«ΆπΈ
π¦ where this page comes from
- arch rolling: lapack-doc 3.12.1-2 Β· custom
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms