TESTING/LIN/ssyt01_3.f(3)

πŸ“¦
version 3.12.1 Β· 2 versions
, in arch rolling

πŸŽ€ TESTING/LIN/ssyt01_3.f(3) πŸŽ€

Straight from the Library Functions Manual, bestie β€” this is the page for the ssyt01_3 Fortran subroutine, and we're gonna read it like a group-chat study session. πŸ’–


✨ NAME ✨

TESTING/LIN/ssyt01_3.f β€” that's the name, and honestly it's giving "test routine with main character energy." It's the ssyt01_3 subroutine page, and yes, we're covering every single detail. No skips. Periodt. πŸ’…


πŸ¦‹ SYNOPSIS πŸ¦‹

Functions/Subroutines

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

That's the whole vibe up top: one subroutine, twelve arguments, and a SSYT01_3 label doing its little iconic thing. 🫢


πŸ’– Function/Subroutine Documentation πŸ’–

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

SSYT01_3 β€” that's the name, loud and clear. πŸ‘‘


🎯 Purpose 🎯

Okay so check it: SSYT01_3 reconstructs a symmetric indefinite matrix A from its block L*D*L' or U*D*U' factorization computed by SSYTRF_RK (or SSYTRF_BK), and then computes the residual

norm( C - A ) / ( N * norm(A) * EPS ),

where C is the reconstructed matrix and EPS is the machine epsilon. It's giving "put the matrix back together and then check the damage." 🧚✨


🧸 Parameters 🧸

  • UPLO β€” UPLO is CHARACTER*1. It specifies whether the upper or lower triangular part of the symmetric matrix A is stored:
    • = 'U': Upper triangular
    • = 'L': Lower triangular
  • N β€” N is INTEGER. The number of rows and columns of the matrix A. Constraint: N >= 0. πŸ“
  • A β€” A is DOUBLE PRECISION array, dimension (LDA,N). The original symmetric matrix A.
  • LDA β€” LDA is INTEGER. The leading dimension of the array A. Constraint: LDA >= max(1,N).
  • AFAC β€” AFAC is DOUBLE PRECISION array, dimension (LDAFAC,N). Diagonal of the block diagonal matrix D and factors U or L as computed by SSYTRF_RK and SSYTRF_BK:
    • a) ONLY diagonal elements of the symmetric 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.
  • LDAFAC β€” LDAFAC is INTEGER. The leading dimension of the array AFAC. Constraint: LDAFAC >= max(1,N).
  • E β€” E is DOUBLE PRECISION array, dimension (N). On entry, contains the superdiagonal (or subdiagonal) elements of the symmetric 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.
  • IPIV β€” IPIV is INTEGER array, dimension (N). The pivot indices from SSYTRF_RK (or SSYTRF_BK). πŸ”₯
  • C β€” C is DOUBLE PRECISION array, dimension (LDC,N).
  • LDC β€” LDC is INTEGER. The leading dimension of the array C. Constraint: LDC >= max(1,N).
  • RWORK β€” RWORK is DOUBLE PRECISION array, dimension (N).
  • RESID β€” RESID is DOUBLE PRECISION. If UPLO = 'L', norm(L*D*L' - A) / ( N * norm(A) * EPS ); if UPLO = 'U', norm(U*D*U' - A) / ( N * norm(A) * EPS ).

πŸ‘‘ Author πŸ‘‘

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

Definition at line 138 of file ssyt01_3.f.

And the second Author note, because Doxygen said so: Generated automatically by Doxygen for LAPACK from the source code. πŸ’«


That's the tea, bestie: this page is LAPACK Version 3.12.0, from TESTING/LIN/ssyt01_3.f(3). Go slay your symmetric indefinite factorization β€” no cap. πŸ’…βœ¨

πŸ“¦ where this page comes from