doublePTcomputational(3)
π doublePTcomputational(3) β LAPACK π
β¨ NAME β¨
doublePTcomputational β double
πΈ SYNOPSIS πΈ
β¨ Functions β¨
okay bestie, here's the whole squad of functions in this group. π
subroutine dptcon (N, D, E, ANORM, RCOND, WORK, INFO)
DPTCON
subroutine dpteqr (COMPZ, N, D, E, Z, LDZ, WORK, INFO)
DPTEQR
subroutine dptrfs (N, NRHS, D, E, DF, EF, B, LDB, X, LDX, FERR, BERR,
WORK, INFO)
DPTRFS
subroutine dpttrf (N, D, E, INFO)
DPTTRF
subroutine dpttrs (N, NRHS, D, E, B, LDB, INFO)
DPTTRS
subroutine dptts2 (N, NRHS, D, E, B, LDB)
DPTTS2 solves a tridiagonal system of the form AX=B using the L D LH
factorization computed by spttrf.
π Detailed Description π
This is the group of double computational functions for PT matrices. π
π Function Documentation π
π subroutine dptcon β DPTCON π
subroutine dptcon (integer N, double precision, dimension( * ) D, double
precision, dimension( * ) E, double precision ANORM, double precision
RCOND, double precision, dimension( * ) WORK, integer INFO)
β¨ Purpose β¨
okay so DPTCON computes the reciprocal of the condition number (in the 1-norm) of a real symmetric positive definite tridiagonal matrix using the factorization A = L*D*L**T or A = U**T*D*U computed by DPTTRF.
Norm(inv(A)) is computed by a direct method, and the reciprocal of the condition number is computed as
RCOND = 1 / (ANORM * norm(inv(A))).
No cap, that's the formula. β¨
π Parameters π
NβNisINTEGER. The order of the matrixA.N >= 0.DβDisDOUBLE PRECISIONarray, dimension(N). Thendiagonal elements of the diagonal matrixDfrom the factorization ofA, as computed byDPTTRF.EβEisDOUBLE PRECISIONarray, dimension(N-1). The(n-1)off-diagonal elements of the unit bidiagonal factorUorLfrom the factorization ofA, as computed byDPTTRF.ANORMβANORMisDOUBLE PRECISION. The 1-norm of the original matrixA.RCONDβRCONDisDOUBLE PRECISION. The reciprocal of the condition number of the matrixA, computed asRCOND = 1/(ANORM * AINVNM), whereAINVNMis the 1-norm ofinv(A)computed in this routine.WORKβWORKisDOUBLE PRECISIONarray, dimension(N).INFOβINFOisINTEGER= 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.
π₯ Further Details π₯
The method used is described in Nicholas J. Higham, 'Efficient Algorithms for Computing the Condition Number of a Tridiagonal Matrix', SIAM J. Sci. Stat. Comput., Vol. 7, No. 1, January 1986.
π subroutine dpteqr β DPTEQR π
subroutine dpteqr (character COMPZ, integer N, double precision, dimension(
* ) D, double precision, dimension( * ) E, double precision, dimension(
ldz, * ) Z, integer LDZ, double precision, dimension( * ) WORK, integer
INFO)
β¨ Purpose β¨
DPTEQR computes all eigenvalues and, optionally, eigenvectors of a symmetric positive definite tridiagonal matrix by first factoring the matrix using DPTTRF, and then calling DBDSQR to compute the singular values of the bidiagonal factor.
This routine computes the eigenvalues of the positive definite tridiagonal matrix to high relative accuracy. This means that if the eigenvalues range over many orders of magnitude in size, then the small eigenvalues and corresponding eigenvectors will be computed more accurately than, for example, with the standard QR method.
The eigenvectors of a full or band symmetric positive definite matrix can also be found if DSYTRD, DSPTRD, or DSBTRD has been used to reduce this matrix to tridiagonal form. (The reduction to tridiagonal form, however, may preclude the possibility of obtaining high relative accuracy in the small eigenvalues of the original matrix, if these eigenvalues range over many orders of magnitude.)
π Parameters π
COMPZβCOMPZisCHARACTER*1= 'N': Compute eigenvalues only.= 'V': Compute eigenvectors of original symmetric matrix also. ArrayZcontains the orthogonal matrix used to reduce the original matrix to tridiagonal form.= 'I': Compute eigenvectors of tridiagonal matrix also.
NβNisINTEGER. The order of the matrix.N >= 0.DβDisDOUBLE PRECISIONarray, dimension(N). On entry, thendiagonal elements of the tridiagonal matrix. On normal exit,Dcontains the eigenvalues, in descending order.EβEisDOUBLE PRECISIONarray, dimension(N-1). On entry, the(n-1)subdiagonal elements of the tridiagonal matrix. On exit,Ehas been destroyed.ZβZisDOUBLE PRECISIONarray, dimension(LDZ, N). On entry, ifCOMPZ = 'V', the orthogonal matrix used in the reduction to tridiagonal form. On exit, ifCOMPZ = 'V', the orthonormal eigenvectors of the original symmetric matrix; ifCOMPZ = 'I', the orthonormal eigenvectors of the tridiagonal matrix. IfINFO > 0on exit,Zcontains the eigenvectors associated with only the stored eigenvalues. IfCOMPZ = 'N', thenZis not referenced.LDZβLDZisINTEGER. The leading dimension of the arrayZ.LDZ >= 1, and ifCOMPZ = 'V'or'I',LDZ >= max(1,N).WORKβWORKisDOUBLE PRECISIONarray, dimension(4*N).INFOβINFOisINTEGER= 0: successful exit.< 0: ifINFO = -i, thei-th argument had an illegal value.> 0: ifINFO = i, andiis:<= N: the Cholesky factorization of the matrix could not be performed because thei-th principal minor was not positive definite.> N: the SVD algorithm failed to converge; ifINFO = N+i,ioff-diagonal elements of the bidiagonal factor did not converge to zero.
π Author π
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
π subroutine dptrfs β DPTRFS π
subroutine dptrfs (integer N, integer NRHS, double precision, dimension( * )
D, double precision, dimension( * ) E, double precision, dimension( * )
DF, double precision, dimension( * ) EF, 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
INFO)
β¨ Purpose β¨
DPTRFS improves the computed solution to a system of linear equations when the coefficient matrix is symmetric positive definite and tridiagonal, and provides error bounds and backward error estimates for the solution.
π Parameters π
NβNisINTEGER. The order of the matrixA.N >= 0.NRHSβNRHSisINTEGER. The number of right hand sides, i.e., the number of columns of the matrixB.NRHS >= 0.DβDisDOUBLE PRECISIONarray, dimension(N). Thendiagonal elements of the tridiagonal matrixA.EβEisDOUBLE PRECISIONarray, dimension(N-1). The(n-1)subdiagonal elements of the tridiagonal matrixA.DFβDFisDOUBLE PRECISIONarray, dimension(N). Thendiagonal elements of the diagonal matrixDfrom the factorization computed byDPTTRF.EFβEFisDOUBLE PRECISIONarray, dimension(N-1). The(n-1)subdiagonal elements of the unit bidiagonal factorLfrom the factorization computed byDPTTRF.BβBisDOUBLE PRECISIONarray, dimension(LDB,NRHS). The right hand side matrixB.LDBβLDBisINTEGER. The leading dimension of the arrayB.LDB >= max(1,N).XβXisDOUBLE PRECISIONarray, dimension(LDX,NRHS). On entry, the solution matrixX, as computed byDPTTRS. On exit, the improved solution matrixX.LDXβLDXisINTEGER. The leading dimension of the arrayX.LDX >= max(1,N).FERRβFERRisDOUBLE PRECISIONarray, dimension(NRHS). The 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).BERRβBERRisDOUBLE PRECISIONarray, 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βWORKisDOUBLE PRECISIONarray, dimension(2*N).INFOβINFOisINTEGER= 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 dpttrf β DPTTRF π
subroutine dpttrf (integer N, double precision, dimension( * ) D, double
precision, dimension( * ) E, integer INFO)
β¨ Purpose β¨
DPTTRF computes the L*D*L**T factorization of a real symmetric positive definite tridiagonal matrix A. The factorization may also be regarded as having the form A = U**T*D*U.
π Parameters π
NβNisINTEGER. The order of the matrixA.N >= 0.DDβ DOUBLE PRECISION array, dimension (N) β¨ bestie this one is doing double duty and honestly? iconic of it. On the way in, it's holding thendiagonal elements of the tridiagonal matrixA. On the way out, it's holding thendiagonal elements of the diagonal matrixDfrom theL*D*L**Tfactorization ofA. glow-up fr πEβ DOUBLE PRECISION array, dimension (N-1) π¦ note theN-1, it's one shorter, that's just how subdiagonals are. On entry: the(n-1)subdiagonal elements of the tridiagonal matrixA. On exit: the(n-1)subdiagonal elements of the unit bidiagonal factorLfrom theL*D*L**Tfactorization ofA. And plot twist βEcan also be regarded as the superdiagonal of the unit bidiagonal factorUfrom theU**T*D*Ufactorization ofA. same array, two outfits, we love a versatile queen πINFOβ INTEGER π’ the vibe report, and it has three moods:= 0: successful exit π slay, we ate< 0: ifINFO = -k, thek-th argument had an illegal value π¨> 0: ifINFO = k, the leading minor of orderkis not positive definite π and here's the nuance bestie, listen closely: ifk < N, the factorization could not be completed, while ifk = N, the factorization was completed, butD(N) <= 0. two very different situations, sameINFO, keep them straight fr fr
Author π
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
π¦ subroutine dpttrs π¦
subroutine dpttrs (integer N, integer NRHS, double precision, dimension( * ) D, double precision, dimension( * ) E, double precision, dimension( ldb, * ) B, integer LDB, integer INFO)
DPTTRS π
β¨ Purpose β¨
DPTTRS solves a tridiagonal system of the form
A * X = B
using the L*D*L**T factorization of A computed by DPTTRF. So: D is a diagonal matrix specified in the vector D, L is a unit bidiagonal matrix whose subdiagonal is specified in the vector E, and X and B are N by NRHS matrices. literally the solve step to DPTTRF's factorize step, they're a duo π«Ά
β¨ Parameters β¨
Nβ INTEGER β the order of the tridiagonal matrixA.N >= 0πΈNRHSβ INTEGER β the number of right hand sides, i.e., the number of columns of the matrixB.NRHS >= 0πDβ DOUBLE PRECISION array, dimension (N) β thendiagonal elements of the diagonal matrixDfrom theL*D*L**Tfactorization ofAπEβ DOUBLE PRECISION array, dimension (N-1) β the(n-1)subdiagonal elements of the unit bidiagonal factorLfrom theL*D*L**Tfactorization ofA. And again,Ecan also be regarded as the superdiagonal of the unit bidiagonal factorUfrom the factorizationA = U**T*D*UπBβ DOUBLE PRECISION array, dimension (LDB,NRHS) β On entry, the right hand side vectorsBfor the system of linear equations. On exit, the solution vectors,Xβ¨ she went in as a question and came out as the answer, main character energyLDBβ INTEGER β the leading dimension of the arrayB.LDB >= max(1,N)βINFOβ INTEGER β= 0: successful exit π< 0: ifINFO = -k, thek-th argument had an illegal value π¨
Author π
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
πΈ subroutine dptts2 πΈ
subroutine dptts2 (integer N, integer NRHS, double precision, dimension( * ) D, double precision, dimension( * ) E, double precision, dimension( ldb, * ) B, integer LDB)
DPTTS2 solves a tridiagonal system of the form AX=B using the L D LH factorization computed by spttrf. (yes bestie the doc literally says spttrf there, lowercase s and all, we are simply relaying the message π no editing, no guessing, that's the rule) π
β¨ Purpose β¨
DPTTS2 solves a tridiagonal system of the form
A * X = B
using the L*D*L**T factorization of A computed by DPTTRF. D is a diagonal matrix specified in the vector D, L is a unit bidiagonal matrix whose subdiagonal is specified in the vector E, and X and B are N by NRHS matrices. same quest, different side character π
β¨ Parameters β¨
Nβ INTEGER β the order of the tridiagonal matrixA.N >= 0πΈNRHSβ INTEGER β the number of right hand sides, i.e., the number of columns of the matrixB.NRHS >= 0πDβ DOUBLE PRECISION array, dimension (N) β thendiagonal elements of the diagonal matrixDfrom theL*D*L**Tfactorization ofAπEβ DOUBLE PRECISION array, dimension (N-1) β the(n-1)subdiagonal elements of the unit bidiagonal factorLfrom theL*D*L**Tfactorization ofA.Ecan also be regarded as the superdiagonal of the unit bidiagonal factorUfrom the factorizationA = U**T*D*UπBβ DOUBLE PRECISION array, dimension (LDB,NRHS) β On entry, the right hand side vectorsBfor the system of linear equations. On exit, the solution vectors,Xβ¨LDBβ INTEGER β the leading dimension of the arrayB.LDB >= max(1,N)β
heads up bestie: noticeDPTTS2has noINFOargument. it's just built different. don't go looking for one, it's not there, that's not a typo π
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. so nobody hand-wrote this, a robot did it, and honestly? she understood the assignment π€π
okay and that's a wrap on part 2, my love π this whole page is LAPACK Version 3.11.0, dated Sun Nov 27 2022, and it's filed under doublePTcomputational(3). go forth and factorize responsibly, you absolute legend πβ¨π¦
π¦ 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