SRC/dgehrd.f(3)
π SRC/dgehrd.f(3) π
okay bestie, welcome to the Library Functions Manual page for SRC/dgehrd.f β yes, the file itself, and it's giving βFortran subroutine with main character energy.β We're talking DGEHRD, and no cap, it's kind of iconic. π«Ά
β¨ NAME β¨
SRC/dgehrd.f
π¦ SYNOPSIS π¦
Functions/Subroutines
subroutine dgehrd (n, ilo, ihi, a, lda, tau, work, lwork, info)β DGEHRD
π Function/Subroutine Documentation π
π§ subroutine dgehrd (integer n, integer ilo, integer ihi, double precision, dimension( lda, * ) a, integer lda, double precision, dimension( * ) tau, double precision, dimension( * ) work, integer lwork, integer info)
DGEHRD
π Purpose:
okay so the literal purpose: DGEHRD reduces a real general matrix A to upper Hessenberg form H by an orthogonal similarity transformation: Q**T * A * Q = H . That's the whole assignment, bestie β¨.
π Parameters
NβNisINTEGER. The order of matrixA.N >= 0. πILOβILOisINTEGER. πIHIβIHIisINTEGER. It's assumed thatAis already upper triangular in rows and columns1:ILO-1andIHI+1:N.ILOandIHIare normally set by a previous call toDGEBAL; otherwise they should be set to1andNrespectively. See Further Details.1 <= ILO <= IHI <= N, ifN > 0;ILO=1andIHI=0, ifN=0. π«ΆAβAisDOUBLE PRECISIONarray, dimension(LDA,N). On entry, theN-by-Ngeneral matrix to be reduced. On exit, the upper triangle and the first subdiagonal ofAare overwritten with the upper Hessenberg matrixH, and the elements below the first subdiagonal, with the arrayTAU, represent the orthogonal matrixQas a product of elementary reflectors. See Further Details. π¦LDAβLDAisINTEGER. The leading dimension of the arrayA.LDA >= max(1,N). πTAUβTAUisDOUBLE PRECISIONarray, dimension(N-1). The scalar factors of the elementary reflectors (see Further Details). Elements1:ILO-1andIHI:N-1ofTAUare set to zero. β¨WORKβWORKisDOUBLE PRECISIONarray, dimension(MAX(1,LWORK)). On exit, ifINFO = 0,WORK(1)returns the optimalLWORK. πΎLWORKβLWORKisINTEGER. The length of the arrayWORK.LWORK >= max(1,N). For good performance,LWORKshould generally be larger. IfLWORK = -1, then a workspace query is assumed; the routine only calculates the optimal size of theWORKarray, returns this value as the first entry of theWORKarray, and no error message related toLWORKis issued byXERBLA. π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:
okay so Q is represented as a product of (ihi-ilo) elementary reflectors:
Q = H(ilo) H(ilo+1) . . . H(ihi-1).
Each H(i) has the form:
H(i) = I - tau * v * v**T
where tau is a real scalar, and v is a real vector with v(1:i) = 0, v(i+1) = 1 and v(ihi+1:n) = 0; v(i+2:ihi) is stored on exit in A(i+2:ihi,i), and tau in TAU(i).
The contents of A are illustrated by the following example, with n = 7, ilo = 2 and ihi = 6:
!> on entry, on exit,
!>
!> ( a a a a a a a ) ( a a h h h h a )
!> ( a a a a a a ) ( a h h h h a )
!> ( a a a a a a ) ( h h h h h h )
!> ( a a a a a a ) ( v2 h h h h h )
!> ( a a a a a a ) ( v2 v3 h h h h )
!> ( a a a a a a ) ( v2 v3 v4 h h h )
!> ( a ) ( a )
where a denotes an element of the original matrix A, h denotes a modified element of the upper Hessenberg matrix H, and vi denotes an element of the vector defining H(i).
This file is a slight modification of LAPACK-3.0's DGEHRD subroutine incorporating improvements proposed by Quintana-Orti and Van de Geijn (2006). (See DLAHR2.)
Definition at line 166 of file dgehrd.f.
π Author
Generated automatically by Doxygen for LAPACK from the source code.
xoxo, your LAPACK Version 3.12.0 bestie from SRC/dgehrd.f(3) β mwah πβ¨
π¦ 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