SRC/zlatrs3.f(3)
πΈ NAME πΈ
okay bestie, welcome to SRC/zlatrs3.f(3) from the Library Functions Manual β this page is literally the main character energy for the zlatrs3 subroutine. π
SRC/zlatrs3.f
β¨ SYNOPSIS β¨
π Functions/Subroutines π
subroutine zlatrs3 (uplo, trans, diag, normin, n, nrhs, a, lda, x, ldx,
scale, cnorm, work, lwork, info)
okay so ZLATRS3 solves a triangular system of equations with the scale factors set to prevent overflow β that's the whole vibe. π«Ά
π Function/Subroutine Documentation π
π subroutine zlatrs3 π
subroutine zlatrs3 (character uplo, character trans, character diag,
character normin, integer n, integer nrhs, complex*16, dimension( lda, *
) a, integer lda, complex*16, dimension( ldx, * ) x, integer ldx, double
precision, dimension( * ) scale, double precision, dimension( * ) cnorm,
double precision, dimension( * ) work, integer lwork, integer info)
ZLATRS3 solves a triangular system of equations with the scale factors set to prevent overflow. no cap, that's the whole point. β¨
π¦ Purpose π¦
The tea is this: ZLATRS3 solves one of the triangular systems
A * X = B * diag(scale), A**T * X = B * diag(scale), or
A**H * X = B * diag(scale)
with scaling to prevent overflow. Here A is an upper or lower triangular matrix, A**T denotes the transpose of A, and A**H denotes the conjugate transpose of A. X and B are n-by-nrhs matrices and scale is an nrhs-element vector of scaling factors. A scaling factor scale(j) is usually less than or equal to 1, chosen such that X(:,j) is less than the overflow threshold. If the matrix A is singular (A(j,j) = 0 for some j), then a non-trivial solution to A*X = 0 is returned. If the system is so badly scaled that the solution cannot be represented as (1/scale(k))*X(:,k), then x(:,k) = 0 and scale(k) is returned. π«Ά
This is a BLAS-3 version of LATRS for solving several right hand sides simultaneously. periodt. π
π Parameters π
UPLOβUPLO is CHARACTER*1. Specifies whether the matrixAis upper or lower triangular.= 'U':Upper triangular= 'L':Lower triangular
TRANSβTRANS is CHARACTER*1. Specifies the operation applied toA.= 'N':SolveA * x = s*b(No transpose)= 'T':SolveA**T* x = s*b(Transpose)= 'C':SolveA**T* x = s*b(Conjugate transpose)
DIAGβDIAG is CHARACTER*1. Specifies whether or not the matrixAis unit triangular.= 'N':Non-unit triangular= 'U':Unit triangular
NORMINβNORMIN is CHARACTER*1. Specifies whetherCNORMhas been set or not.= 'Y':CNORMcontains the column norms on entry= 'N':CNORMis not set on entry. On exit, the norms will be computed and stored inCNORM.
NβN is INTEGER. The order of the matrixA.N >= 0.NRHSβNRHS is INTEGER. The number of columns ofX.NRHS >= 0.AβA is COMPLEX*16 array, dimension (LDA,N). The triangular matrixA. IfUPLO = 'U', the leading n by n upper triangular part of the arrayAcontains the upper triangular matrix, and the strictly lower triangular part ofAis not referenced. IfUPLO = 'L', the leading n by n lower triangular part of the arrayAcontains the lower triangular matrix, and the strictly upper triangular part ofAis not referenced. IfDIAG = 'U', the diagonal elements ofAare also not referenced and are assumed to be 1.LDAβLDA is INTEGER. The leading dimension of the arrayA.LDA >= max (1,N).XβX is COMPLEX*16 array, dimension (LDX,NRHS). On entry, the right hand sideBof the triangular system. On exit,Xis overwritten by the solution matrixX.LDXβLDX is INTEGER. The leading dimension of the arrayX.LDX >= max (1,N).SCALEβSCALE is DOUBLE PRECISION array, dimension (NRHS). The scaling factors(k)is for the triangular systemA * x(:,k) = s(k)*b(:,k)orA**T* x(:,k) = s(k)*b(:,k). IfSCALE = 0, the matrixAis singular or badly scaled. IfA(j,j) = 0is encountered, a non-trivial vectorx(:,k)that is an exact or approximate solution toA*x(:,k) = 0is returned. If the system so badly scaled that solution cannot be presented asx(:,k) * 1/s(k), thenx(:,k) = 0is returned.CNORMβCNORM is DOUBLE PRECISION array, dimension (N). IfNORMIN = 'Y',CNORMis an input argument andCNORM(j)contains the norm of the off-diagonal part of the j-th column ofA. IfTRANS = 'N',CNORM(j)must be greater than or equal to the infinity-norm, and ifTRANS = 'T'or'C',CNORM(j)must be greater than or equal to the 1-norm. IfNORMIN = 'N',CNORMis an output argument andCNORM(j)returns the 1-norm of the offdiagonal part of the j-th column ofA.WORKβWORK is DOUBLE PRECISION array, dimension (LWORK). On exit, ifINFO = 0,WORK(1)returns the optimal size ofWORK.LWORKβLWORK is INTEGER. The dimension of the arrayWORK.
If MIN(N,NRHS) = 0, LWORK >= 1, else
LWORK >= MAX(1, 2*NBA * MAX(NBA, MIN(NRHS, 32)), where
NBA = (N + NB - 1)/NB and NB is the optimal block size.
If LWORK = -1, then a workspace query is assumed; the routine only calculates the optimal dimensions of the WORK array, returns this value as the first entry of the WORK array, and no error message related to LWORK is issued by XERBLA.
INFOβINFO is INTEGER= 0:successful exit< 0:ifINFO = -k, the k-th argument had an illegal value
π Author π
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
π Further Details π
Definition at line 233 of file zlatrs3.f.
π Author π
Generated automatically by Doxygen for LAPACK from the source code.
okay that's the whole page, bestie β signing off with the footer deets: LAPACK Version 3.12.0, source SRC/zlatrs3.f(3). πβ¨
π¦ 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