laqtr(3)
π laqtr β from the Library Functions Manual β¨
ok so bestie, pull up a chair, because this one is a LAPACK classic and it's honestly kind of iconic π. it lives in the Library Functions Manual, and it's the kind of page you read at 2am while your matrix is being weird. no cap.
πΈ NAME πΈ
laqtr β laqtr: quasi-triangular solve π¦
like, it solves a quasi-triangular system. that's the whole vibe. periodt.
β¨ SYNOPSIS β¨
π Functions π
subroutine dlaqtr (ltran, lreal, n, t, ldt, b, w, scale, x, work, info)β DLAQTR solves a real quasi-triangular system of equations, or a complex quasi-triangular system of special form, in real arithmetic. πsubroutine slaqtr (ltran, lreal, n, t, ldt, b, w, scale, x, work, info)β SLAQTR solves a real quasi-triangular system of equations, or a complex quasi-triangular system of special form, in real arithmetic. π
(they're literally the same girl in two outfits, one is double precision, one is real. iykyk.)
π₯ Detailed Description π₯
so there's a Function Documentation section down here, and honestly it's giving main character energy. two whole routines, fully documented, no crumbs left. let's get into it π
π Function Documentation π
π«Ά subroutine dlaqtr π«Ά
subroutine dlaqtr (logical ltran, logical lreal, integer n, double
precision, dimension( ldt, * ) t, integer ldt, double precision,
dimension( * ) b, double precision w, double precision scale, double
precision, dimension( * ) x, double precision, dimension( * ) work,
integer info)
DLAQTR solves a real quasi-triangular system of equations, or a complex quasi-triangular system of special form, in real arithmetic. slay β¨
β Purpose β
DLAQTR solves the real quasi-triangular system op(T)p = scalec, if LREAL = .TRUE. or the complex quasi-triangular systems op(T + iB)(p+iq) = scale(c+id), if LREAL = .FALSE. in real arithmetic, where T is upper quasi-triangular. If LREAL = .FALSE., then the first diagonal block of T must be 1 by 1, B is the specially structured matrix B = [ b(1) b(2) ... b(n) ] [ w ] [ w ] [ . ] [ w ] op(A) = A or AT, AT denotes the transpose of matrix A. On input, X = [ c ]. On output, X = [ p ]. [ d ] [ q ] This subroutine is designed for the condition number estimation in routine DTRSNA.
like, look at that little staircase matrix B. she's structured. she's special. we love her π
π Parameters π
LTRANβLTRANisLOGICAL. On entry,LTRANspecifies the option of conjugate transpose:= .FALSE.,βop(T+i*B) = T+i*B,= .TRUE.,βop(T+i*B) = (T+i*B)**T.
LREALβLREALisLOGICAL. On entry,LREALspecifies the input matrix structure:= .FALSE.,β the input is complex= .TRUE.,β the input is real
NβNisINTEGER. On entry,Nspecifies the order ofT+i*B.N >= 0. (zero is valid, bestie, don't come for her)TβTisDOUBLE PRECISIONarray, dimension(LDT,N). On entry,Tcontains a matrix in Schur canonical form. IfLREAL = .FALSE., then the first diagonal block ofTmu be 1 by 1. (yes the original says "mu", we don't edit, we respect the canon π)LDTβLDTisINTEGER. The leading dimension of the matrixT.LDT >= max(1,N).BβBisDOUBLE PRECISIONarray, dimension(N). On entry,Bcontains the elements to form the matrixBas described above. IfLREAL = .TRUE.,Bis not referenced. (she's literally not even invited to that party π)WβWisDOUBLE PRECISION. On entry,Wis the diagonal element of the matrixB. IfLREAL = .TRUE.,Wis not referenced.SCALEβSCALEisDOUBLE PRECISION. On exit,SCALEis the scale factor.XβXisDOUBLE PRECISIONarray, dimension(2*N). On entry,Xcontains the right hand side of the system. On exit,Xis overwritten by the solution. she changes outfits mid-scene, iconic π¦WORKβWORKisDOUBLE PRECISIONarray, dimension(N).INFOβINFOisINTEGER. On exit,INFOis set to:0:successful exit.1:the some diagonal 1 by 1 block has been perturbed by a small numberSMINto keep nonsingularity.2:the some diagonal 2 by 2 block has been perturbed by a small number inDLALN2to keep nonsingularity.
β οΈ NOTE: In the interests of speed, this routine does not check the inputs for errors. fr fr, she trusts you completely. do NOT make her regret that π
π Author π
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Definition at line 163 of file dlaqtr.f.
π«Ά subroutine slaqtr π«Ά
subroutine slaqtr (logical ltran, logical lreal, integer n, real, dimension(
ldt, * ) t, integer ldt, real, dimension( * ) b, real w, real scale,
real, dimension( * ) x, real, dimension( * ) work, integer info)
SLAQTR solves a real quasi-triangular system of equations, or a complex quasi-triangular system of special form, in real arithmetic. ate and left no crumbs β¨
β Purpose β
SLAQTR solves the real quasi-triangular system op(T)p = scalec, if LREAL = .TRUE. or the complex quasi-triangular systems op(T + iB)(p+iq) = scale(c+id), if LREAL = .FALSE. in real arithmetic, where T is upper quasi-triangular. If LREAL = .FALSE., then the first diagonal block of T must be 1 by 1, B is the specially structured matrix B = [ b(1) b(2) ... b(n) ] [ w ] [ w ] [ . ] [ w ] op(A) = A or AT, AT denotes the transpose of matrix A. On input, X = [ c ]. On output, X = [ p ]. [ d ] [ q ] This subroutine is designed for the condition number estimation in routine STRSNA.
same energy, single precision edition. she's the little sister and she is ALSO that girl πΈ
π Parameters π
LTRANβLTRANisLOGICAL. On entry,LTRANspecifies the option of conjugate transpose:= .FALSE.,βop(T+i*B) = T+i*B,= .TRUE.,βop(T+i*B) = (T+i*B)**T.
LREALβLREALisLOGICAL. On entry,LREALspecifies the input matrix structure:= .FALSE.,β the input is complex= .TRUE.,β the input is real
NβNisINTEGER. On entry,Nspecifies the order ofT+i*B.N >= 0.TβTisREALarray, dimension(LDT,N). On entry,Tcontains a matrix in Schur canonical form. IfLREAL = .FALSE., then the first diagonal block ofTmust be 1 by 1. (she spells it right, ok, we're not comparing them)LDTβLDTisINTEGER. The leading dimension of the matrixT.LDT >= max(1,N).BβBisREALarray, dimension(N). On entry,Bcontains the elements to form the matrixBas described above. IfLREAL = .TRUE.,Bis not referenced.WβWisREAL. On entry,Wis the diagonal element of the matrixB. IfLREAL = .TRUE.,Wis not referenced.SCALEβSCALEisREAL. On exit,SCALEis the scale factor.XβXisREALarray, dimension(2*N). On entry,Xcontains the right hand side of the system. On exit,Xis overwritten by the solution.WORKβWORKisREALarray, dimension(N).INFOβINFOisINTEGER. On exit,INFOis set to:0:successful exit.1:the some diagonal 1 by 1 block has been perturbed by a small numberSMINto keep nonsingularity.2:the some diagonal 2 by 2 block has been perturbed by a small number inSLALN2to keep nonsingularity.
β οΈ NOTE: In the interests of speed, this routine does not check the inputs for errors. same disclaimer, same trust issues, same speed demon energy π₯
π Author π
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Definition at line 163 of file slaqtr.f.
π Author π
Generated automatically by Doxygen for LAPACK from the source code.
π§ and that's the whole page bestie. you now know more about quasi-triangular solves than like 99% of the group chat. go forth and estimate condition numbers responsibly π
LAPACK Β· Version 3.12.0 Β· laqtr(3) π mwah, that's the sign-off, love u, bye π«Ά
π¦ 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