lahr2(3)
๐ NAME
lahr2 โ step in gehrd. Yes bestie, this is the lahr2(3) Library Functions Manual page for the little helper that does a step inside gehrd. Lowkey iconic, highkey niche.
โจ SYNOPSIS โจ
๐ Functions ๐
clahr2โ CLAHR2 reduces the specified number of first columns of a general rectangular matrixAso that elements below the specified subdiagonal are zero, and returns auxiliary matrices which are needed to apply the transformation to the unreduced part ofA.
subroutine clahr2 (n, k, nb, a, lda, tau, t, ldt, y, ldy)
dlahr2โ DLAHR2 reduces the specified number of first columns of a general rectangular matrixAso that elements below the specified subdiagonal are zero, and returns auxiliary matrices which are needed to apply the transformation to the unreduced part ofA.
subroutine dlahr2 (n, k, nb, a, lda, tau, t, ldt, y, ldy)
slahr2โ SLAHR2 reduces the specified number of first columns of a general rectangular matrixAso that elements below the specified subdiagonal are zero, and returns auxiliary matrices which are needed to apply the transformation to the unreduced part ofA.
subroutine slahr2 (n, k, nb, a, lda, tau, t, ldt, y, ldy)
zlahr2โ ZLAHR2 reduces the specified number of first columns of a general rectangular matrixAso that elements below the specified subdiagonal are zero, and returns auxiliary matrices which are needed to apply the transformation to the unreduced part ofA.
subroutine zlahr2 (n, k, nb, a, lda, tau, t, ldt, y, ldy)
๐ Detailed Description ๐
Okay so this is the part where the real function docs live. Grab a lil snack, bestie.
๐ง Function Documentation ๐ง
๐ clahr2 ๐
subroutine clahr2 (integer n, integer k, integer nb, complex, dimension(
lda, * ) a, integer lda, complex, dimension( nb ) tau, complex,
dimension( ldt, nb ) t, integer ldt, complex, dimension( ldy, nb ) y,
integer ldy)
CLAHR2 reduces the specified number of first columns of a general rectangular matrix A so that elements below the specified subdiagonal are zero, and returns auxiliary matrices which are needed to apply the transformation to the unreduced part of A.
Purpose:
CLAHR2 reduces the first NB columns of A complex general n-BY-(n-k+1) matrix A so that elements below the k-th subdiagonal are zero. The reduction is performed by an unitary similarity transformation Q**H * A * Q. The routine returns the matrices V and T which determine Q as a block reflector I - V*T*v**H, and also the matrix Y = A * V * T.
This is an auxiliary routine called by CGEHRD.
Parameters:
NโN is INTEGER. The order of the matrixA.KโK is INTEGER. The offset for the reduction. Elements below thek-th subdiagonal in the firstNBcolumns are reduced to zero.K < N.NBโNB is INTEGER. The number of columns to be reduced.AโA is COMPLEX array, dimension (LDA,N-K+1). On entry, then-by-(n-k+1)general matrixA. On exit, the elements on and above thek-th subdiagonal in the firstNBcolumns are overwritten with the corresponding elements of the reduced matrix; the elements below thek-th subdiagonal, with the arrayTAU, represent the matrixQas a product of elementary reflectors. The other columns ofAare unchanged. See Further Details.LDAโLDA is INTEGER. The leading dimension of the arrayA.LDA >= max(1,N).TAUโTAU is COMPLEX array, dimension (NB). The scalar factors of the elementary reflectors. See Further Details.TโT is COMPLEX array, dimension (LDT,NB). The upper triangular matrixT.LDTโLDT is INTEGER. The leading dimension of the arrayT.LDT >= NB.YโY is COMPLEX array, dimension (LDY,NB). Then-by-nbmatrixY.LDYโLDY is INTEGER. The leading dimension of the arrayY.LDY >= N.
Author:
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
Further Details:
<butterfly>Okay, hereโs the lore.</butterfly> The matrix Q is represented as a product of nb elementary reflectors
Q = H(1) H(2) . . . H(nb).
Each H(i) has the form
H(i) = I - tau * v * v**H
where tau is a complex scalar, and v is a complex vector with v(1:i+k-1) = 0, v(i+k) = 1; v(i+k+1:n) is stored on exit in A(i+k+1:n,i), and tau in TAU(i).
The elements of the vectors v together form the (n-k+1)-by-nb matrix V which is needed, with T and Y, to apply the transformation to the unreduced part of the matrix, using an update of the form:
A := (I - V*T*V**H) * (A - Y*V**H).
The contents of A on exit are illustrated by the following example with n = 7, k = 3 and nb = 2:
( a a a a a )
( a a a a a )
( a a a a a )
( h h a a a )
( v1 h a a a )
( v1 v2 a a a )
( v1 v2 a 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).
Heads up, bestie: This subroutine is a slight modification of LAPACK-3.0'sCLAHRDincorporating improvements proposed by Quintana-Orti and Van de Gejin. Note that the entries ofA(1:K,2:NB)differ from those returned by the original LAPACK-3.0'sCLAHRDroutine. (This subroutine is not backward compatible with LAPACK-3.0'sCLAHRD.)
References:
Gregorio Quintana-Orti and Robert van de Geijn, "Improving the performance of reduction to Hessenberg form," ACM Transactions on Mathematical Software, 32(2):180-194, June 2006.
Definition at line 180 of file clahr2.f.
๐ dlahr2 ๐
subroutine dlahr2 (integer n, integer k, integer nb, double precision,
dimension( lda, * ) a, integer lda, double precision, dimension( nb )
tau, double precision, dimension( ldt, nb ) t, integer ldt, double
precision, dimension( ldy, nb ) y, integer ldy)
DLAHR2 reduces the specified number of first columns of a general rectangular matrix A so that elements below the specified subdiagonal are zero, and returns auxiliary matrices which are needed to apply the transformation to the unreduced part of A.
Purpose:
DLAHR2 reduces the first NB columns of A real general n-BY-(n-k+1) matrix A so that elements below the k-th subdiagonal are zero. The reduction is performed by an orthogonal similarity transformation Q**T * A * Q. The routine returns the matrices V and T which determine Q as a block reflector I - V*T*V**T, and also the matrix Y = A * V * T.
This is an auxiliary routine called by DGEHRD.
Parameters:
NโN is INTEGER. The order of the matrixA.KโK is INTEGER. The offset for the reduction. Elements below thek-th subdiagonal in the firstNBcolumns are reduced to zero.K < N.NBโNB is INTEGER. The number of columns to be reduced.AโA is DOUBLE PRECISION array, dimension (LDA,N-K+1). On entry, then-by-(n-k+1)general matrixA. On exit, the elements on and above thek-th subdiagonal in the firstNBcolumns are overwritten with the corresponding elements of the reduced matrix; the elements below thek-th subdiagonal, with the arrayTAU, represent the matrixQas a product of elementary reflectors. The other columns ofAare unchanged. See Further Details.LDAโLDA is INTEGER. The leading dimension of the arrayA.LDA >= max(1,N).TAUโTAU is DOUBLE PRECISION array, dimension (NB). The scalar factors of the elementary reflectors. See Further Details.TโT is DOUBLE PRECISION array, dimension (LDT,NB). The upper triangular matrixT.LDTโLDT is INTEGER. The leading dimension of the arrayT.LDT >= NB.YโY is DOUBLE PRECISION array, dimension (LDY,NB). Then-by-nbmatrixY.LDYโLDY is INTEGER. The leading dimension of the arrayY.LDY >= N.
Author:
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
Further Details:
โจ Further Details โ okay so the entire personality of this routine lives in Q, and Q is literally just a conga line of nb elementary reflectors, no cap:
Q = H(1) H(2) . . . H(nb).
each H(i) has this exact form, don't @ me:
H(i) = I - tau * v * v**T
where tau is a real scalar, and v is a real vector with v(1:i+k-1) = 0, v(i+k) = 1; v(i+k+1:n) is stored on exit in A(i+k+1:n,i), and tau in TAU(i).
the elements of the vectors v together form the (n-k+1)-by-nb matrix V which is needed, with T and Y, to apply the transformation to the unreduced part of the matrix, using an update of the form:
A := (I - V*T*V**T) * (A - Y*V**T).
and bestie, the way A looks on exit is genuinely an art piece โ here's the example with n = 7, k = 3 and nb = 2:
( a a a a a )
( a a a a a )
( a a a a a )
( h h a a a )
( v1 h a a a )
( v1 v2 a a a )
( v1 v2 a 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). iykyk ๐
โ ๏ธ lore drop / caveat: this subroutine is a slight modification of LAPACK-3.0'sDLAHRDincorporating improvements proposed by Quintana-Orti and Van de Gejin. Note that the entries ofA(1:K,2:NB)differ from those returned by the original LAPACK-3.0'sDLAHRDroutine. (This subroutine is not backward compatible with LAPACK-3.0'sDLAHRD.) like, fr fr, check your indices before you ship ๐ญ
๐ References
Gregorio Quintana-Orti and Robert van de Geijn, "Improving the performance of reduction to Hessenberg form," ACM Transactions on Mathematical Software, 32(2):180-194, June 2006.
Definition at line 180 of file dlahr2.f.
๐งฎ slahr2 โ same energy, single precision โจ
subroutine slahr2 (integer n, integer k, integer nb, real, dimension( lda, * )
a, integer lda, real, dimension( nb ) tau, real, dimension( ldt, nb )
t, integer ldt, real, dimension( ldy, nb ) y, integer ldy)
SLAHR2 reduces the specified number of first columns of a general rectangular matrix A so that elements below the specified subdiagonal are zero, and returns auxiliary matrices which are needed to apply the transformation to the unreduced part of A. ๐ซถ
๐ซ Purpose
SLAHR2 reduces the first NB columns of A real general n-BY-(n-k+1) matrix A so that elements below the k-th subdiagonal are zero. The reduction is performed by an orthogonal similarity transformation Q**T * A * Q. The routine returns the matrices V and T which determine Q as a block reflector I - V*T*V**T, and also the matrix Y = A * V * T.
This is an auxiliary routine called by SGEHRD. (so like, it's the supporting character that's actually lowkey the main character ๐)
๐ง Parameters
NโNisINTEGER. The order of the matrixA.KโKisINTEGER. The offset for the reduction. Elements below thek-th subdiagonal in the firstNBcolumns are reduced to zero.K < N.NBโNBisINTEGER. The number of columns to be reduced.AโAisREALarray, dimension(LDA,N-K+1). On entry, then-by-(n-k+1)general matrixA. On exit, the elements on and above thek-th subdiagonal in the firstNBcolumns are overwritten with the corresponding elements of the reduced matrix; the elements below thek-th subdiagonal, with the arrayTAU, represent the matrixQas a product of elementary reflectors. The other columns ofAare unchanged. See Further Details.LDAโLDAisINTEGER. The leading dimension of the arrayA.LDA >= max(1,N).TAUโTAUisREALarray, dimension(NB). The scalar factors of the elementary reflectors. See Further Details.TโTisREALarray, dimension(LDT,NB). The upper triangular matrixT.LDTโLDTisINTEGER. The leading dimension of the arrayT.LDT >= NB.YโYisREALarray, dimension(LDY,NB). Then-by-nbmatrixY.LDYโLDYisINTEGER. The leading dimension of the arrayY.LDY >= N.
๐ Author
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
๐ฆ Further Details
the matrix Q is represented as a product of nb elementary reflectors, iconic behaviour honestly:
Q = H(1) H(2) . . . H(nb).
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+k-1) = 0, v(i+k) = 1; v(i+k+1:n) is stored on exit in A(i+k+1:n,i), and tau in TAU(i).
The elements of the vectors v together form the (n-k+1)-by-nb matrix V which is needed, with T and Y, to apply the transformation to the unreduced part of the matrix, using an update of the form:
A := (I - V*T*V**T) * (A - Y*V**T).
The contents of A on exit are illustrated by the following example with n = 7, k = 3 and nb = 2:
( a a a a a )
( a a a a a )
( a a a a a )
( h h a a a )
( v1 h a a a )
( v1 v2 a a a )
( v1 v2 a 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).
๐ warning, for real: this subroutine is a slight modification of LAPACK-3.0'sSLAHRDincorporating improvements proposed by Quintana-Orti and Van de Gejin. Note that the entries ofA(1:K,2:NB)differ from those returned by the original LAPACK-3.0'sSLAHRDroutine. (This subroutine is not backward compatible with LAPACK-3.0'sSLAHRD.) so like, do NOT assume the old output, ok? ๐
๐ References
Gregorio Quintana-Orti and Robert van de Geijn, "Improving the performance of reduction to Hessenberg form," ACM Transactions on Mathematical Software, 32(2):180-194, June 2006.
Definition at line 180 of file slahr2.f.
๐ฆ zlahr2 โ the complex*16 edition ๐
subroutine zlahr2 (integer n, integer k, integer nb, complex*16, dimension(
lda, * ) a, integer lda, complex*16, dimension( nb ) tau, complex*16,
dimension( ldt, nb ) t, integer ldt, complex*16, dimension( ldy, nb ) y,
integer ldy)
ZLAHR2 reduces the specified number of first columns of a general rectangular matrix A so that elements below the specified subdiagonal are zero, and returns auxiliary matrices which are needed to apply the transformation to the unreduced part of A. ๐
๐ซ Purpose
ZLAHR2 reduces the first NB columns of A complex general n-BY-(n-k+1) matrix A so that elements below the k-th subdiagonal are zero. The reduction is performed by an unitary similarity transformation Q**H * A * Q. The routine returns the matrices V and T which determine Q as a block reflector I - V*T*V**H, and also the matrix Y = A * V * T.
This is an auxiliary routine called by ZGEHRD. โจ
๐ง Parameters
NโNisINTEGER. The order of the matrixA.KโKisINTEGER. The offset for the reduction. Elements below thek-th subdiagonal in the firstNBcolumns are reduced to zero.K < N.NBโNBisINTEGER. The number of columns to be reduced.AโAisCOMPLEX*16array, dimension(LDA,N-K+1). On entry, then-by-(n-k+1)general matrixA. On exit, the elements on and above thek-th subdiagonal in the firstNBcolumns are overwritten with the corresponding elements of the reduced matrix; the elements below thek-th subdiagonal, with the arrayTAU, represent the matrixQas a product of elementary reflectors. The other columns ofAare unchanged. See Further Details.LDAโLDAisINTEGER. The leading dimension of the arrayA.LDA >= max(1,N).TAUโTAUisCOMPLEX*16array, dimension(NB). The scalar factors of the elementary reflectors. See Further Details.TโTisCOMPLEX*16array, dimension(LDT,NB). The upper triangular matrixT.LDTโLDTisINTEGER. The leading dimension of the arrayT.LDT >= NB.YโYisCOMPLEX*16array, dimension(LDY,NB). Then-by-nbmatrixY.LDYโLDYisINTEGER. The leading dimension of the arrayY.LDY >= N.
๐ Author
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
๐ Further Details
okay so bestie, the matrix Q is represented as a product of nb elementary reflectors, and she is literally giving
Q = H(1) H(2) . . . H(nb).
Each H(i) has the form
H(i) = I - tau * v * v**H
where tau is a complex scalar, and v is a complex vector with
v(1:i+k-1) = 0, v(i+k) = 1; v(i+k+1:n) is stored on exit in A(i+k+1:n,i), and tau in TAU(i).
The elements of the vectors v together form the (n-k+1)-by-nb matrix V which is needed, with T and Y, to apply the transformation to the unreduced part of the matrix, using an update of the form:
A := (I - V*T*V**H) * (A - Y*V**H).
The contents of A on exit are illustrated by the following example with n = 7, k = 3 and nb = 2:
( a a a a a )
( a a a a a )
( a a a a a )
( h h a a a )
( v1 h a a a )
( v1 v2 a a a )
( v1 v2 a 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).
โ ๏ธ okay so this next bit is important, no cap: this subroutine is a slight modification of LAPACK-3.0'sZLAHRDincorporating improvements proposed by Quintana-Orti and Van de Gejin. Note that the entries ofA(1:K,2:NB)differ from those returned by the original LAPACK-3.0'sZLAHRDroutine. (This subroutine is not backward compatible with LAPACK-3.0'sZLAHRD.) ๐
References ๐
Gregorio Quintana-Orti and Robert van de Geijn, "Improving the performance of reduction to Hessenberg form," ACM Transactions on Mathematical Software, 32(2):180-194, June 2006.
๐ Definition at line 180 of file zlahr2.f.
Author ๐๏ธ
Generated automatically by Doxygen for LAPACK from the source code.
and that's the whole page, bestie ๐ this lil beauty comes from LAPACK version 3.12.0, and you've been reading lahr2(3) โ slay, periodt โจ๐
๐ซถ
๐ฆ 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