hesv_aa(3)

🌸 hesv_aa(3) β€” Library Functions Manual 🌸

✨ NAME ✨

hesv_aa β€” {he,sy}sv_aa: Aasen

πŸ’– SYNOPSIS πŸ’–

Functions

  • subroutine chesv_aa (uplo, n, nrhs, a, lda, ipiv, b, ldb, work, lwork, info) β€” CHESV_AA computes the solution to system of linear equations A * X = B for HE matrices
  • subroutine csysv_aa (uplo, n, nrhs, a, lda, ipiv, b, ldb, work, lwork, info) β€” CSYSV_AA computes the solution to system of linear equations A * X = B for SY matrices
  • subroutine dsysv_aa (uplo, n, nrhs, a, lda, ipiv, b, ldb, work, lwork, info) β€” DSYSV_AA computes the solution to system of linear equations A * X = B for SY matrices
  • subroutine ssysv_aa (uplo, n, nrhs, a, lda, ipiv, b, ldb, work, lwork, info) β€” SSYSV_AA computes the solution to system of linear equations A * X = B for SY matrices
  • subroutine zhesv_aa (uplo, n, nrhs, a, lda, ipiv, b, ldb, work, lwork, info) β€” ZHESV_AA computes the solution to system of linear equations A * X = B for HE matrices
  • subroutine zsysv_aa (uplo, n, nrhs, a, lda, ipiv, b, ldb, work, lwork, info) β€” ZSYSV_AA computes the solution to system of linear equations A * X = B for SY matrices

🌈 Detailed Description 🌈

πŸ‘‘ Function Documentation πŸ‘‘

πŸ’… chesv_aa

subroutine chesv_aa (character uplo, integer n, integer nrhs, complex, dimension( lda, * ) a, integer lda, integer, dimension( * ) ipiv, complex, dimension( ldb, * ) b, integer ldb, complex, dimension( * ) work, integer lwork, integer info)

CHESV_AA computes the solution to system of linear equations A * X = B for HE matrices

🌟 Purpose 🌟

okay bestie, so CHESV_AA computes the solution to a complex system of linear equations

A * X = B,

where A is an N-by-N Hermitian matrix and X and B are N-by-NRHS matrices.

Aasen's algorithm is the moment here: it factors A as

A = U**H * T * U,  if UPLO = 'U', or
A = L * T * L**H,  if UPLO = 'L',

where U (or L) is a product of permutation and unit upper (lower) triangular matrices, and T is Hermitian and tridiagonal. Then the factored form of A is used to solve the system of equations A * X = B. periodt.

🧸 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 number of linear equations, i.e., the order of the matrix A. N >= 0.

NRHS β€” NRHS is INTEGER. The number of right hand sides, i.e., the number of columns of the matrix B. NRHS >= 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, if INFO = 0, the tridiagonal matrix T and the multipliers used to obtain the factor U or L from the factorization A = U**H*T*U or A = L*T*L**H as computed by CHETRF_AA.

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).

B β€” B is COMPLEX array, dimension (LDB,NRHS). On entry, the N-by-NRHS right hand side matrix B. On exit, if INFO = 0, the N-by-NRHS solution matrix X.

LDB β€” LDB is INTEGER. The leading dimension of the array B. LDB >= max(1,N).

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,3*N-2), and for best performance LWORK >= MAX(1,N*NB), where NB is the optimal blocksize for CHETRF.

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. > 0: if INFO = i, D(i,i) is exactly zero. The factorization has been completed, but the block diagonal matrix D is exactly singular, so the solution could not be computed.

πŸ’œ Author πŸ’œ

  • Univ. of Tennessee
  • Univ. of California Berkeley
  • Univ. of Colorado Denver
  • NAG Ltd.

Definition at line 160 of file chesv_aa.f.


πŸ¦‹ csysv_aa

subroutine csysv_aa (character uplo, integer n, integer nrhs, complex, dimension( lda, * ) a, integer lda, integer, dimension( * ) ipiv, complex, dimension( ldb, * ) b, integer ldb, complex, dimension( * ) work, integer lwork, integer info)

CSYSV_AA computes the solution to system of linear equations A * X = B for SY matrices

🌟 Purpose 🌟

The Purpose block says CSYSV computes the solution to a complex system of linear equations

A * X = B,

where A is an N-by-N symmetric matrix and X and B are N-by-NRHS matrices.

Aasen's algorithm is used to factor A as

A = U**T * T * U,  if UPLO = 'U', or
A = L * T * L**T,  if UPLO = 'L',

where U (or L) is a product of permutation and unit upper (lower) triangular matrices, and T is symmetric tridiagonal. The factored form of A is then used to solve the system of equations A * X = B.

🧸 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 number of linear equations, i.e., the order of the matrix A. N >= 0.

NRHS β€” NRHS is INTEGER. The number of right hand sides, i.e., the number of columns of the matrix B. NRHS >= 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, if INFO = 0, the tridiagonal matrix T and the multipliers used to obtain the factor U or L from the factorization A = U**T*T*U or A = L*T*L**T as computed by CSYTRF.

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).

B β€” B is COMPLEX array, dimension (LDB,NRHS). On entry, the N-by-NRHS right hand side matrix B. On exit, if INFO = 0, the N-by-NRHS solution matrix X.

LDB β€” LDB is INTEGER. The leading dimension of the array B. LDB >= max(1,N).

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(2*N, 3*N-2), and for the best performance, LWORK >= max(1,N*NB), where NB is the optimal blocksize for CSYTRF_AA.

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. > 0: if INFO = i, D(i,i) is exactly zero. The factorization has been completed, but the block diagonal matrix D is exactly singular, so the solution could not be computed.

πŸ’œ Author πŸ’œ

  • Univ. of Tennessee
  • Univ. of California Berkeley
  • Univ. of Colorado Denver
  • NAG Ltd.

Definition at line 160 of file csysv_aa.f.


πŸŽ€ dsysv_aa

subroutine dsysv_aa (character uplo, integer n, integer nrhs, double precision, dimension( lda, * ) a, integer lda, integer, dimension( * ) ipiv, double precision, dimension( ldb, * ) b, integer ldb, double precision, dimension( * ) work, integer lwork, integer info)

DSYSV_AA computes the solution to system of linear equations A * X = B for SY matrices

✨ Purpose ✨

like okay so picture this: DSYSV pulls up to the function and it's literally computing the solution to a real system of linear equations πŸ’…

A * X = B,

where A is an N-by-N symmetric matrix and X and B are N-by-NRHS matrices. iconic behavior, no notes.

Aasen's algorithm is the main character here, and it factors A as

A = U**T * T * U,  if UPLO = 'U', or
A = L * T * L**T,  if UPLO = 'L',

where U (or L) is a product of permutation and unit upper (lower) triangular matrices, and T is symmetric tridiagonal. then the factored form of A gets used to solve the system of equations A * X = B. she does the work so you don't have to 🫢

πŸ’– Parameters

  • UPLO β€” CHARACTER*1, aka the vibe check for which triangle we're storing.
    • = 'U': Upper triangle of A is stored;
    • = 'L': Lower triangle of A is stored.
  • N β€” INTEGER. The number of linear equations, i.e., the order of the matrix A. N >= 0. (zero is allowed, bestie, it's not a problem.)
  • NRHS β€” INTEGER. The number of right hand sides, i.e., the number of columns of the matrix B. NRHS >= 0.
  • A β€” 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. (like, don't even look at the other triangle, she's not invited 🚫) On exit, if INFO = 0, the tridiagonal matrix T and the multipliers used to obtain the factor U or L from the factorization A = U**T*T*U or A = L*T*L**T as computed by DSYTRF.
  • 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 column IPIV(k). it's giving receipts of every swap πŸ”
  • B β€” DOUBLE PRECISION array, dimension (LDB,NRHS). On entry, the N-by-NRHS right hand side matrix B. On exit, if INFO = 0, the N-by-NRHS solution matrix X. glow-up of the century ✨
  • LDB β€” INTEGER. The leading dimension of the array B. LDB >= max(1,N).
  • WORK β€” DOUBLE PRECISION array, dimension (MAX(1,LWORK)). On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
  • LWORK β€” INTEGER. The length of WORK. LWORK >= MAX(1,2*N,3*N-2), and for the best performance, LWORK >= MAX(1,N*NB), where NB is the optimal blocksize for DSYTRF_AA.
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. it's the "just asking, not committing" of LWORK values πŸ™ˆ
  • INFO β€” INTEGER. The report card:
    • = 0: successful exit πŸŽ‰
    • < 0: if INFO = -i, the i-th argument had an illegal value
    • > 0: if INFO = i, D(i,i) is exactly zero. The factorization has been completed, but the block diagonal matrix D is exactly singular, so the solution could not be computed. πŸ’€ so close yet so singular.

🌷 Author

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Definition at line 160 of file dsysv_aa.f.


🌈 ssysv_aa ✨

the signature, verbatim, because she's precise like that:

subroutine ssysv_aa (character uplo, integer n, integer nrhs, real,
    dimension( lda, * ) a, integer lda, integer, dimension( * ) ipiv, real,
    dimension( ldb, * ) b, integer ldb, real, dimension( * ) work, integer
    lwork, integer info)

SSYSV_AA computes the solution to system of linear equations A * X = B for SY matrices. same energy, but make it single precision πŸ“

✨ Purpose

okay so SSYSV computes the solution to a real system of linear equations

A * X = B,

where A is an N-by-N symmetric matrix and X and B are N-by-NRHS matrices.

Aasen's algorithm is used to factor A as

A = U**T * T * U,  if UPLO = 'U', or
A = L * T * L**T,  if UPLO = 'L',

where U (or L) is a product of permutation and unit upper (lower) triangular matrices, and T is symmetric tridiagonal. The factored form of A is then used to solve the system of equations A * X = B. literally the same routine family, matching outfits πŸ‘‘

πŸ’– Parameters

  • UPLO β€” CHARACTER*1
    • = 'U': Upper triangle of A is stored;
    • = 'L': Lower triangle of A is stored.
  • N β€” INTEGER. The number of linear equations, i.e., the order of the matrix A. N >= 0.
  • NRHS β€” INTEGER. The number of right hand sides, i.e., the number of columns of the matrix B. NRHS >= 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. 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, if INFO = 0, the tridiagonal matrix T and the multipliers used to obtain the factor U or L from the factorization A = U**T*T*U or A = L*T*L**T as computed by SSYTRF.
  • 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 column IPIV(k).
  • B β€” REAL array, dimension (LDB,NRHS). On entry, the N-by-NRHS right hand side matrix B. On exit, if INFO = 0, the N-by-NRHS solution matrix X.
  • LDB β€” INTEGER. The leading dimension of the array B. LDB >= max(1,N).
  • WORK β€” REAL array, dimension (MAX(1,LWORK)). On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
  • LWORK β€” INTEGER. The length of WORK. LWORK >= MAX(1,2*N,3*N-2), and for the best performance, LWORK >= MAX(1,N*NB), where NB is the optimal blocksize for SSYTRF_AA.
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 β€” INTEGER
    • = 0: successful exit
    • < 0: if INFO = -i, the i-th argument had an illegal value
    • > 0: if INFO = i, D(i,i) is exactly zero. The factorization has been completed, but the block diagonal matrix D is exactly singular, so the solution could not be computed.

🌷 Author

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Definition at line 160 of file ssysv_aa.f.


πŸ¦‹ zhesv_aa πŸ’œ

signature, character for character:

subroutine zhesv_aa (character uplo, integer n, integer nrhs, complex*16,
    dimension( lda, * ) a, integer lda, integer, dimension( * ) ipiv,
    complex*16, dimension( ldb, * ) b, integer ldb, complex*16, dimension( *
    ) work, integer lwork, integer info)

ZHESV_AA computes the solution to system of linear equations A * X = B for HE matrices. complex numbers, Hermitian, and honestly? kinda iconic 🌈

✨ Purpose

ZHESV_AA computes the solution to a complex system of linear equations

A * X = B,

where A is an N-by-N Hermitian matrix and X and B are N-by-NRHS matrices.

Aasen's algorithm is used to factor A as

A = U**H * T * U,  if UPLO = 'U', or
A = L * T * L**H,  if UPLO = 'L',

where U (or L) is a product of permutation and unit upper (lower) triangular matrices, and T is Hermitian and tridiagonal. The factored form of A is then used to solve the system of equations A * X = B. note the **H, bestie β€” conjugate transpose, not **T, she's fancy ✨

πŸ’– Parameters

  • UPLO β€” CHARACTER*1
    • = 'U': Upper triangle of A is stored;
    • = 'L': Lower triangle of A is stored.
  • N β€” INTEGER. The number of linear equations, i.e., the order of the matrix A. N >= 0.
  • NRHS β€” INTEGER. The number of right hand sides, i.e., the number of columns of the matrix B. NRHS >= 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. 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, if INFO = 0, the tridiagonal matrix T and the multipliers used to obtain the factor U or L from the factorization A = U**H*T*U or A = L*T*L**H as computed by ZHETRF_AA.
  • 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).
  • B β€” B is COMPLEX*16 array, dimension (LDB,NRHS). On entry, the N-by-NRHS right hand side matrix B. On exit, if INFO = 0, the N-by-NRHS solution matrix X.
  • LDB β€” LDB is INTEGER. The leading dimension of the array B. LDB >= max(1,N).
  • WORK β€” WORK is COMPLEX*16 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,3*N-2), and for best performance LWORK >= max(1,N*NB), where NB is the optimal blocksize for ZHETRF_AA.

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. > 0: if INFO = i, D(i,i) is exactly zero. The factorization has been completed, but the block diagonal matrix D is exactly singular, so the solution could not be computed.

πŸ‘‘ Author

  • Univ. of Tennessee
  • Univ. of California Berkeley
  • Univ. of Colorado Denver
  • NAG Ltd.

Definition at line 160 of file zhesv_aa.f.


πŸ¦‹ subroutine zsysv_aa

subroutine zsysv_aa (character uplo, integer n, integer nrhs, complex*16,
    dimension( lda, * ) a, integer lda, integer, dimension( * ) ipiv,
    complex*16, dimension( ldb, * ) b, integer ldb, complex*16, dimension( *
    ) work, integer lwork, integer info)

ZSYSV_AA computes the solution to system of linear equations A * X = B for SY matrices.

✨ Purpose ✨

ZSYSV computes the solution to a complex system of linear equations

A * X = B,

where A is an N-by-N symmetric matrix and X and B are N-by-NRHS matrices.

Aasen's algorithm is used to factor A as

A = U**T * T * U,  if UPLO = 'U', or
A = L * T * L**T,  if UPLO = 'L',

where U (or L) is a product of permutation and unit upper (lower) triangular matrices, and T is symmetric tridiagonal. The factored form of A is then used to solve the system of equations A * X = B.

πŸŽ€ 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 number of linear equations, i.e., the order of the matrix A. N >= 0.
  • NRHS β€” NRHS is INTEGER. The number of right hand sides, i.e., the number of columns of the matrix B. NRHS >= 0.
  • A β€” A is 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. 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, if INFO = 0, the tridiagonal matrix T and the multipliers used to obtain the factor U or L from the factorization A = U**T*T*U or A = L*T*L**T as computed by ZSYTRF.

  • 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).
  • B β€” B is COMPLEX*16 array, dimension (LDB,NRHS). On entry, the N-by-NRHS right hand side matrix B. On exit, if INFO = 0, the N-by-NRHS solution matrix X.
  • LDB β€” LDB is INTEGER. The leading dimension of the array B. LDB >= max(1,N).
  • WORK β€” WORK is COMPLEX*16 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,3*N-2), and for the best performance, LWORK >= MAX(1,N*NB), where NB is the optimal blocksize for ZSYTRF_AA.

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. > 0: if INFO = i, D(i,i) is exactly zero. The factorization has been completed, but the block diagonal matrix D is exactly singular, so the solution could not be computed.

πŸ‘‘ Author

  • Univ. of Tennessee
  • Univ. of California Berkeley
  • Univ. of Colorado Denver
  • NAG Ltd.

Definition at line 160 of file zsysv_aa.f.


Generated automatically by Doxygen for LAPACK from the source code.

That's the whole page, bestie! This source/version moment was brought to you by LAPACK Version 3.12.0, and the page is hesv_aa(3) 🫢✨

πŸ“¦ where this page comes from