DLAGTF(3)
π NAME
/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/dlagtf.f
okay so real talk, this page is straight out of the Library Functions Manual (yes, that's the manual name, bestie, it's right there at the top of the file β dlagtf.f(3) if you're keeping score π), and it's literally just one subroutine's whole personality. Buckle up. β¨
π¦ SYNOPSIS
Functions/Subroutines
subroutine DLAGTF (n, a, lambda, b, c, tol, d, in, info)β DLAGTF computes an LU factorization of a matrixT-Ξ»I, where T is a general tridiagonal matrix, and Ξ» a scalar, using partial pivoting with row interchanges. That's the whole vibe. π
β¨ Function/Subroutine Documentation β¨
subroutine DLAGTF (integer n, double precision, dimension( * ) a, double
precision lambda, double precision, dimension( * ) b, double precision,
dimension( * ) c, double precision tol, double precision, dimension( * )
d, integer, dimension( * ) in, integer info)
DLAGTF computes an LU factorization of a matrix T-Ξ»I, where T is a general tridiagonal matrix, and Ξ» a scalar, using partial pivoting with row interchanges. π«Ά
π Purpose
Okay so here's what it actually does: DLAGTF factorizes the matrix (T - lambda*I), where T is an n by n tridiagonal matrix and lambda is a scalar, as
T - lambda*I = PLU,
where P is a permutation matrix, L is a unit lower tridiagonal matrix with at most one non-zero sub-diagonal elements per column and U is an upper triangular matrix with at most two non-zero super-diagonal elements per column. (Yes β L gets at most one sub-diagonal, U gets at most two super-diagonals. Iconic asymmetry, no notes. π)
The factorization is obtained by Gaussian elimination with partial pivoting and implicit row scaling. Lowkey the whole point. π₯
The parameter LAMBDA is included in the routine so that DLAGTF may be used, in conjunction with DLAGTS, to obtain eigenvectors of T by inverse iteration. That's the plot twist β lambda's whole reason for existing here. π
πΈ Parameters
N
N is INTEGER β the order of the matrix T. That's it. That's her whole job. π
A
A is DOUBLE PRECISION array, dimension (N).
- On entry,
Amust contain the diagonal elements of T. - On exit,
Ais overwritten by the n diagonal elements of the upper triangular matrix U of the factorization of T.
so likeβ¦ it goes in as T's diagonal and comes out as U's diagonal. glow-up fr fr β¨
LAMBDA
LAMBDA is DOUBLE PRECISION β on entry, the scalar lambda. she's just a girl. π
B
B is DOUBLE PRECISION array, dimension (N-1).
- On entry,
Bmust contain the (n-1) super-diagonal elements of T. - On exit,
Bis overwritten by the (n-1) super-diagonal elements of the matrix U of the factorization of T.
same energy, same overwrite, different matrix. π¦
C
C is DOUBLE PRECISION array, dimension (N-1).
- On entry,
Cmust contain the (n-1) sub-diagonal elements of T. - On exit,
Cis overwritten by the (n-1) sub-diagonal elements of the matrix L of the factorization of T.
TOL
TOL is DOUBLE PRECISION β bestie, this one matters. π¨
On entry, it's a relative tolerance used to indicate whether or not the matrix (T - lambda*I) is nearly singular. TOL should normally be chosen as approximately the largest relative error in the elements of T. For example, if the elements of T are correct to about 4 significant figures, then TOL should be set to about 5*10**(-4). If TOL is supplied as less than eps, where eps is the relative machine precision, then the value eps is used in place of TOL. so tiny tolerances get bumped up to eps, no negotiation. π
D
D is DOUBLE PRECISION array, dimension (N-2).
On exit, D is overwritten by the (n-2) second super-diagonal elements of the matrix U of the factorization of T. yes, second super-diagonal. she has layers. π
IN
IN is INTEGER array, dimension (N).
On exit, IN contains details of the permutation matrix P. If an interchange occurred at the kth step of the elimination, then IN(k) = 1, otherwise IN(k) = 0. The element IN(n) returns the smallest positive integer j such that
abs( u(j,j) ) <= norm( (T - lambda*I)(j) )*TOL,
where norm( A(j) ) denotes the sum of the absolute values of the jth row of the matrix A. If no such j exists then IN(n) is returned as zero. If IN(n) is returned as positive, then a diagonal element of U is small, indicating that (T - lambda*I) is singular or nearly singular. β οΈ that's your "she's singular bestie" alarm right there. π
INFO
INFO is INTEGER:
= 0: successful exit π< 0: ifINFO = -k, the kth argument had an illegal value π
π Author
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
Definition at line 155 of file dlagtf.f. (yes, line 155, we counted π
)
β Author
Generated automatically by Doxygen for LAPACK from the source code. not a human, just vibes and a parser. π§
and that's the whole page, bestie β every flag, every overwrite, every dimension, nothing skipped, periodt. π
LAPACK β Version 3.12.0 β sign-off from /home/abui...RC/dlagtf.f(3), the Library Functions Manual. mwah. π«Άπ
π¦ 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