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 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.
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 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.
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 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.
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 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.
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 matrix A.
  • K โ€” K is INTEGER. The offset for the reduction. Elements below the k-th subdiagonal in the first NB columns 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, the n-by-(n-k+1) general matrix A. On exit, the elements on and above the k-th subdiagonal in the first NB columns are overwritten with the corresponding elements of the reduced matrix; the elements below the k-th subdiagonal, with the array TAU, represent the matrix Q as a product of elementary reflectors. The other columns of A are unchanged. See Further Details.
  • LDA โ€” LDA is INTEGER. The leading dimension of the array A. 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 matrix T.
  • LDT โ€” LDT is INTEGER. The leading dimension of the array T. LDT >= NB.
  • Y โ€” Y is COMPLEX array, dimension (LDY,NB). The n-by-nb matrix Y.
  • LDY โ€” LDY is INTEGER. The leading dimension of the array Y. 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's CLAHRD incorporating improvements proposed by Quintana-Orti and Van de Gejin. Note that the entries of A(1:K,2:NB) differ from those returned by the original LAPACK-3.0's CLAHRD routine. (This subroutine is not backward compatible with LAPACK-3.0's CLAHRD.)

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 matrix A.
  • K โ€” K is INTEGER. The offset for the reduction. Elements below the k-th subdiagonal in the first NB columns 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, the n-by-(n-k+1) general matrix A. On exit, the elements on and above the k-th subdiagonal in the first NB columns are overwritten with the corresponding elements of the reduced matrix; the elements below the k-th subdiagonal, with the array TAU, represent the matrix Q as a product of elementary reflectors. The other columns of A are unchanged. See Further Details.
  • LDA โ€” LDA is INTEGER. The leading dimension of the array A. 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 matrix T.
  • LDT โ€” LDT is INTEGER. The leading dimension of the array T. LDT >= NB.
  • Y โ€” Y is DOUBLE PRECISION array, dimension (LDY,NB). The n-by-nb matrix Y.
  • LDY โ€” LDY is INTEGER. The leading dimension of the array Y. 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's DLAHRD incorporating improvements proposed by Quintana-Orti and Van de Gejin. Note that the entries of A(1:K,2:NB) differ from those returned by the original LAPACK-3.0's DLAHRD routine. (This subroutine is not backward compatible with LAPACK-3.0's DLAHRD.) 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 โ€” N is INTEGER. The order of the matrix A.
  • K โ€” K is INTEGER. The offset for the reduction. Elements below the k-th subdiagonal in the first NB columns are reduced to zero. K < N.
  • NB โ€” NB is INTEGER. The number of columns to be reduced.
  • A โ€” A is REAL array, dimension (LDA,N-K+1). On entry, the n-by-(n-k+1) general matrix A. On exit, the elements on and above the k-th subdiagonal in the first NB columns are overwritten with the corresponding elements of the reduced matrix; the elements below the k-th subdiagonal, with the array TAU, represent the matrix Q as a product of elementary reflectors. The other columns of A are unchanged. See Further Details.
  • LDA โ€” LDA is INTEGER. The leading dimension of the array A. LDA >= max(1,N).
  • TAU โ€” TAU is REAL array, dimension (NB). The scalar factors of the elementary reflectors. See Further Details.
  • T โ€” T is REAL array, dimension (LDT,NB). The upper triangular matrix T.
  • LDT โ€” LDT is INTEGER. The leading dimension of the array T. LDT >= NB.
  • Y โ€” Y is REAL array, dimension (LDY,NB). The n-by-nb matrix Y.
  • LDY โ€” LDY is INTEGER. The leading dimension of the array Y. 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's SLAHRD incorporating improvements proposed by Quintana-Orti and Van de Gejin. Note that the entries of A(1:K,2:NB) differ from those returned by the original LAPACK-3.0's SLAHRD routine. (This subroutine is not backward compatible with LAPACK-3.0's SLAHRD.) 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 โ€” N is INTEGER. The order of the matrix A.
  • K โ€” K is INTEGER. The offset for the reduction. Elements below the k-th subdiagonal in the first NB columns are reduced to zero. K < N.
  • NB โ€” NB is INTEGER. The number of columns to be reduced.
  • A โ€” A is COMPLEX*16 array, dimension (LDA,N-K+1). On entry, the n-by-(n-k+1) general matrix A. On exit, the elements on and above the k-th subdiagonal in the first NB columns are overwritten with the corresponding elements of the reduced matrix; the elements below the k-th subdiagonal, with the array TAU, represent the matrix Q as a product of elementary reflectors. The other columns of A are unchanged. See Further Details.
  • LDA โ€” LDA is INTEGER. The leading dimension of the array A. LDA >= max(1,N).
  • TAU โ€” TAU is COMPLEX*16 array, dimension (NB). The scalar factors of the elementary reflectors. See Further Details.
  • T โ€” T is COMPLEX*16 array, dimension (LDT,NB). The upper triangular matrix T.
  • LDT โ€” LDT is INTEGER. The leading dimension of the array T. LDT >= NB.
  • Y โ€” Y is COMPLEX*16 array, dimension (LDY,NB). The n-by-nb matrix Y.
  • LDY โ€” LDY is INTEGER. The leading dimension of the array Y. 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's ZLAHRD incorporating improvements proposed by Quintana-Orti and Van de Gejin. Note that the entries of A(1:K,2:NB) differ from those returned by the original LAPACK-3.0's ZLAHRD routine. (This subroutine is not backward compatible with LAPACK-3.0's ZLAHRD.) ๐Ÿ’€

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