CHET01_3(3)

πŸ“¦ version 3.12.0, in opensuse-leap 16.0

πŸ’– CHET01_3(3) β€” like, the chet01_3.f manual page, bestie πŸ’–

okay so this is the manual page for /home/abui.../chet01_3.f(3) β€” yes that's the header, we're folding it in, don't @ me β€” and it lives in the Library Functions Manual section, and honestly? it's giving LAPACK test-suite main character energy. let's get into it 🫢


✨ NAME ✨

/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/TESTING/LIN/chet01_3.f

like, that's the whole name. it's a whole path. she's extra but she's iconic πŸ’…


🌸 SYNOPSIS 🌸

Functions/Subroutines

subroutine CHET01_3 (uplo, n, a, lda, afac, ldafac, e, ipiv, c, ldc,
    rwork, resid)

CHET01_3 β€” that's her πŸ’–


πŸ¦‹ Function/Subroutine Documentation πŸ¦‹

subroutine CHET01_3 (character uplo, integer n, complex, dimension( lda, * )
    a, integer lda, complex, dimension( ldafac, * ) afac, integer ldafac,
    complex, dimension( * ) e, integer, dimension( * ) ipiv, complex,
    dimension( ldc, * ) c, integer ldc, real, dimension( * ) rwork, real
    resid)

CHET01_3

πŸŽ€ Purpose πŸŽ€

!> !> CHET01_3 reconstructs a Hermitian indefinite matrix A from its !> block L*D*L' or U*D*U' factorization computed by CHETRF_RK !> (or CHETRF_BK) and computes the residual !> norm( C - A ) / ( N * norm(A) * EPS ), !> where C is the reconstructed matrix and EPS is the machine epsilon. !>

no cap, that's the whole vibe: rebuild A from the L*D*L' or U*D*U' factorization that CHETRF_RK (or CHETRF_BK) gave you, then check how far C drifted from A with that residual formula. slay 🧚


πŸ’œ Parameters πŸ’œ

UPLO

!> UPLO is CHARACTER*1 !> Specifies whether the upper or lower triangular part of the !> Hermitian matrix A is stored: !> = 'U': Upper triangular !> = 'L': Lower triangular !>

character of length one, and she picks which triangle of A we're storing β€” 'U' for upper, 'L' for lower. πŸ’«

N

!> N is INTEGER !> The number of rows and columns of the matrix A. N >= 0. !>

integer, rows and columns of A (square, obviously), and N >= 0. periodt.

A

!> A is COMPLEX*16 array, dimension (LDA,N) !> The original Hermitian matrix A. !>

COMPLEX*16 array, dimension (LDA,N) β€” this is the original Hermitian matrix A, before anything got factored. the before picture πŸ“Έ

LDA

!> LDA is INTEGER !> The leading dimension of the array A. LDA >= max(1,N) !>

the leading dimension of A, and she requires LDA >= max(1,N). respect the constraint bestie 😀

AFAC

!> AFAC is COMPLEX array, dimension (LDAFAC,N) !> Diagonal of the block diagonal matrix D and factors U or L !> as computed by CHETRF_RK and CHETRF_BK: !> a) ONLY diagonal elements of the Hermitian block diagonal !> matrix D on the diagonal of A, i.e. D(k,k) = A(k,k); !> (superdiagonal (or subdiagonal) elements of D !> should be provided on entry 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. !>

COMPLEX array, dimension (LDAFAC,N), and she's carrying the diagonal of the block diagonal matrix D plus the factors U or L, exactly as CHETRF_RK and CHETRF_BK computed them. two little sub-points, don't skip 'em:

  • a) ONLY the diagonal elements of the Hermitian block diagonal matrix D go on the diagonal of A, i.e. D(k,k) = A(k,k); the superdiagonal (or subdiagonal) elements of D should be provided on entry in array E, okay? don't mix them up πŸ™ˆ
  • b) if UPLO = 'U': factor U in the superdiagonal part of A. if UPLO = 'L': factor L in the subdiagonal part of A.

LDAFAC

!> LDAFAC is INTEGER !> The leading dimension of the array AFAC. !> LDAFAC >= max(1,N). !>

integer, leading dimension of AFAC, and LDAFAC >= max(1,N). she said boundaries πŸ’…

E

!> E is COMPLEX array, dimension (N) !> On entry, contains the superdiagonal (or subdiagonal) !> elements of the Hermitian block diagonal matrix D !> with 1-by-1 or 2-by-2 diagonal blocks, where !> If UPLO = 'U': E(i) = D(i-1,i),i=2:N, E(1) not referenced; !> If UPLO = 'L': E(i) = D(i+1,i),i=1:N-1, E(N) not referenced. !>

COMPLEX array, dimension (N). on entry she holds the superdiagonal (or subdiagonal) elements of the Hermitian block diagonal matrix D with 1-by-1 or 2-by-2 diagonal blocks, and the indexing goes like:

  • if UPLO = 'U': E(i) = D(i-1,i),i=2:N, E(1) not referenced;
  • if UPLO = 'L': E(i) = D(i+1,i),i=1:N-1, E(N) not referenced.

not E(1) and not E(N) β€” one of them just doesn't get invited to the function, depending on UPLO 😭

IPIV

!> IPIV is INTEGER array, dimension (N) !> The pivot indices from CHETRF_RK (or CHETRF_BK). !>

INTEGER array, dimension (N) β€” the pivot indices straight from CHETRF_RK (or CHETRF_BK). the receipts πŸ”₯

C

!> C is COMPLEX array, dimension (LDC,N) !>

COMPLEX array, dimension (LDC,N). that's it. that's the note. she's mysterious like that ✨

LDC

!> LDC is INTEGER !> The leading dimension of the array C. LDC >= max(1,N). !>

integer, leading dimension of C, and yes: LDC >= max(1,N) πŸŽ€

RWORK

!> RWORK is REAL array, dimension (N) !>

REAL array, dimension (N). real ones only πŸ’–

RESID

!> RESID is REAL !> If UPLO = 'L', norm(L*D*L' - A) / ( N * norm(A) * EPS ) !> If UPLO = 'U', norm(U*D*U' - A) / ( N * norm(A) * EPS ) !>

REAL, and this is the actual tea β€” the residual:

  • if UPLO = 'L': norm(L*D*L' - A) / ( N * norm(A) * EPS )
  • if UPLO = 'U': norm(U*D*U' - A) / ( N * norm(A) * EPS )

lowkey the most important number in the whole page ngl πŸ‘‘


πŸ‘‘ Author πŸ‘‘

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

the whole squad co-signed this one 🫢

🌈 Definition at line 139 of file chet01_3.f 🌈

like, line 139, file chet01_3.f. iykyk ⭐


πŸ’€ Author πŸ’€

Generated automatically by Doxygen for LAPACK from the source code.

(not a human, a robot did this, and honestly she ate πŸ€–βœ¨)


and that's the whole page, bestie β€” no notes, no skipped options, nothing dropped. πŸ’œ

🌸 cute little sign-off: this is LAPACK, Version 3.12.0, and the footer path/date situation is /home/abui.../chet01_3.f(3). bye bestie, go reconstruct some Hermitian matrices πŸ’…πŸŽ€πŸ¦‹
πŸ“¦ where this page comes from