STBCON(3)

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

πŸ’… 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 β€” NORM is CHARACTER*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 β€” UPLO is CHARACTER*1. which triangle are we even talking about:
!> UPLO is CHARACTER*1 !> = 'U': A is upper triangular; !> = 'L': A is lower triangular. !>
  • DIAG β€” DIAG is CHARACTER*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 β€” N is INTEGER. the order of the matrix A. and the rule is N >= 0, periodt.
!> N is INTEGER !> The order of the matrix A. N >= 0. !>
  • KD β€” KD is INTEGER. how many superdiagonals or subdiagonals your triangular band matrix A is packing. KD >= 0, no cap.
!> KD is INTEGER !> The number of superdiagonals or subdiagonals of the !> triangular band matrix A. KD >= 0. !>
  • AB β€” AB is REAL array, dimension (LDAB,N). this is the actual matrix, stored in the first kd+1 rows of the array. the j-th column of A lives in the j-th column of AB, 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: if DIAG = 'U', those diagonal entries of A are not referenced at all, they're just assumed to be 1. so don't be out here stressing about what you put on the diagonal when DIAG = 'U', it's literally not being read 😭
  • LDAB β€” LDAB is INTEGER. the leading dimension of the array AB, and it has to be LDAB >= KD+1.
!> LDAB is INTEGER !> The leading dimension of the array AB. LDAB >= KD+1. !>
  • RCOND β€” RCOND is REAL. the moment we've all been waiting for: the reciprocal of the condition number of A, computed as RCOND = 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 β€” WORK is REAL array, dimension (3*N).
!> WORK is REAL array, dimension (3*N) !>
  • IWORK β€” IWORK is INTEGER array, dimension (N).
!> IWORK is INTEGER array, dimension (N) !>
  • INFO β€” INFO is INTEGER. 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