TESTING/EIG/dsbt21.f(3)
π NAME π
TESTING/EIG/dsbt21.f
Hey bestie π welcome to the TESTING/EIG/dsbt21.f page from the Library Functions Manual β yes, the manual name is folded in right here, and we're about to make this Fortran testing routine make sense. No cap.
β¨ SYNOPSIS β¨
π§ Functions/Subroutines π§
subroutine dsbt21 (uplo, n, ka, ks, a, lda, d, e, u, ldu, work, result)βDSBT21
π§ Function/Subroutine Documentation π§
subroutine dsbt21 (character uplo, integer n, integer ka, integer ks, double
precision, dimension( lda, * ) a, integer lda, double precision,
dimension( * ) d, double precision, dimension( * ) e, double precision,
dimension( ldu, * ) u, integer ldu, double precision, dimension( * )
work, double precision, dimension( 2 ) result)
DSBT21
π Purpose π
Okay so DSBT21 generally checks a decomposition of the form:
A = U S U**T
where **T means transpose, A is symmetric banded, U is orthogonal, and S is diagonal (if KS=0) or symmetric tridiagonal (if KS=1). Obsessed with a clean factorization check, honestly.
Specifically, it computes:
RESULT(1) = | A - U S U**T | / ( |A| n ulp )
RESULT(2) = | I - U U**T | / ( n ulp )
Literally the two glow-up checks: one for the factorization and one for orthogonality. β¨
πΈ Parameters πΈ
UPLOβUPLO is CHARACTER. IfUPLO='U', the upper triangle ofAandVwill be used and the (strictly) lower triangle will not be referenced. IfUPLO='L', the lower triangle ofAandVwill be used and the (strictly) upper triangle will not be referenced.NβN is INTEGER. The size of the matrix. If it is zero,DSBT21does nothing. It must be at least zero.KAβKA is INTEGER. The bandwidth of the matrixA. It must be at least zero. If it is larger thanN-1, thenmax( 0, N-1 )will be used.KSβKS is INTEGER. The bandwidth of the matrixS. It may only be zero or one. If zero, thenSis diagonal, andEis not referenced. If one, thenSis symmetric tri-diagonal.AβA is DOUBLE PRECISION array, dimension (LDA, N). The original (unfactored) matrix. It is assumed to be symmetric, and only the upper (UPLO='U') or only the lower (UPLO='L') will be referenced.LDAβLDA is INTEGER. The leading dimension ofA. It must be at least 1 and at leastmin( KA, N-1 ).DβD is DOUBLE PRECISION array, dimension (N). The diagonal of the (symmetric tri-) diagonal matrixS.EβE is DOUBLE PRECISION array, dimension (N-1). The off-diagonal of the (symmetric tri-) diagonal matrixS.E(1)is the(1,2)and(2,1)element,E(2)is the(2,3)and(3,2)element, etc. Not referenced ifKS=0.UβU is DOUBLE PRECISION array, dimension (LDU, N). The orthogonal matrix in the decomposition, expressed as a dense matrix (i.e., not as a product of Householder transformations, Givens transformations, etc.).LDUβLDU is INTEGER. The leading dimension ofU.LDUmust be at leastNand at least 1.WORKβWORK is DOUBLE PRECISION array, dimension (N**2+N).RESULTβRESULT is DOUBLE PRECISION array, dimension (2). The values computed by the two tests described above. The values are currently limited to1/ulp, to avoid overflow.
π Author π
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
π Definition at line 145 of file dsbt21.f. π
π¦ Author π¦
Generated automatically by Doxygen for LAPACK from the source code.
Okay bye bestie π«Άπ β this whole thing is from LAPACK Version 3.12.0, and it's the TESTING/EIG/dsbt21.f(3) page. Slay, stay orthogonal, and don't let your factorization overflow. π
β¨
π¦ where this page comes from
- arch rolling: lapack-doc 3.12.1-2 Β· custom
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms