hetrf_aa_2stage(3)

πŸ’… hetrf_aa_2stage β€” the {he,sy}trf_aa_2stage glow-up: triangular factor πŸŽ€

okay bestie, welcome to the hetrf_aa_2stage(3) page, aka the Library Functions Manual entry for a whole little family of routines that all do the same iconic thing in different flavors. it's giving "one friend group, six personalities" fr fr. ✨


🌸 NAME 🌸

hetrf_aa_2stage β€” {he,sy}trf_aa_2stage: triangular factor. that's the whole name, no cap. πŸ‘‘


πŸ¦‹ SYNOPSIS πŸ¦‹

Functions

here's the whole squad, all six of them, listed exactly like this:

subroutine chetrf_aa_2stage (uplo, n, a, lda, tb, ltb, ipiv, ipiv2,
    work, lwork, info)
    CHETRF_AA_2STAGE
subroutine csytrf_aa_2stage (uplo, n, a, lda, tb, ltb, ipiv, ipiv2,
    work, lwork, info)
    CSYTRF_AA_2STAGE
subroutine dsytrf_aa_2stage (uplo, n, a, lda, tb, ltb, ipiv, ipiv2,
    work, lwork, info)
    DSYTRF_AA_2STAGE
subroutine ssytrf_aa_2stage (uplo, n, a, lda, tb, ltb, ipiv, ipiv2,
    work, lwork, info)
    SSYTRF_AA_2STAGE
subroutine zhetrf_aa_2stage (uplo, n, a, lda, tb, ltb, ipiv, ipiv2,
    work, lwork, info)
    ZHETRF_AA_2STAGE
subroutine zsytrf_aa_2stage (uplo, n, a, lda, tb, ltb, ipiv, ipiv2,
    work, lwork, info)
    ZSYTRF_AA_2STAGE

like, they literally all take the same arguments. it's a uniform. a lewk. πŸ’…


🌈 Detailed Description 🌈

this section is just the heading in the original, bestie β€” the actual tea gets spilled under Function Documentation right below. 🫢

πŸ’– Function Documentation πŸ’–

πŸ“ subroutine chetrf_aa_2stage β€” CHETRF_AA_2STAGE

subroutine chetrf_aa_2stage (character uplo, integer n, complex, dimension(
    lda, * ) a, integer lda, complex, dimension( * ) tb, integer ltb,
    integer, dimension( * ) ipiv, integer, dimension( * ) ipiv2, complex,
    dimension( * ) work, integer lwork, integer info)

✨ Purpose ✨

okay so the actual purpose, and yes it's literally written with these !> comment markers in the source, so here's the vibe:

!>
!> CHETRF_AA_2STAGE computes the factorization of a real hermitian 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 hermitian band matrix with the
!> bandwidth of NB (NB is internally selected and stored in TB( 1 ), and T is
!> LU factorized with partial pivoting).
!>
!> This is the blocked version of the algorithm, calling Level 3 BLAS.
!>

so: Aasen's algorithm, factorization in that A = U**T*T*U / A = L*T*L**T shape, U (or L) is a product of permutation and unit upper (lower) triangular matrices, and T is a hermitian band matrix with bandwidth NB β€” and NB is internally selected and stored in TB( 1 ), with T LU factorized using partial pivoting. this is the blocked version, calling Level 3 BLAS. main character energy. πŸ”₯

πŸŽ€ Parameters πŸŽ€

  • UPLO β€” UPLO is CHARACTER*1. = 'U': the upper triangle of A is stored; = 'L': the lower triangle of A is stored. pick a side, bestie. πŸ™ˆ
  • 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, L is stored below (or above) the subdiagonal blocks, when UPLO is 'L' (or 'U'). πŸ’«

  • LDA β€” LDA is INTEGER. the leading dimension of the array A. LDA >= max(1,N).
  • TB β€” TB is COMPLEX array, dimension (MAX(1,LTB)). on exit, details of the LU factorization of the band matrix. that's where the receipts live. 🧾
  • LTB β€” LTB is INTEGER. the size of the array TB. LTB >= MAX(1,4*N), internally used to select NB such that LTB >= (3*NB+1)*N.
if LTB = -1, then a workspace query is assumed; the routine only calculates the optimal size of LTB, returns this value as the first entry of TB, and no error message related to LTB is issued by XERBLA. so don't @ XERBLA, it's not gonna answer. 😭
  • 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).
  • IPIV2 β€” IPIV2 is INTEGER array, dimension (N). on exit, it contains the details of the interchanges, i.e., the row and column k of T were interchanged with the row and column IPIV(k). (yes, the original text says IPIV(k) here too β€” copying it exactly, don't come for me πŸ’€)
  • WORK β€” WORK is COMPLEX workspace of size (MAX(1,LWORK)).
  • LWORK β€” LWORK is INTEGER. the size of WORK. LWORK >= MAX(1,N), internally used to select NB such that LWORK >= N*NB.
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. same deal, bestie. 🫢
  • INFO β€” INFO is INTEGER:
    • = 0: successful exit πŸŽ‰
    • < 0: if INFO = -i, the i-th argument had an illegal value.
    • > 0: if INFO = i, band LU factorization failed on i-th column. πŸ’€ (she tried, okay?)

πŸ‘‘ Author πŸ‘‘

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

⭐ Definition ⭐

Definition at line 158 of file chetrf_aa_2stage.f.


πŸ¦‹ subroutine csytrf_aa_2stage β€” CSYTRF_AA_2STAGE

subroutine csytrf_aa_2stage (character uplo, integer n, complex, dimension(
    lda, * ) a, integer lda, complex, dimension( * ) tb, integer ltb,
    integer, dimension( * ) ipiv, integer, dimension( * ) ipiv2, complex,
    dimension( * ) work, integer lwork, integer info)

✨ Purpose ✨

!>
!> CSYTRF_AA_2STAGE 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 band matrix with the
!> bandwidth of NB (NB is internally selected and stored in TB( 1 ), and T is
!> LU factorized with partial pivoting).
!>
!> This is the blocked version of the algorithm, calling Level 3 BLAS.
!>

same shape as her sister, but this one's a complex symmetric matrix A and T is a complex symmetric band matrix with bandwidth NB (NB internally selected, stored in TB( 1 ), T LU factorized with partial pivoting). still the blocked version, still calling Level 3 BLAS. consistent queen. 🌸

πŸŽ€ Parameters πŸŽ€

  • UPLO β€” UPLO is CHARACTER*1. = 'U': the upper triangle of A is stored; = 'L': the 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, L is stored below (or above) the subdiagonal blocks, when UPLO is 'L' (or 'U').

  • LDA β€” LDA is INTEGER. the leading dimension of the array A. LDA >= max(1,N).
  • TB β€” TB is COMPLEX array, dimension (LTB). on exit, details of the LU factorization of the band matrix. (note: no MAX(1,...) wrapper on this one, she's built different πŸ’…)
  • LTB β€” LTB is INTEGER. the size of the array TB. LTB >= 4*N, internally used to select NB such that LTB >= (3*NB+1)*N.
if LTB = -1, then a workspace query is assumed; the routine only calculates the optimal size of LTB, returns this value as the first entry of TB, and no error message related to LTB is issued by XERBLA.
  • 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).
  • IPIV2 β€” IPIV2 is INTEGER array, dimension (N). on exit, it contains the details of the interchanges, i.e., the row and column k of T were interchanged with the row and column IPIV(k). (again, exact copy of the original wording 🫢)
  • WORK β€” WORK is COMPLEX workspace of size LWORK.
  • LWORK β€” LWORK is INTEGER. the size of WORK. LWORK >= N, internally used to select NB such that LWORK >= N*NB.
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, band LU factorization failed on i-th column.

πŸ‘‘ Author πŸ‘‘

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

⭐ Definition ⭐

Definition at line 158 of file csytrf_aa_2stage.f.


🧚 subroutine dsytrf_aa_2stage β€” DSYTRF_AA_2STAGE

subroutine dsytrf_aa_2stage (character uplo, integer n, double precision,
    dimension( lda, * ) a, integer lda, double precision, dimension( * ) tb,
    integer ltb, integer, dimension( * ) ipiv, integer, dimension( * )
    ipiv2, double precision, dimension( * ) work, integer lwork, integer
    info)

✨ Purpose ✨

!>
!> DSYTRF_AA_2STAGE 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 band matrix with the
!> bandwidth of NB (NB is internally selected and stored in TB( 1 ), and T is
!> LU factorized with partial pivoting).
!>
!> This is the blocked version of the algorithm, calling Level 3 BLAS.
!>

real symmetric this time, same A = U**T*T*U / A = L*T*L**T situation, U (or L) is a product of permutation and unit upper (lower) triangular matrices, T is a symmetric band matrix with bandwidth NB β€” NB internally selected and stored in TB( 1 ), T LU factorized with partial pivoting. blocked version, Level 3 BLAS. the whole family shares one brain cell and honestly? it works. 🧠✨

πŸŽ€ Parameters πŸŽ€

  • UPLO β€” UPLO is CHARACTER*1. = 'U': the upper triangle of A is stored; = 'L': the lower triangle of A is stored.
  • N β€” N is INTEGER. the order of the matrix A. N >= 0.
  • A β€” and A is where we're picking back up, bestie β€” hold that thought πŸ’œ

A

Ok so this is where you put your matrix, bestie πŸ’–. A is a DOUBLE PRECISION array, dimension (LDA,N).

On entry? The symmetric matrix A lives here. 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, L is stored below (or above) the subdiagonal blocks, when UPLO is 'L' (or 'U'). So she moves out and L moves in ✨

LDA

LDA is INTEGER β€” the leading dimension of the array A. Rule of the day: LDA >= max(1,N). No exceptions, she's strict πŸŽ€

TB

TB is DOUBLE PRECISION array, dimension (MAX(1,LTB)).

On exit, details of the LU factorization of the band matrix. That's it, that's the vibe πŸ¦‹

LTB

LTB is INTEGER β€” the size of the array TB. LTB >= MAX(1,4*N), and it's internally used to select NB such that LTB >= (3*NB+1)*N.

Now the fun bit πŸ‘‘: if LTB = -1, then a workspace query is assumed. The routine only calculates the optimal size of LTB, returns this value as the first entry of TB, and β€” key detail, bestie β€” no error message related to LTB is issued by XERBLA. So no need to clutch your pearls, she's not mad at you πŸ’…

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). Receipts for every swap πŸ”₯

IPIV2

IPIV2 is INTEGER array, dimension (N).

On exit, it contains the details of the interchanges, i.e., the row and column k of T were interchanged with the row and column IPIV2(k). Same energy, but for the band matrix T this time 🌸

WORK

WORK is DOUBLE PRECISION workspace of size (MAX(1,LWORK)). She's just here to hold your stuff πŸ’œ

LWORK

LWORK is INTEGER β€” the size of WORK. LWORK >= MAX(1,N), internally used to select NB such that LWORK >= N*NB.

And 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. Query mode on, drama off 😌

INFO

INFO is INTEGER, and it's literally the vibe check at the end:

  • = 0: successful exit πŸŽ‰
  • < 0: if INFO = -i, the i-th argument had an illegal value. Somebody typed something sus 😭
  • > 0: if INFO = i, band LU factorization failed on i-th column. Not the slay we wanted πŸ’€

Author

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Definition at line 158 of file dsytrf_aa_2stage.f.


πŸ’« ssytrf_aa_2stage

subroutine ssytrf_aa_2stage (character uplo, integer n, real, dimension(
    lda, * ) a, integer lda, real, dimension( * ) tb, integer ltb, integer,
    dimension( * ) ipiv, integer, dimension( * ) ipiv2, real, dimension( * )
    work, integer lwork, integer info)

SSYTRF_AA_2STAGE β€” same iconic routine, single precision edition 🫢

Purpose

SSYTRF_AA_2STAGE 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 band matrix with the bandwidth of NB (NB is internally selected and stored in TB( 1 ), and T is LU factorized with partial pivoting).

This is the blocked version of the algorithm, calling Level 3 BLAS. She's built different fr fr ⚑

Parameters

UPLO

UPLO is CHARACTER*1:

  • = 'U': Upper triangle of A is stored;
  • = 'L': Lower triangle of A is stored.

Pick your fighter πŸ’…

N

N is INTEGER β€” the order of the matrix A. N >= 0.

A

A is 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, L is stored below (or above) the subdiagonal blocks, when UPLO is 'L' (or 'U') πŸ’–

LDA

LDA is INTEGER β€” the leading dimension of the array A. LDA >= max(1,N).

TB

TB is REAL array, dimension (LTB).

On exit, details of the LU factorization of the band matrix. Obsessed with the specificity 🌟

LTB

LTB is INTEGER β€” the size of the array TB. LTB >= MAX(1,4*N), internally used to select NB such that LTB >= (3*NB+1)*N.

If LTB = -1, then a workspace query is assumed; the routine only calculates the optimal size of LTB, returns this value as the first entry of TB, and no error message related to LTB is issued by XERBLA πŸŽ€

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

IPIV2

IPIV2 is INTEGER array, dimension (N).

On exit, it contains the details of the interchanges, i.e., the row and column k of T were interchanged with the row and column IPIV(k).

WORK

WORK is REAL workspace of size (MAX(1,LWORK)).

LWORK

LWORK is INTEGER β€” the size of WORK. LWORK >= MAX(1,N), internally used to select NB such that LWORK >= N*NB.

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, band LU factorization failed on i-th column. Crying in the club rn 😭

Author

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Definition at line 158 of file ssytrf_aa_2stage.f.


πŸ’œ zhetrf_aa_2stage

subroutine zhetrf_aa_2stage (character uplo, integer n, complex*16,
    dimension( lda, * ) a, integer lda, complex*16, dimension( * ) tb,
    integer ltb, integer, dimension( * ) ipiv, integer, dimension( * )
    ipiv2, complex*16, dimension( * ) work, integer lwork, integer info)

ZHETRF_AA_2STAGE β€” now we're in complex double territory, and she is main character energy πŸ‘‘

Purpose

ZHETRF_AA_2STAGE computes the factorization of a double hermitian matrix A using the 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 band matrix with the bandwidth of NB (NB is internally selected and stored in TB( 1 ), and T is LU factorized with partial pivoting).

This is the blocked version of the algorithm, calling Level 3 BLAS. Same blocked energy, now with conjugates πŸ¦‹

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*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, L is stored below (or above) the subdiagonal blocks, when UPLO is 'L' (or 'U') 🌈

LDA

LDA is INTEGER β€” the leading dimension of the array A. LDA >= max(1,N).

TB

TB is COMPLEX*16 array, dimension (MAX(1,LTB)).

On exit, details of the LU factorization of the band matrix. Notes taken, receipts kept πŸ’…

LTB

LTB is INTEGER β€” the size of the array TB. LTB >= MAX(1,4*N), internally used to select NB such that LTB >= (3*NB+1)*N.

If LTB = -1, then a workspace query is assumed; the routine only calculates the optimal size of LTB, returns this value as the first entry of TB, and no error message related to LTB is issued by XERBLA πŸŽ€

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

IPIV2

IPIV2 is INTEGER array, dimension (N).

On exit, it contains the details of the interchanges, i.e., the row and column k of T were interchanged with the row and column IPIV(k).

WORK

WORK is COMPLEX*16 workspace of size (MAX(1,LWORK)).

LWORK

LWORK is INTEGER β€” the size of WORK. LWORK >= MAX(1,N), internally used to select NB such that LWORK >= N*NB.

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 ✨

  • LWORK β€” bestie, this is an INTEGER, and it's literally the size of WORK. It needs LWORK >= MAX(1,N), and it's internally used to select NB such that LWORK >= N*NB ✨

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 β€” an INTEGER, the vibe-check report at the end πŸ’…
    • = 0: successful exit πŸŽ‰
    • < 0: if INFO = -i, the i-th argument had an illegal value 😭
    • > 0: if INFO = i, band LU factorization failed on i-th column πŸ’€

πŸ‘‘ Author

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Definition at line 158 of file zhetrf_aa_2stage.f.


πŸ¦‹ subroutine zsytrf_aa_2stage (ZSYTRF_AA_2STAGE)

subroutine zsytrf_aa_2stage (character uplo, integer n, complex*16,
      dimension( lda, * ) a, integer lda, complex*16, dimension( * ) tb,
      integer ltb, integer, dimension( * ) ipiv, integer, dimension( * )
      ipiv2, complex*16, dimension( * ) work, integer lwork, integer info)

✨ Purpose

Okay so ZSYTRF_AA_2STAGE computes the factorization of a complex symmetric matrix A using the Aasen's algorithm πŸ”₯ The form of the factorization is literally this:

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 band matrix with the bandwidth of NB (NB is internally selected and stored in TB( 1 ), and T is LU factorized with partial pivoting) 🫢

This is the blocked version of the algorithm, calling Level 3 BLAS. Iconic behavior, no cap πŸ’–

πŸŽ€ Parameters

  • UPLO β€” is CHARACTER*1 🌸
    • = 'U': Upper triangle of A is stored πŸ¦‹
    • = 'L': Lower triangle of A is stored πŸ¦‹
  • N β€” is INTEGER, the order of the matrix A. N >= 0 ⭐
  • A β€” is 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, L is stored below (or above) the subdiagonal blocks, when UPLO is 'L' (or 'U') πŸ‘‘

  • LDA β€” is INTEGER, the leading dimension of the array A. LDA >= max(1,N) ✨
  • TB β€” is COMPLEX*16 array, dimension (LTB) πŸŽ€ On exit, details of the LU factorization of the band matrix.
  • LTB β€” is INTEGER, the size of the array TB. LTB >= 4*N, internally used to select NB such that LTB >= (3*NB+1)*N πŸ”₯

If LTB = -1, then a workspace query is assumed; the routine only calculates the optimal size of LTB, returns this value as the first entry of TB, and no error message related to LTB is issued by XERBLA 😭

  • 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).
  • IPIV2 β€” is INTEGER array, dimension (N) 🌈 On exit, it contains the details of the interchanges, i.e., the row and column k of T were interchanged with the row and column IPIV(k).
  • WORK β€” is COMPLEX*16 workspace of size LWORK 🫢
  • LWORK β€” is INTEGER, the size of WORK. LWORK >= N, internally used to select NB such that LWORK >= N*NB 🌟

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 β€” is INTEGER, the final receipts 🧾
    • = 0: successful exit πŸ₯³
    • < 0: if INFO = -i, the i-th argument had an illegal value πŸ™ˆ
    • > 0: if INFO = i, band LU factorization failed on i-th column 😭

🧚 Author

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Definition at line 158 of file zsytrf_aa_2stage.f.


And that's a wrap, bestie πŸ’…βœ¨ This whole thing was generated automatically by Doxygen for LAPACK from the source code β€” LAPACK Version 3.12.0, hetrf_aa_2stage(3), periodt πŸŽ€πŸ«Ά

πŸ“¦ where this page comes from