SRC/dlatrs3.f(3)
π NAME π
SRC/dlatrs3.f β this is a LAPACK Library Functions Manual page, bestie, and it's all about the dlatrs3 subroutine. Lowkey iconic. β¨
β¨ SYNOPSIS β¨
π Functions/Subroutines π
subroutine dlatrs3 (uplo, trans, diag, normin, n, nrhs, a, lda, x, ldx, scale, cnorm, work, lwork, info)β DLATRS3 solves a triangular system of equations with the scale factors set to prevent overflow. π
πΈ Function/Subroutine Documentation πΈ
subroutine dlatrs3 (character uplo, character trans, character diag,
character normin, integer n, integer nrhs, double precision, dimension(
lda, * ) a, integer lda, double precision, dimension( ldx, * ) x,
integer ldx, double precision, dimension( * ) scale, double precision,
dimension( * ) cnorm, double precision, dimension( * ) work, integer
lwork, integer info)
DLATRS3 solves a triangular system of equations with the scale factors set to prevent overflow. Bestie, it's giving "linear algebra but make it not explode." ππ₯
π₯ Purpose π₯
So DLATRS3 solves one of these triangular systems:
A * X = B * diag(scale) or A**T * X = B * diag(scale)
with scaling to prevent overflow. Here A is an upper or lower triangular matrix, and A**T denotes the 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βCHARACTER*1. Specifies whether the matrixAis upper or lower triangular.= 'U': Upper triangular,= 'L': Lower triangular.TRANSβCHARACTER*1. Specifies the operation applied toA.= 'N': Solve A * x = s*b (No transpose),= 'T': Solve A**T* x = s*b (Transpose),= 'C': Solve A**T* x = s*b (Conjugate transpose = Transpose).DIAGβCHARACTER*1. Specifies whether or not the matrixAis unit triangular.= 'N': Non-unit triangular,= 'U': Unit triangular.NORMINβCHARACTER*1. Specifies whetherCNORMhas been set or not.= 'Y': CNORM contains the column norms on entry,= 'N': CNORM is not set on entry. On exit, the norms will be computed and stored in CNORM.NβINTEGER. The order of the matrixA.N >= 0.NRHSβINTEGER. The number of columns ofX.NRHS >= 0.AβDOUBLE PRECISION array, dimension (LDA,N). The triangular matrixA. IfUPLO = 'U', the leadingnbynupper triangular part of the arrayAcontains the upper triangular matrix, and the strictly lower triangular part ofAis not referenced. IfUPLO = 'L', the leadingnbynlower 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 be1.LDAβINTEGER. The leading dimension of the arrayA.LDA >= max (1,N).XβDOUBLE PRECISION array, dimension (LDX,NRHS). On entry, the right hand sideBof the triangular system. On exit,Xis overwritten by the solution matrixX.LDXβINTEGER. The leading dimension of the arrayX.LDX >= max (1,N).SCALEβ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βDOUBLE PRECISION array, dimension (N). IfNORMIN = 'Y',CNORMis an input argument andCNORM(j)contains the norm of the off-diagonal part of thej-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 thej-th column ofA.WORKβDOUBLE PRECISION array, dimension (MAX(1,LWORK)). On exit, ifINFO = 0,WORK(1)returns the optimal size ofWORK.LWORKβINTEGER. The dimension of the arrayWORK. IfMIN(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βINTEGER.= 0: successful exit,< 0: if INFO = -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 π
Nothing else is tucked under Further Details on this page, bestie β just the heading doing its thing. π¦
Definition at line 232 of file dlatrs3.f.
π Author π
Generated automatically by Doxygen for LAPACK from the source code.
That's the whole page, bestie! π«Ά Signed off with LAPACK Version 3.12.0 and SRC/dlatrs3.f(3) β the footer doesn't give a separate date line beyond that source/version, so no cap. π
β¨
π¦ 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