STBCON(3)
π STBCON(3) β like, the LAPACK triangular-band condition-number girlie β¨
okay so this is a page from the Library Functions Manual (yep, that's the manual name, we're folding it in, you're welcome π«Ά) and it's all about STBCON, a Fortran subroutine from LAPACK that does exactly one thing and does it iconically.
πΈ NAME πΈ
/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/stbcon.f
that's the file, bestie. that's literally the whole NAME section. it's giving "my name is on the roster and that's enough" π
π SYNOPSIS π
Functions/Subroutines
subroutine STBCON (norm, uplo, diag, n, kd, ab, ldab, rcond, work,
iwork, info)
STBCON β¨ (yes it gets its own little line, main character energy fr)
π¦ Function/Subroutine Documentation π¦
subroutine STBCON (character norm, character uplo, character diag, integer
n, integer kd, real, dimension( ldab, * ) ab, integer ldab, real rcond,
real, dimension( * ) work, integer, dimension( * ) iwork, integer info)
STBCON
β¨ Purpose β¨
!> STBCON estimates the reciprocal of the condition number of a triangular band matrix A, in either the 1-norm or the infinity-norm. The norm of A is computed and an estimate is obtained for norm(inv(A)), then the reciprocal of the condition number is computed as RCOND = 1 / ( norm(A) * norm(inv(A)) ). !>
so basically: it looks at your triangular band matrix A, gets the norm of A, gets an estimate of norm(inv(A)) (an estimate, okay, not the whole truth, we're being efficient π
), and then hands you back the reciprocal of the condition number with
RCOND = 1 / ( norm(A) * norm(inv(A)) )
like. that's the whole vibe. one number, so much power π₯
π Parameters π
NORMβNORMisCHARACTER*1. it's the "which flavour of condition number do you want" switch, and here are your options, no substitutions:
!> NORM is CHARACTER*1 !> Specifies whether the 1-norm condition number or the !> infinity-norm condition number is required: !> = '1' or 'O': 1-norm; !> = 'I': Infinity-norm. !>
so '1' or 'O' gets you the 1-norm (yes, both letters, they're the same thing, don't ask π), and 'I' gets you the Infinity-norm.
UPLOβUPLOisCHARACTER*1. which triangle are we even talking about:
!> UPLO is CHARACTER*1 !> = 'U': A is upper triangular; !> = 'L': A is lower triangular. !>
DIAGβDIAGisCHARACTER*1. is your diagonal doing the most or is it just vibing at 1:
!> DIAG is CHARACTER*1 !> = 'N': A is non-unit triangular; !> = 'U': A is unit triangular. !>
NβNisINTEGER. the order of the matrixA. and the rule isN >= 0, periodt.
!> N is INTEGER !> The order of the matrix A. N >= 0. !>
KDβKDisINTEGER. how many superdiagonals or subdiagonals your triangular band matrixAis packing.KD >= 0, no cap.
!> KD is INTEGER !> The number of superdiagonals or subdiagonals of the !> triangular band matrix A. KD >= 0. !>
ABβABisREAL array, dimension (LDAB,N). this is the actual matrix, stored in the firstkd+1rows of the array. thej-th column ofAlives in thej-th column ofAB, and the indexing is like this:
!> AB is REAL array, dimension (LDAB,N) !> The upper or lower triangular band matrix A, stored in the !> first kd+1 rows of the array. The j-th column of A is stored !> in the j-th column of the array AB as follows: !> if UPLO = 'U', AB(kd+1+i-j,j) = A(i,j) for max(1,j-kd)<=i<=j; !> if UPLO = 'L', AB(1+i-j,j) = A(i,j) for j<=i<=min(n,j+kd). !> If DIAG = 'U', the diagonal elements of A are not referenced !> and are assumed to be 1. !>
okay important: ifDIAG = 'U', those diagonal entries ofAare not referenced at all, they're just assumed to be1. so don't be out here stressing about what you put on the diagonal whenDIAG = 'U', it's literally not being read π
LDABβLDABisINTEGER. the leading dimension of the arrayAB, and it has to beLDAB >= KD+1.
!> LDAB is INTEGER !> The leading dimension of the array AB. LDAB >= KD+1. !>
RCONDβRCONDisREAL. the moment we've all been waiting for: the reciprocal of the condition number ofA, computed asRCOND = 1/(norm(A) * norm(inv(A))).
!> RCOND is REAL !> The reciprocal of the condition number of the matrix A, !> computed as RCOND = 1/(norm(A) * norm(inv(A))). !>
WORKβWORKisREAL array, dimension (3*N).
!> WORK is REAL array, dimension (3*N) !>
IWORKβIWORKisINTEGER array, dimension (N).
!> IWORK is INTEGER array, dimension (N) !>
INFOβINFOisINTEGER. the receipts:
!> INFO is INTEGER !> = 0: successful exit !> < 0: if INFO = -i, the i-th argument had an illegal value !>
so 0 means slay, we're done, everything's fine π and if INFO = -i then it's negative and the i-th argument had an illegal value β someone didn't read the constraints above, and honestly? it shows π
π Author π
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
Definition at line 141 of file stbcon.f.
π Author π
Generated automatically by Doxygen for LAPACK from the source code.
and that's the whole page, bestie!! π this footer energy: LAPACK, Version 3.12.0, dated /home/abui...RC/stbcon.f(3) β mwah, iconic, no notes πβ¨π¦
π¦ where this page comes from
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms