ZPBT05(3)
π ZPBT05(3) β like, the hermitian band matrix vibe-check routine
okay so bestie, welcome to the <cyan>zpbt05.f(3)</cyan> page from the Library Functions Manual. buckle up, this one's a tester subroutine and it's lowkey iconic. π¦
π NAME
the actual file lives at:
/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/TESTING/LIN/zpbt05.f
and honestly? that path is giving "I have a very specific home and I know it." π
β¨ SYNOPSIS
Functions/Subroutines
subroutine ZPBT05 (uplo, n, kd, nrhs, ab, ldab, b, ldb, x, ldx, xact,
ldxact, ferr, berr, reslts)
ZPBT05
πΈ Function/Subroutine Documentation
here's the whole glow-up of the signature, no cap:
subroutine ZPBT05 (character uplo, integer n, integer kd, integer nrhs,
complex*16, dimension( ldab, * ) ab, integer ldab, complex*16,
dimension( ldb, * ) b, integer ldb, complex*16, dimension( ldx, * ) x,
integer ldx, complex*16, dimension( ldxact, * ) xact, integer ldxact,
double precision, dimension( * ) ferr, double precision, dimension( * )
berr, double precision, dimension( * ) reslts)
ZPBT05
π₯ Purpose
okay so what does this queen actually do? she tests the error bounds from iterative refinement for the computed solution to a system of equations A*X = B, where A is a Hermitian band matrix. that's the whole assignment. π
!>
!> ZPBT05 tests the error bounds from iterative refinement for the
!> computed solution to a system of equations A*X = B, where A is a
!> Hermitian band matrix.
!>
!> RESLTS(1) = test of the error bound
!> = norm(X - XACT) / ( norm(X) * FERR )
!>
!> A large value is returned if this ratio is not less than one.
!>
!> RESLTS(2) = residual from the iterative refinement routine
!> = the maximum of BERR / ( NZ*EPS + (*) ), where
!> (*) = NZ*UNFL / (min_i (abs(A)*abs(X) +abs(b))_i )
!> and NZ = max. number of nonzeros in any row of A, plus 1
!>
like, if that ratio isn't less than one, you get a large value back. that's the hint, bestie β a big number means something's not slaying. π©
π§ PARAMETERS
every single one of them, in order, no skipping. you're welcome. π«Ά
π 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
so it's literally just a vibe check on which triangle of A we're looking at β 'U' for upper triangular, 'L' for lower triangular. pick one. π
π N
N is INTEGER
The number of rows of the matrices X, B, and XACT, and the
order of the matrix A. N >= 0.
the number of rows in X, B, and XACT, and the order of A. and N >= 0, periodt.
π KD
KD is INTEGER
The number of super-diagonals of the matrix A if UPLO = 'U',
or the number of sub-diagonals if UPLO = 'L'. KD >= 0.
how many super-diagonals A has when UPLO = 'U', or how many sub-diagonals when UPLO = 'L'. KD >= 0, always. β¨
π NRHS
NRHS is INTEGER
The number of columns of the matrices X, B, and XACT.
NRHS >= 0.
how many columns X, B, and XACT are packing. NRHS >= 0 β and yeah, that includes zero, she's flexible. π
π AB
AB is COMPLEX*16 array, dimension (LDAB,N)
The upper or lower triangle of the Hermitian 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).
this is the hermitian band matrix itself, upper or lower triangle, chillin' in the first KD+1 rows of the array. the exact indexing rules are up there β copy them, don't freestyle them. π
π LDAB
LDAB is INTEGER
The leading dimension of the array AB. LDAB >= KD+1.
leading dimension of AB. LDAB >= KD+1. that's the whole rule, no notes. π
π B
B is COMPLEX*16 array, dimension (LDB,NRHS)
The right hand side vectors for the system of linear
equations.
the right-hand side vectors for the system. the "what the answer equals" part. iconic. π
π LDB
LDB is INTEGER
The leading dimension of the array B. LDB >= max(1,N).
leading dimension of B. LDB >= max(1,N). π
π X
X is COMPLEX*16 array, dimension (LDX,NRHS)
The computed solution vectors. Each vector is stored as a
column of the matrix X.
the computed solution vectors β i.e. what the code actually spat out. each one is a column of X. π¦
π LDX
LDX is INTEGER
The leading dimension of the array X. LDX >= max(1,N).
leading dimension of X. LDX >= max(1,N). πΈ
π XACT
XACT is COMPLEX*16 array, dimension (LDX,NRHS)
The exact solution vectors. Each vector is stored as a
column of the matrix XACT.
the exact solution vectors, the ones we're comparing X against. also stored column-by-column. π
π LDXACT
LDXACT is INTEGER
The leading dimension of the array XACT. LDXACT >= max(1,N).
leading dimension of XACT. LDXACT >= max(1,N). β
π FERR
FERR is DOUBLE PRECISION array, dimension (NRHS)
The estimated forward error bounds for each solution vector
X. If XTRUE is the true solution, FERR bounds the magnitude
of the largest entry in (X - XTRUE) divided by the magnitude
of the largest entry in X.
the estimated forward error bounds, one per solution vector. if XTRUE is the true solution, FERR bounds the biggest entry of (X - XTRUE) over the biggest entry of X. math girlies rise. π₯
π BERR
BERR is DOUBLE PRECISION array, dimension (NRHS)
The componentwise relative backward error of each solution
vector (i.e., the smallest relative change in any entry of A
or B that makes X an exact solution).
the componentwise relative backward error for each vector β basically the smallest relative change to any entry of A or B that would make X an exact solution. you love to see it. π
π RESLTS
RESLTS is DOUBLE PRECISION array, dimension (2)
The maximum over the NRHS solution vectors of the ratios:
RESLTS(1) = norm(X - XACT) / ( norm(X) * FERR )
RESLTS(2) = BERR / ( NZ*EPS + (*) )
dimension (2), and it holds the maximum over the NRHS solution vectors of those two ratios. two slots. both of them a whole mood. π
π AUTHOR
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
the whole squad contributed. legendary behavior. π
π Where she's defined
Definition at line 169 of file zpbt05.f.
π AUTHOR
and this second one, bestie, is the meta one:
Generated automatically by Doxygen for LAPACK from the source code.
π‘ fr fr, nobody hand-typed this attribution β Doxygen did it. she's automated and she's unbothered.
that's the whole page, no crumbs left π β¨
later bestie β this was LAPACK, Version 3.12.0, and the file is /home/abui...IN/zpbt05.f(3). go be iconic in your terminal ππ¦π
π¦ 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