SRC/ztrrfs.f(3)
π SRC/ztrrfs.f β the ztrrfs glow-up page
okay bestie, you found the manual page for SRC/ztrrfs.f β¨ this is the LAPACK library functions manual, and today's main character is ztrrfs. she's a Fortran subroutine and she's literally here to tell you how wrong your answer is (affectionately) π
β¨ SYNOPSIS β¨
πΈ Functions/Subroutines
subroutine ztrrfs (uplo, trans, diag, n, nrhs, a, lda, b, ldb, x, ldx,
ferr, berr, work, rwork, info)
ZTRRFS
π¦ Function/Subroutine Documentation
subroutine ztrrfs (character uplo, character trans, character diag, integer
n, integer nrhs, complex*16, dimension( lda, * ) a, integer lda,
complex*16, dimension( ldb, * ) b, integer ldb, complex*16, dimension(
ldx, * ) x, integer ldx, double precision, dimension( * ) ferr, double
precision, dimension( * ) berr, complex*16, dimension( * ) work, double
precision, dimension( * ) rwork, integer info)
ZTRRFS
π«Ά PURPOSE
!> !> ZTRRFS provides error bounds and backward error estimates for the !> solution to a system of linear equations with a triangular !> coefficient matrix. !> !> The solution matrix X must be computed by ZTRTRS or some other !> means before entering this routine. ZTRRFS does not do iterative !> refinement because doing so cannot improve the backward error. !>
so like β she does not solve anything for you, bestie π you gotta bring your own X, computed by ZTRTRS or some other means, before you walk in here. and before you ask: no, she does not do iterative refinement, because doing so cannot improve the backward error. she said what she said π
π PARAMETERS
π UPLO
!> UPLO is CHARACTER*1 !> = 'U': A is upper triangular; !> = 'L': A is lower triangular. !>
which triangle of A we're living in β 'U' for upper triangular, 'L' for lower triangular π₯
π§ TRANS
!> TRANS is CHARACTER*1 !> Specifies the form of the system of equations: !> = 'N': A * X = B (No transpose) !> = 'T': AT * X = B (Transpose) !> = 'C': AH * X = B (Conjugate transpose) !>
the shape of the system, no cap:
'N'βA * X = B(no transpose)'T'βA**T * X = B(transpose)'C'βA**H * X = B(conjugate transpose)
π DIAG
!> DIAG is CHARACTER*1 !> = 'N': A is non-unit triangular; !> = 'U': A is unit triangular. !>
is A non-unit triangular ('N') or unit triangular ('U')? pick your fighter β
π
!> N is INTEGER !> The order of the matrix A. N >= 0. !>
the order of the matrix A, and she must be N >= 0 π
π NRHS
!> NRHS is INTEGER !> The number of right hand sides, i.e., the number of columns !> of the matrices B and X. NRHS >= 0. !>
the number of right hand sides β a.k.a. how many columns the matrices B and X have. NRHS >= 0 fr fr.
πΈ A
!> A is COMPLEX*16 array, dimension (LDA,N) !> The triangular matrix A. If UPLO = 'U', the leading N-by-N !> upper triangular part of the array A contains the upper !> triangular matrix, and the strictly lower triangular part of !> A is not referenced. If UPLO = 'L', the leading N-by-N lower !> triangular part of the array A contains the lower triangular !> matrix, and the strictly upper triangular part of A is not !> referenced. If DIAG = 'U', the diagonal elements of A are !> also not referenced and are assumed to be 1. !>
the triangular matrix herself π
if UPLO = 'U', the leading N-by-N upper triangular part of the array A contains the upper triangular matrix, and the strictly lower triangular part of A is not referenced. if UPLO = 'L', the leading N-by-N lower triangular part of the array A contains the lower triangular matrix, and the strictly upper triangular part of A is not referenced. and if DIAG = 'U', the diagonal elements of A are also not referenced and are assumed to be 1. iconic behavior honestly.
π¦ LDA
!> LDA is INTEGER !> The leading dimension of the array A. LDA >= max(1,N). !>
leading dimension of A. LDA >= max(1,N), periodt.
π B
!> B is COMPLEX*16 array, dimension (LDB,NRHS) !> The right hand side matrix B. !>
the right hand side matrix B, dimension (LDB,NRHS) π«Ά
π LDB
!> LDB is INTEGER !> The leading dimension of the array B. LDB >= max(1,N). !>
leading dimension of B. LDB >= max(1,N), iykyk.
β X
!> X is COMPLEX*16 array, dimension (LDX,NRHS) !> The solution matrix X. !>
the solution matrix X, dimension (LDX,NRHS) β and remember, you brought this one yourself π
π₯ LDX
!> LDX is INTEGER !> The leading dimension of the array X. LDX >= max(1,N). !>
leading dimension of X. LDX >= max(1,N), no exceptions.
π§ FERR
!> FERR is DOUBLE PRECISION array, dimension (NRHS) !> The estimated forward error bound for each solution vector !> X(j) (the j-th column of the solution matrix X). !> If XTRUE is the true solution corresponding to X(j), FERR(j) !> is an estimated upper bound for the magnitude of the largest !> element in (X(j) - XTRUE) divided by the magnitude of the !> largest element in X(j). The estimate is as reliable as !> the estimate for RCOND, and is almost always a slight !> overestimate of the true error. !>
the estimated forward error bound for each solution vector X(j) (the j-th column of the solution matrix X) π if XTRUE is the true solution corresponding to X(j), FERR(j) is an estimated upper bound for the magnitude of the largest element in (X(j) - XTRUE) divided by the magnitude of the largest element in X(j). the estimate is as reliable as the estimate for RCOND, and is almost always a slight overestimate of the true error. so she's giving cautious queen energy, not wrong energy π
πΈ BERR
!> BERR is DOUBLE PRECISION array, dimension (NRHS) !> The componentwise relative backward error of each solution !> vector X(j) (i.e., the smallest relative change in !> any element of A or B that makes X(j) an exact solution). !>
the componentwise relative backward error of each solution vector X(j) β i.e., the smallest relative change in any element of A or B that makes X(j) an exact solution π
π WORK
!> WORK is COMPLEX*16 array, dimension (2*N) !>
workspace, COMPLEX*16 array, dimension (2*N) β¨
π«Ά RWORK
!> RWORK is DOUBLE PRECISION array, dimension (N) !>
workspace but make it real, DOUBLE PRECISION array, dimension (N) π
π INFO
!> INFO is INTEGER !> = 0: successful exit !> < 0: if INFO = -i, the i-th argument had an illegal value !>
the vibe check at the end:
= 0: successful exit, slay π< 0: ifINFO = -i, the i-th argument had an illegal value π
π AUTHOR
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
Definition at line 180 of file ztrrfs.f. π¦
π AUTHOR (the meta one)
Generated automatically by Doxygen for LAPACK from the source code. yes, the docs wrote themselves, main character energy fr.
π and that's the whole page bestie β every flag, every bound, every!>comment preserved with love.ztrrfsate and left no crumbs π
~ LAPACK, Version 3.12.0, SRC/ztrrfs.f(3) β mwah, see you in the next manpage π«Άβ¨
π¦ 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