sytrf_aa#
Functions
-
void ssytrf_aa(const char *uplo, const INT n, f32 *restrict A, const INT lda, INT *restrict ipiv, f32 *restrict work, const INT lwork, INT *info)#
SSYTRF_AA computes the factorization of a real symmetric matrix A using the 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
inuplo'U': Upper triangle of A is stored'L': Lower triangle of A is stored
innThe order of the matrix A.
n>=0.inoutAArray of dimension
(lda,n). On entry, the symmetric matrix A. Ifuplo='U', the leadingn-by-nupper 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 leadingn-by-nlower 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, whenuplo='L'(or'U').inldaThe leading dimension of the array A.
lda>=max(1,n).outipivArray of dimension
n. On exit, it contains the details of the interchanges, i.e., the row and columnkof A were interchanged with the row and columnipiv[k].outworkArray of dimension
max(1,lwork). On exit, ifinfo=0,work[0]returns the optimallwork.inlworkThe length of
work.lwork>=1, ifn<=1, andlwork>=2*n, otherwise. For optimum performancelwork>=n*(1+nb), wherenbis the optimal block size, returned by ILAENV. Iflwork=-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.outinfoinfo=0: successful exitinfo<0: ifinfo=-i, the i-th argument had an illegal value
void ssytrf_aa(
const char* uplo,
const INT n,
f32* restrict A,
const INT lda,
INT* restrict ipiv,
f32* restrict work,
const INT lwork,
INT* info
);
Functions
-
void dsytrf_aa(const char *uplo, const INT n, f64 *restrict A, const INT lda, INT *restrict ipiv, f64 *restrict work, const INT lwork, INT *info)#
DSYTRF_AA computes the factorization of a real symmetric matrix A using the 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
inuplo'U': Upper triangle of A is stored'L': Lower triangle of A is stored
innThe order of the matrix A.
n>=0.inoutAArray of dimension
(lda,n). On entry, the symmetric matrix A. Ifuplo='U', the leadingn-by-nupper 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 leadingn-by-nlower 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, whenuplo='L'(or'U').inldaThe leading dimension of the array A.
lda>=max(1,n).outipivArray of dimension
n. On exit, it contains the details of the interchanges, i.e., the row and columnkof A were interchanged with the row and columnipiv[k].outworkArray of dimension
max(1,lwork). On exit, ifinfo=0,work[0]returns the optimallwork.inlworkThe length of
work.lwork>=1, ifn<=1, andlwork>=2*n, otherwise. For optimum performancelwork>=n*(1+nb), wherenbis the optimal block size, returned by ILAENV. Iflwork=-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.outinfoinfo=0: successful exitinfo<0: ifinfo=-i, the i-th argument had an illegal value
void dsytrf_aa(
const char* uplo,
const INT n,
f64* restrict A,
const INT lda,
INT* restrict ipiv,
f64* restrict work,
const INT lwork,
INT* info
);
Functions
-
void csytrf_aa(const char *uplo, const INT n, c64 *restrict A, const INT lda, INT *restrict ipiv, c64 *restrict work, const INT lwork, INT *info)#
CSYTRF_AA computes the factorization of a complex symmetric matrix A using the 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
inuplo'U': Upper triangle of A is stored'L': Lower triangle of A is stored
innThe order of the matrix A.
n>=0.inoutAComplex array of dimension
(lda,n). On entry, the symmetric matrix A. Ifuplo='U', the leadingn-by-nupper 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 leadingn-by-nlower 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, whenuplo='L'(or'U').inldaThe leading dimension of the array A.
lda>=max(1,n).outipivArray of dimension
n. On exit, it contains the details of the interchanges, i.e., the row and columnkof A were interchanged with the row and columnipiv[k].outworkComplex array of dimension
max(1,lwork). On exit, ifinfo=0,work[0]returns the optimallwork.inlworkThe length of
work.lwork>=1, ifn<=1, andlwork>=2*n, otherwise. For optimum performancelwork>=n*(1+nb), wherenbis the optimal block size, returned by ILAENV. Iflwork=-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.outinfoinfo=0: successful exitinfo<0: ifinfo=-i, the i-th argument had an illegal value
void csytrf_aa(
const char* uplo,
const INT n,
c64* restrict A,
const INT lda,
INT* restrict ipiv,
c64* restrict work,
const INT lwork,
INT* info
);
Functions
-
void zsytrf_aa(const char *uplo, const INT n, c128 *restrict A, const INT lda, INT *restrict ipiv, c128 *restrict work, const INT lwork, INT *info)#
ZSYTRF_AA computes the factorization of a complex symmetric matrix A using the 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
inuplo'U': Upper triangle of A is stored'L': Lower triangle of A is stored
innThe order of the matrix A.
n>=0.inoutAComplex array of dimension
(lda,n). On entry, the symmetric matrix A. Ifuplo='U', the leadingn-by-nupper 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 leadingn-by-nlower 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, whenuplo='L'(or'U').inldaThe leading dimension of the array A.
lda>=max(1,n).outipivArray of dimension
n. On exit, it contains the details of the interchanges, i.e., the row and columnkof A were interchanged with the row and columnipiv[k].outworkComplex array of dimension
max(1,lwork). On exit, ifinfo=0,work[0]returns the optimallwork.inlworkThe length of
work.lwork>=1, ifn<=1, andlwork>=2*n, otherwise. For optimum performancelwork>=n*(1+nb), wherenbis the optimal block size, returned by ILAENV. Iflwork=-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.outinfoinfo=0: successful exitinfo<0: ifinfo=-i, the i-th argument had an illegal value
void zsytrf_aa(
const char* uplo,
const INT n,
c128* restrict A,
const INT lda,
INT* restrict ipiv,
c128* restrict work,
const INT lwork,
INT* info
);