doubleGTcomputational(3)
β¨ doubleGTcomputational(3) β¨ β LAPACK's tridiagonal double-precision bestie page π
okay so bestie, this is the doubleGTcomputational(3) manual, part 1. It's giving LAPACK, it's giving tridiagonal matrices, it's giving computational double precision. Let's get into it. π¦
NAME π
doubleGTcomputational β double
SYNOPSIS β¨
Functions π
subroutine dgtcon (NORM, N, DL, D, DU, DU2, IPIV, ANORM, RCOND, WORK,
IWORK, INFO)
DGTCON
subroutine dgtrfs (TRANS, N, NRHS, DL, D, DU, DLF, DF, DUF, DU2, IPIV,
B, LDB, X, LDX, FERR, BERR, WORK, IWORK, INFO)
DGTRFS
subroutine dgttrf (N, DL, D, DU, DU2, IPIV, INFO)
DGTTRF
subroutine dgttrs (TRANS, N, NRHS, DL, D, DU, DU2, IPIV, B, LDB, INFO)
DGTTRS
subroutine dgtts2 (ITRANS, N, NRHS, DL, D, DU, DU2, IPIV, B, LDB)
DGTTS2 solves a system of linear equations with a tridiagonal matrix
using the LU factorization computed by sgttrf.
dgtconβ DGTCONdgtrfsβ DGTRFSdgttrfβ DGTTRFdgttrsβ DGTTRSdgtts2β DGTTS2 solves a system of linear equations with a tridiagonal matrix using the LU factorization computed bysgttrf.
Detailed Description π
okay so this is literally the group of double computational functions for GT matrices. Tridiagonal besties, you know the vibe. π
Function Documentation π
subroutine dgtcon β DGTCON β¨
subroutine dgtcon (character NORM, integer N, double precision, dimension( *
) DL, double precision, dimension( * ) D, double precision, dimension( *
) DU, double precision, dimension( * ) DU2, integer, dimension( * )
IPIV, double precision ANORM, double precision RCOND, double precision,
dimension( * ) WORK, integer, dimension( * ) IWORK, integer INFO)
DGTCON
Purpose π
okay so DGTCON estimates the reciprocal of the condition number of a real tridiagonal matrix A using the LU factorization as computed by DGTTRF.
An estimate is obtained for norm(inv(A)), and the reciprocal of the condition number is computed as RCOND = 1 / (ANORM * norm(inv(A))). Periodt.
Parameters π«Ά
NORMβNORM is CHARACTER*1. Specifies whether the 1-norm condition number or the infinity-norm condition number is required:= '1'or'O': 1-norm;= 'I': Infinity-norm.
NβN is INTEGER. The order of the matrixA.N >= 0.DLβDL is DOUBLE PRECISION array, dimension (N-1). The(n-1)multipliers that define the matrixLfrom the LU factorization ofAas computed byDGTTRF.DβD is DOUBLE PRECISION array, dimension (N). Thendiagonal elements of the upper triangular matrixUfrom the LU factorization ofA.DUβDU is DOUBLE PRECISION array, dimension (N-1). The(n-1)elements of the first superdiagonal ofU.DU2βDU2 is DOUBLE PRECISION array, dimension (N-2). The(n-2)elements of the second superdiagonal ofU.IPIVβIPIV is INTEGER array, dimension (N). The pivot indices; for1 <= i <= n, rowiof the matrix was interchanged with rowIPIV(i).IPIV(i)will always be eitheriori+1;IPIV(i) = iindicates a row interchange was not required.ANORMβANORM is DOUBLE PRECISION. IfNORM = '1'or'O', the 1-norm of the original matrixA. IfNORM = 'I', the infinity-norm of the original matrixA.RCONDβRCOND is DOUBLE PRECISION. The reciprocal of the condition number of the matrixA, computed asRCOND = 1/(ANORM * AINVNM), whereAINVNMis an estimate of the 1-norm ofinv(A)computed in this routine.WORKβWORK is DOUBLE PRECISION array, dimension (2*N).IWORKβIWORK is INTEGER array, dimension (N).INFOβINFO is INTEGER= 0: successful exit< 0: ifINFO = -i, thei-th argument had an illegal value
Author β
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
subroutine dgtrfs β DGTRFS β¨
subroutine dgtrfs (character TRANS, integer N, integer NRHS, double
precision, dimension( * ) DL, double precision, dimension( * ) D, double
precision, dimension( * ) DU, double precision, dimension( * ) DLF,
double precision, dimension( * ) DF, double precision, dimension( * )
DUF, double precision, dimension( * ) DU2, integer, dimension( * ) IPIV,
double precision, dimension( ldb, * ) B, integer LDB, double precision,
dimension( ldx, * ) X, integer LDX, double precision, dimension( * )
FERR, double precision, dimension( * ) BERR, double precision,
dimension( * ) WORK, integer, dimension( * ) IWORK, integer INFO)
DGTRFS
Purpose π
DGTRFS improves the computed solution to a system of linear equations when the coefficient matrix is tridiagonal, and provides error bounds and backward error estimates for the solution. It's the aftercare for your linear solve, bestie. π«Ά
Parameters π«Ά
TRANSβTRANS is CHARACTER*1. Specifies the form of the system of equations:= 'N':A * X = B(No transpose)= 'T':A**T * X = B(Transpose)= 'C':A**H * X = B(Conjugate transpose = Transpose)
NβN is INTEGER. The order of the matrixA.N >= 0.NRHSβNRHS is INTEGER. The number of right hand sides, i.e., the number of columns of the matrixB.NRHS >= 0.DLβDL is DOUBLE PRECISION array, dimension (N-1). The(n-1)subdiagonal elements ofA.DβD is DOUBLE PRECISION array, dimension (N). The diagonal elements ofA.DUβDU is DOUBLE PRECISION array, dimension (N-1). The(n-1)superdiagonal elements ofA.DLFβDLF is DOUBLE PRECISION array, dimension (N-1). The(n-1)multipliers that define the matrixLfrom the LU factorization ofAas computed byDGTTRF.DFβDF is DOUBLE PRECISION array, dimension (N). Thendiagonal elements of the upper triangular matrixUfrom the LU factorization ofA.DUFβDUF is DOUBLE PRECISION array, dimension (N-1). The(n-1)elements of the first superdiagonal ofU.DU2βDU2 is DOUBLE PRECISION array, dimension (N-2). The(n-2)elements of the second superdiagonal ofU.IPIVβIPIV is INTEGER array, dimension (N). The pivot indices; for1 <= i <= n, rowiof the matrix was interchanged with rowIPIV(i).IPIV(i)will always be eitheriori+1;IPIV(i) = iindicates a row interchange was not required.BβB is DOUBLE PRECISION array, dimension (LDB,NRHS). The right hand side matrixB.LDBβLDB is INTEGER. The leading dimension of the arrayB.LDB >= max(1,N).XβX is DOUBLE PRECISION array, dimension (LDX,NRHS). On entry, the solution matrixX, as computed byDGTTRS. On exit, the improved solution matrixX.LDXβLDX is INTEGER. The leading dimension of the arrayX.LDX >= max(1,N).FERRβFERR is DOUBLE PRECISION array, dimension (NRHS). The estimated forward error bound for each solution vectorX(j)(thej-th column of the solution matrixX). IfXTRUEis the true solution corresponding toX(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 inX(j). The estimate is as reliable as the estimate forRCOND, and is almost always a slight overestimate of the true error.BERRβBERR is DOUBLE PRECISION array, dimension (NRHS). The componentwise relative backward error of each solution vectorX(j)(i.e., the smallest relative change in any element ofAorBthat makesX(j)an exact solution).WORKβWORK is DOUBLE PRECISION array, dimension (3*N).IWORKβIWORK is INTEGER array, dimension (N).INFOβINFO is INTEGER= 0: successful exit< 0: ifINFO = -i, thei-th argument had an illegal value
Internal Parameters π
ITMAX is the maximum number of steps of iterative refinement.
Author β
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
subroutine dgttrf β DGTTRF β¨
subroutine dgttrf (integer N, double precision, dimension( * ) DL, double
precision, dimension( * ) D, double precision, dimension( * ) DU, double
precision, dimension( * ) DU2, integer, dimension( * ) IPIV, integer
INFO)
DGTTRF
Purpose π
DGTTRF computes an LU factorization of a real tridiagonal matrix A using elimination with partial pivoting and row interchanges.
The factorization has the form
A = L * U
where L is a product of permutation and unit lower bidiagonal matrices and U is upper triangular with nonzeros in only the main diagonal and first two superdiagonals. It's giving factorization realness. π₯
Parameters π«Ά
NβN is INTEGER. The order of the matrixA.DLβDL is DOUBLE PRECISION array, dimension (N-1). On entry,DLmust contain the(n-1)sub-diagonal elements ofA. On exit,DLis overwritten by the(n-1)multipliers that define the matrixLfrom the LU factorization ofA.DβD is DOUBLE PRECISION array, dimension (N). On entry,Dmust contain the diagonal elements ofA. On exit,Dis overwritten by thendiagonal elements of the upper triangular matrixUfrom the LU factorization ofA.DUβDU is DOUBLE PRECISION array, dimension (N-1). On entry,DUmust contain the(n-1)super-diagonal elements ofA. On exit,DUis overwritten by the(n-1)elements of the first super-diagonal ofU.DU2βDU2 is DOUBLE PRECISION array, dimension (N-2). On exit,DU2is overwritten by the(n-2)elements of the second super-diagonal ofU.IPIVβIPIV is INTEGER array, dimension (N). The pivot indices; for1 <= i <= n, rowiof the matrix was interchanged with rowIPIV(i).IPIV(i)will always be eitheriori+1;IPIV(i) = iindicates a row interchange was not required.INFOβ= 0: successful exit, we love that for you π< 0: ifINFO = -k, the k-th argument had an illegal value π¨> 0: ifINFO = k,U(k,k)is exactly zero. The factorization has been completed, but the factor U is exactly singular, and division by zero will occur if it is used to solve a system of equations. π bestie this one is a problem, not a vibe
πΈ Author πΈ
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
dgttrs π¦
subroutine dgttrs (character TRANS, integer N, integer NRHS, double
precision, dimension( * ) DL, double precision, dimension( * ) D, double
precision, dimension( * ) DU, double precision, dimension( * ) DU2,
integer, dimension( * ) IPIV, double precision, dimension( ldb, * ) B,
integer LDB, integer INFO)
DGTTRS
β¨ Purpose β¨
DGTTRS solves one of the systems of equations
A*X = B or A**T*X = B,
with a tridiagonal matrix A using the LU factorization computed by DGTTRF. π₯
π Parameters π
TRANSβTRANS is CHARACTER*1. Specifies the form of the system of equations. It's giving which math are we doing today:= 'N':A * X = B(No transpose)= 'T':A**T* X = B(Transpose)= 'C':A**T* X = B(Conjugate transpose = Transpose)
NβN is INTEGER. The order of the matrix A. πNRHSβNRHS is INTEGER. The number of right hand sides, i.e., the number of columns of the matrix B.NRHS >= 0.DLβDL is DOUBLE PRECISION array, dimension (N-1). The(n-1)multipliers that define the matrix L from the LU factorization of A. πDβD is DOUBLE PRECISION array, dimension (N). The n diagonal elements of the upper triangular matrix U from the LU factorization of A.DUβDU is DOUBLE PRECISION array, dimension (N-1). The(n-1)elements of the first super-diagonal of U.DU2βDU2 is DOUBLE PRECISION array, dimension (N-2). The(n-2)elements of the second super-diagonal of U. two whole super-diagonals, iconic πIPIVβIPIV is INTEGER array, dimension (N). The pivot indices; for1 <= i <= n, row i of the matrix was interchanged with rowIPIV(i).IPIV(i)will always be eitheriori+1;IPIV(i) = iindicates a row interchange was not required. π«BβB is DOUBLE PRECISION array, dimension (LDB,NRHS). On entry, the matrix of right hand side vectors B. On exit, B is overwritten by the solution vectors X. β οΈ not me leaving with the same array and different numbers in it, that's just how this function rollsLDBβLDB is INTEGER. The leading dimension of the array B.LDB >= max(1,N).INFOβINFO is INTEGER:= 0: successful exit β< 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.
dgtts2 π§
subroutine dgtts2 (integer ITRANS, integer N, integer NRHS, double
precision, dimension( * ) DL, double precision, dimension( * ) D, double
precision, dimension( * ) DU, double precision, dimension( * ) DU2,
integer, dimension( * ) IPIV, double precision, dimension( ldb, * ) B,
integer LDB)
DGTTS2 solves a system of linear equations with a tridiagonal matrix using the LU factorization computed by sgttrf.
β¨ Purpose β¨
DGTTS2 solves one of the systems of equations
A*X = B or A**T*X = B,
with a tridiagonal matrix A using the LU factorization computed by DGTTRF. π
π Parameters π
ITRANSβITRANS is INTEGER. Specifies the form of the system of equations. yep, this one takes an integer instead of a letter, different function different personality:= 0:A * X = B(No transpose)= 1:A**T* X = B(Transpose)= 2:A**T* X = B(Conjugate transpose = Transpose)
NβN is INTEGER. The order of the matrix A. πNRHSβNRHS is INTEGER. The number of right hand sides, i.e., the number of columns of the matrix B.NRHS >= 0.DLβDL is DOUBLE PRECISION array, dimension (N-1). The(n-1)multipliers that define the matrix L from the LU factorization of A. πDβD is DOUBLE PRECISION array, dimension (N). The n diagonal elements of the upper triangular matrix U from the LU factorization of A.DUβDU is DOUBLE PRECISION array, dimension (N-1). The(n-1)elements of the first super-diagonal of U.DU2βDU2 is DOUBLE PRECISION array, dimension (N-2). The(n-2)elements of the second super-diagonal of U. πIPIVβIPIV is INTEGER array, dimension (N). The pivot indices; for1 <= i <= n, row i of the matrix was interchanged with rowIPIV(i).IPIV(i)will always be eitheriori+1;IPIV(i) = iindicates a row interchange was not required. π«BβB is DOUBLE PRECISION array, dimension (LDB,NRHS). On entry, the matrix of right hand side vectors B. On exit, B is overwritten by the solution vectors X. β οΈLDBβLDB is INTEGER. The leading dimension of the array B.LDB >= max(1,N).
heads up bestie:dgtts2has noINFOargument. That's not me forgetting it, that's literally the signature. no error reporting era π
πΈ Author πΈ
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
π Author π
Generated automatically by Doxygen for LAPACK from the source code. π€β¨
and that's the whole page, bestie, you made it to the end π«Ά this was Version 3.11.0 of the docs, dated Sun Nov 27 2022, so go off and solve your tridiagonal systems responsibly π
π
π¦ where this page comes from
- debian bookworm: liblapack-doc 3.11.0-2 Β· BSD-3-Clause
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms