ZGTTS2(3)
πΈ NAME
okay so bestie, this page is literally all about zgtts2.f β like, the actual file lives at:
/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/zgtts2.f
yes that's a whole path, no I'm not gonna shorten it, it's giving absolute energy π
β¨ SYNOPSIS β¨
π«Ά Functions/Subroutines
so here's the subroutine, look at her:
subroutine ZGTTS2 (itrans, n, nrhs, dl, d, du, du2, ipiv, b, ldb)
and what she does?? ZGTTS2 solves a system of linear equations with a tridiagonal matrix using the LU factorization computed by sgttrf. like, that's her whole job and she ate π
π₯ Function/Subroutine Documentation π₯
π subroutine ZGTTS2
okay here's the full signature with all the types spelled out, character for character, because we do NOT mess with types in this house:
subroutine ZGTTS2 (integer itrans, integer n, integer nrhs, complex*16,
dimension( * ) dl, complex*16, dimension( * ) d, complex*16, dimension(
* ) du, complex*16, dimension( * ) du2, integer, dimension( * ) ipiv,
complex*16, dimension( ldb, * ) b, integer ldb)
and again, just so we're clear: ZGTTS2 solves a system of linear equations with a tridiagonal matrix using the LU factorization computed by sgttrf. β¨
π Purpose
okay so the actual mission statement, direct from the source vibes:
!>
!> ZGTTS2 solves one of the systems of equations
!> A * X = B, A**T * X = B, or A**H * X = B,
!> with a tridiagonal matrix A using the LU factorization computed
!> by ZGTTRF.
!>
three systems, three moods, one tridiagonal queen π (and yes, note that she's working off the LU factorization computed by ZGTTRF β that's the capitalization in the Purpose block, and we respect it π«Ά)
π Parameters
β ITRANS
!> ITRANS is INTEGER
!> Specifies the form of the system of equations.
!> = 0: A * X = B (No transpose)
!> = 1: A**T * X = B (Transpose)
!> = 2: A**H * X = B (Conjugate transpose)
!>
ITRANS is an INTEGER and it picks which form of the system you want:
= 0:A * X = Bβ no transpose, the chill option π= 1:A**T * X = Bβ transpose π«= 2:A**H * X = Bβ conjugate transpose, the main character option π₯
β N
!> N is INTEGER
!> The order of the matrix A.
!>
N is an INTEGER β the order of the matrix A. that's it, that's the whole vibe.
β NRHS
!> NRHS is INTEGER
!> The number of right hand sides, i.e., the number of columns
!> of the matrix B. NRHS >= 0.
!>
NRHS is an INTEGER β how many right hand sides, AKA how many columns the matrix B has. and listen: NRHS >= 0. zero is allowed, negative is NOT the move π
β DL
!> DL is COMPLEX*16 array, dimension (N-1)
!> The (n-1) multipliers that define the matrix L from the
!> LU factorization of A.
!>
DL is a COMPLEX*16 array, dimension (N-1) β the (n-1) multipliers that build the matrix L from the LU factorization of A. lowkey iconic π¦
β D
!> D is COMPLEX*16 array, dimension (N)
!> The n diagonal elements of the upper triangular matrix U from
!> the LU factorization of A.
!>
D is a COMPLEX*16 array, dimension (N) β the n diagonal elements of that upper triangular matrix U, straight from the LU factorization of A. periodt π
β DU
!> DU is COMPLEX*16 array, dimension (N-1)
!> The (n-1) elements of the first super-diagonal of U.
!>
DU is a COMPLEX*16 array, dimension (N-1) β the (n-1) elements of the first super-diagonal of U. first one, don't get it twisted πΈ
β DU2
!> DU2 is COMPLEX*16 array, dimension (N-2)
!> The (n-2) elements of the second super-diagonal of U.
!>
DU2 is a COMPLEX*16 array, dimension (N-2) β the (n-2) elements of the second super-diagonal of U. yes it's N-2 not N-1, she's built different π
β IPIV
!> IPIV is INTEGER array, dimension (N)
!> The pivot indices; for 1 <= i <= n, row i of the matrix was
!> interchanged with row IPIV(i). IPIV(i) will always be either
!> i or i+1; IPIV(i) = i indicates a row interchange was not
!> required.
!>
IPIV is an INTEGER array, dimension (N) β the pivot indices, bestie. for 1 <= i <= n, row i of the matrix was interchanged with row IPIV(i). and here's the tea: IPIV(i) will always be either i or i+1. if IPIV(i) = i, that means no row interchange was needed at all π«Ά
β B
!> B is COMPLEX*16 array, dimension (LDB,NRHS)
!> On entry, the matrix of right hand side vectors B.
!> On exit, B is overwritten by the solution vectors X.
!>
B is a COMPLEX*16 array, dimension (LDB,NRHS) β on entry, it's the matrix of right hand side vectors B. on exit?? β οΈ B is overwritten by the solution vectors X β οΈ so don't come crying if your original B is gone, that's literally the deal π
β LDB
!> LDB is INTEGER
!> The leading dimension of the array B. LDB >= max(1,N).
!>
LDB is an INTEGER β the leading dimension of the array B. and the rule is LDB >= max(1,N). respect the constraint or the vibes will be off π
π§ Author
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
and she's defined at line 127 of file zgtts2.f. π
π Author
this whole page was generated automatically by Doxygen for LAPACK from the source code. like, a robot wrote it and honestly? she understood the assignment β¨
π that's the whole page bestie! go forth, pass the rightITRANS, keepLDB >= max(1,N), and remember yourBgets clapped by the solution on exit. no cap. π
LAPACK β Version 3.12.0 π and the file is /home/abui...RC/zgtts2.f(3), mwah, bye! π¦π
π¦ 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