fortran-lapack
Loading...
Searching...
No Matches
la_lapack_householder_reflectors Module Reference

Householder reflectors: generation, blocking, application. More...

Functions/Subroutines

pure subroutine, public la_slarf (side, m, n, v, incv, tau, c, ldc, work)
 SLARF: applies a real elementary reflector H to a real m by n matrix C, from either the left or the right. H is represented in the form H = I - tau * v * v**T where tau is a real scalar and v is a real vector. If tau = 0, then H is taken to be the unit matrix.
 
pure subroutine, public la_dlarf (side, m, n, v, incv, tau, c, ldc, work)
 DLARF: applies a real elementary reflector H to a real m by n matrix C, from either the left or the right. H is represented in the form H = I - tau * v * v**T where tau is a real scalar and v is a real vector. If tau = 0, then H is taken to be the unit matrix.
 
pure subroutine, public la_qlarf (side, m, n, v, incv, tau, c, ldc, work)
 QLARF: applies a real elementary reflector H to a real m by n matrix C, from either the left or the right. H is represented in the form H = I - tau * v * v**T where tau is a real scalar and v is a real vector. If tau = 0, then H is taken to be the unit matrix.
 
pure subroutine, public la_slarfb (side, trans, direct, storev, m, n, k, v, ldv, t, ldt, c, ldc, work, ldwork)
 SLARFB: applies a real block reflector H or its transpose H**T to a real m by n matrix C, from either the left or the right.
 
pure subroutine, public la_dlarfb (side, trans, direct, storev, m, n, k, v, ldv, t, ldt, c, ldc, work, ldwork)
 DLARFB: applies a real block reflector H or its transpose H**T to a real m by n matrix C, from either the left or the right.
 
pure subroutine, public la_qlarfb (side, trans, direct, storev, m, n, k, v, ldv, t, ldt, c, ldc, work, ldwork)
 QLARFB: applies a real block reflector H or its transpose H**T to a real m by n matrix C, from either the left or the right.
 
pure subroutine, public la_slarft (direct, storev, n, k, v, ldv, tau, t, ldt)
 SLARFT: forms the triangular factor T of a real block reflector H of order n, which is defined as a product of k elementary reflectors. If DIRECT = 'F', H = H(1) H(2) . . . H(k) and T is upper triangular; If DIRECT = 'B', H = H(k) . . . H(2) H(1) and T is lower triangular. If STOREV = 'C', the vector which defines the elementary reflector H(i) is stored in the i-th column of the array V, and H = I - V * T * V**T If STOREV = 'R', the vector which defines the elementary reflector H(i) is stored in the i-th row of the array V, and H = I - V**T * T * V.
 
pure subroutine, public la_dlarft (direct, storev, n, k, v, ldv, tau, t, ldt)
 DLARFT: forms the triangular factor T of a real block reflector H of order n, which is defined as a product of k elementary reflectors. If DIRECT = 'F', H = H(1) H(2) . . . H(k) and T is upper triangular; If DIRECT = 'B', H = H(k) . . . H(2) H(1) and T is lower triangular. If STOREV = 'C', the vector which defines the elementary reflector H(i) is stored in the i-th column of the array V, and H = I - V * T * V**T If STOREV = 'R', the vector which defines the elementary reflector H(i) is stored in the i-th row of the array V, and H = I - V**T * T * V.
 
pure subroutine, public la_qlarft (direct, storev, n, k, v, ldv, tau, t, ldt)
 QLARFT: forms the triangular factor T of a real block reflector H of order n, which is defined as a product of k elementary reflectors. If DIRECT = 'F', H = H(1) H(2) . . . H(k) and T is upper triangular; If DIRECT = 'B', H = H(k) . . . H(2) H(1) and T is lower triangular. If STOREV = 'C', the vector which defines the elementary reflector H(i) is stored in the i-th column of the array V, and H = I - V * T * V**T If STOREV = 'R', the vector which defines the elementary reflector H(i) is stored in the i-th row of the array V, and H = I - V**T * T * V.
 
pure subroutine, public la_slarfx (side, m, n, v, tau, c, ldc, work)
 SLARFX: applies a real elementary reflector H to a real m by n matrix C, from either the left or the right. H is represented in the form H = I - tau * v * v**T where tau is a real scalar and v is a real vector. If tau = 0, then H is taken to be the unit matrix This version uses inline code if H has order < 11.
 
pure subroutine, public la_dlarfx (side, m, n, v, tau, c, ldc, work)
 DLARFX: applies a real elementary reflector H to a real m by n matrix C, from either the left or the right. H is represented in the form H = I - tau * v * v**T where tau is a real scalar and v is a real vector. If tau = 0, then H is taken to be the unit matrix This version uses inline code if H has order < 11.
 
pure subroutine, public la_qlarfx (side, m, n, v, tau, c, ldc, work)
 QLARFX: applies a real elementary reflector H to a real m by n matrix C, from either the left or the right. H is represented in the form H = I - tau * v * v**T where tau is a real scalar and v is a real vector. If tau = 0, then H is taken to be the unit matrix This version uses inline code if H has order < 11.
 
pure subroutine, public la_slarfy (uplo, n, v, incv, tau, c, ldc, work)
 SLARFY: applies an elementary reflector, or Householder matrix, H, to an n x n symmetric matrix C, from both the left and the right. H is represented in the form H = I - tau * v * v' where tau is a scalar and v is a vector. If tau is zero, then H is taken to be the unit matrix.
 
pure subroutine, public la_dlarfy (uplo, n, v, incv, tau, c, ldc, work)
 DLARFY: applies an elementary reflector, or Householder matrix, H, to an n x n symmetric matrix C, from both the left and the right. H is represented in the form H = I - tau * v * v' where tau is a scalar and v is a vector. If tau is zero, then H is taken to be the unit matrix.
 
pure subroutine, public la_qlarfy (uplo, n, v, incv, tau, c, ldc, work)
 QLARFY: applies an elementary reflector, or Householder matrix, H, to an n x n symmetric matrix C, from both the left and the right. H is represented in the form H = I - tau * v * v' where tau is a scalar and v is a vector. If tau is zero, then H is taken to be the unit matrix.
 
pure subroutine, public la_slarfg (n, alpha, x, incx, tau)
 SLARFG: generates a real elementary reflector H of order n, such that H * ( alpha ) = ( beta ), H**T * H = I. ( x ) ( 0 ) where alpha and beta are scalars, and x is an (n-1)-element real vector. H is represented in the form H = I - tau * ( 1 ) * ( 1 v**T ) , ( v ) where tau is a real scalar and v is a real (n-1)-element vector. If the elements of x are all zero, then tau = 0 and H is taken to be the unit matrix. Otherwise 1 <= tau <= 2.
 
pure subroutine, public la_dlarfg (n, alpha, x, incx, tau)
 DLARFG: generates a real elementary reflector H of order n, such that H * ( alpha ) = ( beta ), H**T * H = I. ( x ) ( 0 ) where alpha and beta are scalars, and x is an (n-1)-element real vector. H is represented in the form H = I - tau * ( 1 ) * ( 1 v**T ) , ( v ) where tau is a real scalar and v is a real (n-1)-element vector. If the elements of x are all zero, then tau = 0 and H is taken to be the unit matrix. Otherwise 1 <= tau <= 2.
 
pure subroutine, public la_qlarfg (n, alpha, x, incx, tau)
 QLARFG: generates a real elementary reflector H of order n, such that H * ( alpha ) = ( beta ), H**T * H = I. ( x ) ( 0 ) where alpha and beta are scalars, and x is an (n-1)-element real vector. H is represented in the form H = I - tau * ( 1 ) * ( 1 v**T ) , ( v ) where tau is a real scalar and v is a real (n-1)-element vector. If the elements of x are all zero, then tau = 0 and H is taken to be the unit matrix. Otherwise 1 <= tau <= 2.
 
subroutine, public la_slarfgp (n, alpha, x, incx, tau)
 SLARFGP: generates a real elementary reflector H of order n, such that H * ( alpha ) = ( beta ), H**T * H = I. ( x ) ( 0 ) where alpha and beta are scalars, beta is non-negative, and x is an (n-1)-element real vector. H is represented in the form H = I - tau * ( 1 ) * ( 1 v**T ) , ( v ) where tau is a real scalar and v is a real (n-1)-element vector. If the elements of x are all zero, then tau = 0 and H is taken to be the unit matrix.
 
subroutine, public la_dlarfgp (n, alpha, x, incx, tau)
 DLARFGP: generates a real elementary reflector H of order n, such that H * ( alpha ) = ( beta ), H**T * H = I. ( x ) ( 0 ) where alpha and beta are scalars, beta is non-negative, and x is an (n-1)-element real vector. H is represented in the form H = I - tau * ( 1 ) * ( 1 v**T ) , ( v ) where tau is a real scalar and v is a real (n-1)-element vector. If the elements of x are all zero, then tau = 0 and H is taken to be the unit matrix.
 
subroutine, public la_qlarfgp (n, alpha, x, incx, tau)
 QLARFGP: generates a real elementary reflector H of order n, such that H * ( alpha ) = ( beta ), H**T * H = I. ( x ) ( 0 ) where alpha and beta are scalars, beta is non-negative, and x is an (n-1)-element real vector. H is represented in the form H = I - tau * ( 1 ) * ( 1 v**T ) , ( v ) where tau is a real scalar and v is a real (n-1)-element vector. If the elements of x are all zero, then tau = 0 and H is taken to be the unit matrix.
 
pure subroutine, public la_clarf (side, m, n, v, incv, tau, c, ldc, work)
 CLARF: applies a complex elementary reflector H to a complex M-by-N matrix C, from either the left or the right. H is represented in the form H = I - tau * v * v**H where tau is a complex scalar and v is a complex vector. If tau = 0, then H is taken to be the unit matrix. To apply H**H (the conjugate transpose of H), supply conjg(tau) instead tau.
 
pure subroutine, public la_zlarf (side, m, n, v, incv, tau, c, ldc, work)
 ZLARF: applies a complex elementary reflector H to a complex M-by-N matrix C, from either the left or the right. H is represented in the form H = I - tau * v * v**H where tau is a complex scalar and v is a complex vector. If tau = 0, then H is taken to be the unit matrix. To apply H**H, supply conjg(tau) instead tau.
 
pure subroutine, public la_wlarf (side, m, n, v, incv, tau, c, ldc, work)
 WLARF: applies a complex elementary reflector H to a complex M-by-N matrix C, from either the left or the right. H is represented in the form H = I - tau * v * v**H where tau is a complex scalar and v is a complex vector. If tau = 0, then H is taken to be the unit matrix. To apply H**H, supply conjg(tau) instead tau.
 
pure subroutine, public la_clarfb (side, trans, direct, storev, m, n, k, v, ldv, t, ldt, c, ldc, work, ldwork)
 CLARFB: applies a complex block reflector H or its transpose H**H to a complex M-by-N matrix C, from either the left or the right.
 
pure subroutine, public la_zlarfb (side, trans, direct, storev, m, n, k, v, ldv, t, ldt, c, ldc, work, ldwork)
 ZLARFB: applies a complex block reflector H or its transpose H**H to a complex M-by-N matrix C, from either the left or the right.
 
pure subroutine, public la_wlarfb (side, trans, direct, storev, m, n, k, v, ldv, t, ldt, c, ldc, work, ldwork)
 WLARFB: applies a complex block reflector H or its transpose H**H to a complex M-by-N matrix C, from either the left or the right.
 
pure subroutine, public la_clarfg (n, alpha, x, incx, tau)
 CLARFG: generates a complex elementary reflector H of order n, such that H**H * ( alpha ) = ( beta ), H**H * H = I. ( x ) ( 0 ) where alpha and beta are scalars, with beta real, and x is an (n-1)-element complex vector. H is represented in the form H = I - tau * ( 1 ) * ( 1 v**H ) , ( v ) where tau is a complex scalar and v is a complex (n-1)-element vector. Note that H is not hermitian. If the elements of x are all zero and alpha is real, then tau = 0 and H is taken to be the unit matrix. Otherwise 1 <= real(tau) <= 2 and abs(tau-1) <= 1 .
 
pure subroutine, public la_zlarfg (n, alpha, x, incx, tau)
 ZLARFG: generates a complex elementary reflector H of order n, such that H**H * ( alpha ) = ( beta ), H**H * H = I. ( x ) ( 0 ) where alpha and beta are scalars, with beta real, and x is an (n-1)-element complex vector. H is represented in the form H = I - tau * ( 1 ) * ( 1 v**H ) , ( v ) where tau is a complex scalar and v is a complex (n-1)-element vector. Note that H is not hermitian. If the elements of x are all zero and alpha is real, then tau = 0 and H is taken to be the unit matrix. Otherwise 1 <= real(tau) <= 2 and abs(tau-1) <= 1 .
 
pure subroutine, public la_wlarfg (n, alpha, x, incx, tau)
 WLARFG: generates a complex elementary reflector H of order n, such that H**H * ( alpha ) = ( beta ), H**H * H = I. ( x ) ( 0 ) where alpha and beta are scalars, with beta real, and x is an (n-1)-element complex vector. H is represented in the form H = I - tau * ( 1 ) * ( 1 v**H ) , ( v ) where tau is a complex scalar and v is a complex (n-1)-element vector. Note that H is not hermitian. If the elements of x are all zero and alpha is real, then tau = 0 and H is taken to be the unit matrix. Otherwise 1 <= real(tau) <= 2 and abs(tau-1) <= 1 .
 
subroutine, public la_clarfgp (n, alpha, x, incx, tau)
 CLARFGP: generates a complex elementary reflector H of order n, such that H**H * ( alpha ) = ( beta ), H**H * H = I. ( x ) ( 0 ) where alpha and beta are scalars, beta is real and non-negative, and x is an (n-1)-element complex vector. H is represented in the form H = I - tau * ( 1 ) * ( 1 v**H ) , ( v ) where tau is a complex scalar and v is a complex (n-1)-element vector. Note that H is not hermitian. If the elements of x are all zero and alpha is real, then tau = 0 and H is taken to be the unit matrix.
 
subroutine, public la_zlarfgp (n, alpha, x, incx, tau)
 ZLARFGP: generates a complex elementary reflector H of order n, such that H**H * ( alpha ) = ( beta ), H**H * H = I. ( x ) ( 0 ) where alpha and beta are scalars, beta is real and non-negative, and x is an (n-1)-element complex vector. H is represented in the form H = I - tau * ( 1 ) * ( 1 v**H ) , ( v ) where tau is a complex scalar and v is a complex (n-1)-element vector. Note that H is not hermitian. If the elements of x are all zero and alpha is real, then tau = 0 and H is taken to be the unit matrix.
 
subroutine, public la_wlarfgp (n, alpha, x, incx, tau)
 WLARFGP: generates a complex elementary reflector H of order n, such that H**H * ( alpha ) = ( beta ), H**H * H = I. ( x ) ( 0 ) where alpha and beta are scalars, beta is real and non-negative, and x is an (n-1)-element complex vector. H is represented in the form H = I - tau * ( 1 ) * ( 1 v**H ) , ( v ) where tau is a complex scalar and v is a complex (n-1)-element vector. Note that H is not hermitian. If the elements of x are all zero and alpha is real, then tau = 0 and H is taken to be the unit matrix.
 
pure subroutine, public la_clarft (direct, storev, n, k, v, ldv, tau, t, ldt)
 CLARFT: forms the triangular factor T of a complex block reflector H of order n, which is defined as a product of k elementary reflectors. If DIRECT = 'F', H = H(1) H(2) . . . H(k) and T is upper triangular; If DIRECT = 'B', H = H(k) . . . H(2) H(1) and T is lower triangular. If STOREV = 'C', the vector which defines the elementary reflector H(i) is stored in the i-th column of the array V, and H = I - V * T * V**H If STOREV = 'R', the vector which defines the elementary reflector H(i) is stored in the i-th row of the array V, and H = I - V**H * T * V.
 
pure subroutine, public la_zlarft (direct, storev, n, k, v, ldv, tau, t, ldt)
 ZLARFT: forms the triangular factor T of a complex block reflector H of order n, which is defined as a product of k elementary reflectors. If DIRECT = 'F', H = H(1) H(2) . . . H(k) and T is upper triangular; If DIRECT = 'B', H = H(k) . . . H(2) H(1) and T is lower triangular. If STOREV = 'C', the vector which defines the elementary reflector H(i) is stored in the i-th column of the array V, and H = I - V * T * V**H If STOREV = 'R', the vector which defines the elementary reflector H(i) is stored in the i-th row of the array V, and H = I - V**H * T * V.
 
pure subroutine, public la_wlarft (direct, storev, n, k, v, ldv, tau, t, ldt)
 WLARFT: forms the triangular factor T of a complex block reflector H of order n, which is defined as a product of k elementary reflectors. If DIRECT = 'F', H = H(1) H(2) . . . H(k) and T is upper triangular; If DIRECT = 'B', H = H(k) . . . H(2) H(1) and T is lower triangular. If STOREV = 'C', the vector which defines the elementary reflector H(i) is stored in the i-th column of the array V, and H = I - V * T * V**H If STOREV = 'R', the vector which defines the elementary reflector H(i) is stored in the i-th row of the array V, and H = I - V**H * T * V.
 
pure subroutine, public la_clarfx (side, m, n, v, tau, c, ldc, work)
 CLARFX: applies a complex elementary reflector H to a complex m by n matrix C, from either the left or the right. H is represented in the form H = I - tau * v * v**H where tau is a complex scalar and v is a complex vector. If tau = 0, then H is taken to be the unit matrix This version uses inline code if H has order < 11.
 
pure subroutine, public la_zlarfx (side, m, n, v, tau, c, ldc, work)
 ZLARFX: applies a complex elementary reflector H to a complex m by n matrix C, from either the left or the right. H is represented in the form H = I - tau * v * v**H where tau is a complex scalar and v is a complex vector. If tau = 0, then H is taken to be the unit matrix This version uses inline code if H has order < 11.
 
pure subroutine, public la_wlarfx (side, m, n, v, tau, c, ldc, work)
 WLARFX: applies a complex elementary reflector H to a complex m by n matrix C, from either the left or the right. H is represented in the form H = I - tau * v * v**H where tau is a complex scalar and v is a complex vector. If tau = 0, then H is taken to be the unit matrix This version uses inline code if H has order < 11.
 
pure subroutine, public la_clarfy (uplo, n, v, incv, tau, c, ldc, work)
 CLARFY: applies an elementary reflector, or Householder matrix, H, to an n x n Hermitian matrix C, from both the left and the right. H is represented in the form H = I - tau * v * v' where tau is a scalar and v is a vector. If tau is zero, then H is taken to be the unit matrix.
 
pure subroutine, public la_zlarfy (uplo, n, v, incv, tau, c, ldc, work)
 ZLARFY: applies an elementary reflector, or Householder matrix, H, to an n x n Hermitian matrix C, from both the left and the right. H is represented in the form H = I - tau * v * v' where tau is a scalar and v is a vector. If tau is zero, then H is taken to be the unit matrix.
 
pure subroutine, public la_wlarfy (uplo, n, v, incv, tau, c, ldc, work)
 WLARFY: applies an elementary reflector, or Householder matrix, H, to an n x n Hermitian matrix C, from both the left and the right. H is represented in the form H = I - tau * v * v' where tau is a scalar and v is a vector. If tau is zero, then H is taken to be the unit matrix.
 

Detailed Description

Householder reflectors: generation, blocking, application.

Function/Subroutine Documentation

◆ la_clarf()

pure subroutine, public la_lapack_householder_reflectors::la_clarf ( character, intent(in) side,
integer(ilp), intent(in) m,
integer(ilp), intent(in) n,
complex(sp), dimension(*), intent(in) v,
integer(ilp), intent(in) incv,
complex(sp), intent(in) tau,
complex(sp), dimension(ldc,*), intent(inout) c,
integer(ilp), intent(in) ldc,
complex(sp), dimension(*), intent(out) work )

CLARF: applies a complex elementary reflector H to a complex M-by-N matrix C, from either the left or the right. H is represented in the form H = I - tau * v * v**H where tau is a complex scalar and v is a complex vector. If tau = 0, then H is taken to be the unit matrix. To apply H**H (the conjugate transpose of H), supply conjg(tau) instead tau.

Here is the call graph for this function:

◆ la_clarfb()

pure subroutine, public la_lapack_householder_reflectors::la_clarfb ( character, intent(in) side,
character, intent(in) trans,
character, intent(in) direct,
character, intent(in) storev,
integer(ilp), intent(in) m,
integer(ilp), intent(in) n,
integer(ilp), intent(in) k,
complex(sp), dimension(ldv,*), intent(in) v,
integer(ilp), intent(in) ldv,
complex(sp), dimension(ldt,*), intent(in) t,
integer(ilp), intent(in) ldt,
complex(sp), dimension(ldc,*), intent(inout) c,
integer(ilp), intent(in) ldc,
complex(sp), dimension(ldwork,*), intent(out) work,
integer(ilp), intent(in) ldwork )

CLARFB: applies a complex block reflector H or its transpose H**H to a complex M-by-N matrix C, from either the left or the right.

Here is the call graph for this function:

◆ la_clarfg()

pure subroutine, public la_lapack_householder_reflectors::la_clarfg ( integer(ilp), intent(in) n,
complex(sp), intent(inout) alpha,
complex(sp), dimension(*), intent(inout) x,
integer(ilp), intent(in) incx,
complex(sp), intent(out) tau )

CLARFG: generates a complex elementary reflector H of order n, such that H**H * ( alpha ) = ( beta ), H**H * H = I. ( x ) ( 0 ) where alpha and beta are scalars, with beta real, and x is an (n-1)-element complex vector. H is represented in the form H = I - tau * ( 1 ) * ( 1 v**H ) , ( v ) where tau is a complex scalar and v is a complex (n-1)-element vector. Note that H is not hermitian. If the elements of x are all zero and alpha is real, then tau = 0 and H is taken to be the unit matrix. Otherwise 1 <= real(tau) <= 2 and abs(tau-1) <= 1 .

Here is the call graph for this function:

◆ la_clarfgp()

subroutine, public la_lapack_householder_reflectors::la_clarfgp ( integer(ilp), intent(in) n,
complex(sp), intent(inout) alpha,
complex(sp), dimension(*), intent(inout) x,
integer(ilp), intent(in) incx,
complex(sp), intent(out) tau )

CLARFGP: generates a complex elementary reflector H of order n, such that H**H * ( alpha ) = ( beta ), H**H * H = I. ( x ) ( 0 ) where alpha and beta are scalars, beta is real and non-negative, and x is an (n-1)-element complex vector. H is represented in the form H = I - tau * ( 1 ) * ( 1 v**H ) , ( v ) where tau is a complex scalar and v is a complex (n-1)-element vector. Note that H is not hermitian. If the elements of x are all zero and alpha is real, then tau = 0 and H is taken to be the unit matrix.

Here is the call graph for this function:

◆ la_clarft()

pure subroutine, public la_lapack_householder_reflectors::la_clarft ( character, intent(in) direct,
character, intent(in) storev,
integer(ilp), intent(in) n,
integer(ilp), intent(in) k,
complex(sp), dimension(ldv,*), intent(in) v,
integer(ilp), intent(in) ldv,
complex(sp), dimension(*), intent(in) tau,
complex(sp), dimension(ldt,*), intent(out) t,
integer(ilp), intent(in) ldt )

CLARFT: forms the triangular factor T of a complex block reflector H of order n, which is defined as a product of k elementary reflectors. If DIRECT = 'F', H = H(1) H(2) . . . H(k) and T is upper triangular; If DIRECT = 'B', H = H(k) . . . H(2) H(1) and T is lower triangular. If STOREV = 'C', the vector which defines the elementary reflector H(i) is stored in the i-th column of the array V, and H = I - V * T * V**H If STOREV = 'R', the vector which defines the elementary reflector H(i) is stored in the i-th row of the array V, and H = I - V**H * T * V.

Here is the call graph for this function:

◆ la_clarfx()

pure subroutine, public la_lapack_householder_reflectors::la_clarfx ( character, intent(in) side,
integer(ilp), intent(in) m,
integer(ilp), intent(in) n,
complex(sp), dimension(*), intent(in) v,
complex(sp), intent(in) tau,
complex(sp), dimension(ldc,*), intent(inout) c,
integer(ilp), intent(in) ldc,
complex(sp), dimension(*), intent(out) work )

CLARFX: applies a complex elementary reflector H to a complex m by n matrix C, from either the left or the right. H is represented in the form H = I - tau * v * v**H where tau is a complex scalar and v is a complex vector. If tau = 0, then H is taken to be the unit matrix This version uses inline code if H has order < 11.

Here is the call graph for this function:

◆ la_clarfy()

pure subroutine, public la_lapack_householder_reflectors::la_clarfy ( character, intent(in) uplo,
integer(ilp), intent(in) n,
complex(sp), dimension(*), intent(in) v,
integer(ilp), intent(in) incv,
complex(sp), intent(in) tau,
complex(sp), dimension(ldc,*), intent(inout) c,
integer(ilp), intent(in) ldc,
complex(sp), dimension(*), intent(out) work )

CLARFY: applies an elementary reflector, or Householder matrix, H, to an n x n Hermitian matrix C, from both the left and the right. H is represented in the form H = I - tau * v * v' where tau is a scalar and v is a vector. If tau is zero, then H is taken to be the unit matrix.

Here is the call graph for this function:

◆ la_dlarf()

pure subroutine, public la_lapack_householder_reflectors::la_dlarf ( character, intent(in) side,
integer(ilp), intent(in) m,
integer(ilp), intent(in) n,
real(dp), dimension(*), intent(in) v,
integer(ilp), intent(in) incv,
real(dp), intent(in) tau,
real(dp), dimension(ldc,*), intent(inout) c,
integer(ilp), intent(in) ldc,
real(dp), dimension(*), intent(out) work )

DLARF: applies a real elementary reflector H to a real m by n matrix C, from either the left or the right. H is represented in the form H = I - tau * v * v**T where tau is a real scalar and v is a real vector. If tau = 0, then H is taken to be the unit matrix.

Here is the call graph for this function:

◆ la_dlarfb()

pure subroutine, public la_lapack_householder_reflectors::la_dlarfb ( character, intent(in) side,
character, intent(in) trans,
character, intent(in) direct,
character, intent(in) storev,
integer(ilp), intent(in) m,
integer(ilp), intent(in) n,
integer(ilp), intent(in) k,
real(dp), dimension(ldv,*), intent(in) v,
integer(ilp), intent(in) ldv,
real(dp), dimension(ldt,*), intent(in) t,
integer(ilp), intent(in) ldt,
real(dp), dimension(ldc,*), intent(inout) c,
integer(ilp), intent(in) ldc,
real(dp), dimension(ldwork,*), intent(out) work,
integer(ilp), intent(in) ldwork )

DLARFB: applies a real block reflector H or its transpose H**T to a real m by n matrix C, from either the left or the right.

Here is the call graph for this function:

◆ la_dlarfg()

pure subroutine, public la_lapack_householder_reflectors::la_dlarfg ( integer(ilp), intent(in) n,
real(dp), intent(inout) alpha,
real(dp), dimension(*), intent(inout) x,
integer(ilp), intent(in) incx,
real(dp), intent(out) tau )

DLARFG: generates a real elementary reflector H of order n, such that H * ( alpha ) = ( beta ), H**T * H = I. ( x ) ( 0 ) where alpha and beta are scalars, and x is an (n-1)-element real vector. H is represented in the form H = I - tau * ( 1 ) * ( 1 v**T ) , ( v ) where tau is a real scalar and v is a real (n-1)-element vector. If the elements of x are all zero, then tau = 0 and H is taken to be the unit matrix. Otherwise 1 <= tau <= 2.

Here is the call graph for this function:

◆ la_dlarfgp()

subroutine, public la_lapack_householder_reflectors::la_dlarfgp ( integer(ilp), intent(in) n,
real(dp), intent(inout) alpha,
real(dp), dimension(*), intent(inout) x,
integer(ilp), intent(in) incx,
real(dp), intent(out) tau )

DLARFGP: generates a real elementary reflector H of order n, such that H * ( alpha ) = ( beta ), H**T * H = I. ( x ) ( 0 ) where alpha and beta are scalars, beta is non-negative, and x is an (n-1)-element real vector. H is represented in the form H = I - tau * ( 1 ) * ( 1 v**T ) , ( v ) where tau is a real scalar and v is a real (n-1)-element vector. If the elements of x are all zero, then tau = 0 and H is taken to be the unit matrix.

Here is the call graph for this function:

◆ la_dlarft()

pure subroutine, public la_lapack_householder_reflectors::la_dlarft ( character, intent(in) direct,
character, intent(in) storev,
integer(ilp), intent(in) n,
integer(ilp), intent(in) k,
real(dp), dimension(ldv,*), intent(in) v,
integer(ilp), intent(in) ldv,
real(dp), dimension(*), intent(in) tau,
real(dp), dimension(ldt,*), intent(out) t,
integer(ilp), intent(in) ldt )

DLARFT: forms the triangular factor T of a real block reflector H of order n, which is defined as a product of k elementary reflectors. If DIRECT = 'F', H = H(1) H(2) . . . H(k) and T is upper triangular; If DIRECT = 'B', H = H(k) . . . H(2) H(1) and T is lower triangular. If STOREV = 'C', the vector which defines the elementary reflector H(i) is stored in the i-th column of the array V, and H = I - V * T * V**T If STOREV = 'R', the vector which defines the elementary reflector H(i) is stored in the i-th row of the array V, and H = I - V**T * T * V.

Here is the call graph for this function:

◆ la_dlarfx()

pure subroutine, public la_lapack_householder_reflectors::la_dlarfx ( character, intent(in) side,
integer(ilp), intent(in) m,
integer(ilp), intent(in) n,
real(dp), dimension(*), intent(in) v,
real(dp), intent(in) tau,
real(dp), dimension(ldc,*), intent(inout) c,
integer(ilp), intent(in) ldc,
real(dp), dimension(*), intent(out) work )

DLARFX: applies a real elementary reflector H to a real m by n matrix C, from either the left or the right. H is represented in the form H = I - tau * v * v**T where tau is a real scalar and v is a real vector. If tau = 0, then H is taken to be the unit matrix This version uses inline code if H has order < 11.

Here is the call graph for this function:

◆ la_dlarfy()

pure subroutine, public la_lapack_householder_reflectors::la_dlarfy ( character, intent(in) uplo,
integer(ilp), intent(in) n,
real(dp), dimension(*), intent(in) v,
integer(ilp), intent(in) incv,
real(dp), intent(in) tau,
real(dp), dimension(ldc,*), intent(inout) c,
integer(ilp), intent(in) ldc,
real(dp), dimension(*), intent(out) work )

DLARFY: applies an elementary reflector, or Householder matrix, H, to an n x n symmetric matrix C, from both the left and the right. H is represented in the form H = I - tau * v * v' where tau is a scalar and v is a vector. If tau is zero, then H is taken to be the unit matrix.

Here is the call graph for this function:

◆ la_qlarf()

pure subroutine, public la_lapack_householder_reflectors::la_qlarf ( character, intent(in) side,
integer(ilp), intent(in) m,
integer(ilp), intent(in) n,
real(qp), dimension(*), intent(in) v,
integer(ilp), intent(in) incv,
real(qp), intent(in) tau,
real(qp), dimension(ldc,*), intent(inout) c,
integer(ilp), intent(in) ldc,
real(qp), dimension(*), intent(out) work )

QLARF: applies a real elementary reflector H to a real m by n matrix C, from either the left or the right. H is represented in the form H = I - tau * v * v**T where tau is a real scalar and v is a real vector. If tau = 0, then H is taken to be the unit matrix.

Here is the call graph for this function:

◆ la_qlarfb()

pure subroutine, public la_lapack_householder_reflectors::la_qlarfb ( character, intent(in) side,
character, intent(in) trans,
character, intent(in) direct,
character, intent(in) storev,
integer(ilp), intent(in) m,
integer(ilp), intent(in) n,
integer(ilp), intent(in) k,
real(qp), dimension(ldv,*), intent(in) v,
integer(ilp), intent(in) ldv,
real(qp), dimension(ldt,*), intent(in) t,
integer(ilp), intent(in) ldt,
real(qp), dimension(ldc,*), intent(inout) c,
integer(ilp), intent(in) ldc,
real(qp), dimension(ldwork,*), intent(out) work,
integer(ilp), intent(in) ldwork )

QLARFB: applies a real block reflector H or its transpose H**T to a real m by n matrix C, from either the left or the right.

Here is the call graph for this function:

◆ la_qlarfg()

pure subroutine, public la_lapack_householder_reflectors::la_qlarfg ( integer(ilp), intent(in) n,
real(qp), intent(inout) alpha,
real(qp), dimension(*), intent(inout) x,
integer(ilp), intent(in) incx,
real(qp), intent(out) tau )

QLARFG: generates a real elementary reflector H of order n, such that H * ( alpha ) = ( beta ), H**T * H = I. ( x ) ( 0 ) where alpha and beta are scalars, and x is an (n-1)-element real vector. H is represented in the form H = I - tau * ( 1 ) * ( 1 v**T ) , ( v ) where tau is a real scalar and v is a real (n-1)-element vector. If the elements of x are all zero, then tau = 0 and H is taken to be the unit matrix. Otherwise 1 <= tau <= 2.

Here is the call graph for this function:

◆ la_qlarfgp()

subroutine, public la_lapack_householder_reflectors::la_qlarfgp ( integer(ilp), intent(in) n,
real(qp), intent(inout) alpha,
real(qp), dimension(*), intent(inout) x,
integer(ilp), intent(in) incx,
real(qp), intent(out) tau )

QLARFGP: generates a real elementary reflector H of order n, such that H * ( alpha ) = ( beta ), H**T * H = I. ( x ) ( 0 ) where alpha and beta are scalars, beta is non-negative, and x is an (n-1)-element real vector. H is represented in the form H = I - tau * ( 1 ) * ( 1 v**T ) , ( v ) where tau is a real scalar and v is a real (n-1)-element vector. If the elements of x are all zero, then tau = 0 and H is taken to be the unit matrix.

Here is the call graph for this function:

◆ la_qlarft()

pure subroutine, public la_lapack_householder_reflectors::la_qlarft ( character, intent(in) direct,
character, intent(in) storev,
integer(ilp), intent(in) n,
integer(ilp), intent(in) k,
real(qp), dimension(ldv,*), intent(in) v,
integer(ilp), intent(in) ldv,
real(qp), dimension(*), intent(in) tau,
real(qp), dimension(ldt,*), intent(out) t,
integer(ilp), intent(in) ldt )

QLARFT: forms the triangular factor T of a real block reflector H of order n, which is defined as a product of k elementary reflectors. If DIRECT = 'F', H = H(1) H(2) . . . H(k) and T is upper triangular; If DIRECT = 'B', H = H(k) . . . H(2) H(1) and T is lower triangular. If STOREV = 'C', the vector which defines the elementary reflector H(i) is stored in the i-th column of the array V, and H = I - V * T * V**T If STOREV = 'R', the vector which defines the elementary reflector H(i) is stored in the i-th row of the array V, and H = I - V**T * T * V.

Here is the call graph for this function:

◆ la_qlarfx()

pure subroutine, public la_lapack_householder_reflectors::la_qlarfx ( character, intent(in) side,
integer(ilp), intent(in) m,
integer(ilp), intent(in) n,
real(qp), dimension(*), intent(in) v,
real(qp), intent(in) tau,
real(qp), dimension(ldc,*), intent(inout) c,
integer(ilp), intent(in) ldc,
real(qp), dimension(*), intent(out) work )

QLARFX: applies a real elementary reflector H to a real m by n matrix C, from either the left or the right. H is represented in the form H = I - tau * v * v**T where tau is a real scalar and v is a real vector. If tau = 0, then H is taken to be the unit matrix This version uses inline code if H has order < 11.

Here is the call graph for this function:

◆ la_qlarfy()

pure subroutine, public la_lapack_householder_reflectors::la_qlarfy ( character, intent(in) uplo,
integer(ilp), intent(in) n,
real(qp), dimension(*), intent(in) v,
integer(ilp), intent(in) incv,
real(qp), intent(in) tau,
real(qp), dimension(ldc,*), intent(inout) c,
integer(ilp), intent(in) ldc,
real(qp), dimension(*), intent(out) work )

QLARFY: applies an elementary reflector, or Householder matrix, H, to an n x n symmetric matrix C, from both the left and the right. H is represented in the form H = I - tau * v * v' where tau is a scalar and v is a vector. If tau is zero, then H is taken to be the unit matrix.

Here is the call graph for this function:

◆ la_slarf()

pure subroutine, public la_lapack_householder_reflectors::la_slarf ( character, intent(in) side,
integer(ilp), intent(in) m,
integer(ilp), intent(in) n,
real(sp), dimension(*), intent(in) v,
integer(ilp), intent(in) incv,
real(sp), intent(in) tau,
real(sp), dimension(ldc,*), intent(inout) c,
integer(ilp), intent(in) ldc,
real(sp), dimension(*), intent(out) work )

SLARF: applies a real elementary reflector H to a real m by n matrix C, from either the left or the right. H is represented in the form H = I - tau * v * v**T where tau is a real scalar and v is a real vector. If tau = 0, then H is taken to be the unit matrix.

Here is the call graph for this function:

◆ la_slarfb()

pure subroutine, public la_lapack_householder_reflectors::la_slarfb ( character, intent(in) side,
character, intent(in) trans,
character, intent(in) direct,
character, intent(in) storev,
integer(ilp), intent(in) m,
integer(ilp), intent(in) n,
integer(ilp), intent(in) k,
real(sp), dimension(ldv,*), intent(in) v,
integer(ilp), intent(in) ldv,
real(sp), dimension(ldt,*), intent(in) t,
integer(ilp), intent(in) ldt,
real(sp), dimension(ldc,*), intent(inout) c,
integer(ilp), intent(in) ldc,
real(sp), dimension(ldwork,*), intent(out) work,
integer(ilp), intent(in) ldwork )

SLARFB: applies a real block reflector H or its transpose H**T to a real m by n matrix C, from either the left or the right.

Here is the call graph for this function:

◆ la_slarfg()

pure subroutine, public la_lapack_householder_reflectors::la_slarfg ( integer(ilp), intent(in) n,
real(sp), intent(inout) alpha,
real(sp), dimension(*), intent(inout) x,
integer(ilp), intent(in) incx,
real(sp), intent(out) tau )

SLARFG: generates a real elementary reflector H of order n, such that H * ( alpha ) = ( beta ), H**T * H = I. ( x ) ( 0 ) where alpha and beta are scalars, and x is an (n-1)-element real vector. H is represented in the form H = I - tau * ( 1 ) * ( 1 v**T ) , ( v ) where tau is a real scalar and v is a real (n-1)-element vector. If the elements of x are all zero, then tau = 0 and H is taken to be the unit matrix. Otherwise 1 <= tau <= 2.

Here is the call graph for this function:

◆ la_slarfgp()

subroutine, public la_lapack_householder_reflectors::la_slarfgp ( integer(ilp), intent(in) n,
real(sp), intent(inout) alpha,
real(sp), dimension(*), intent(inout) x,
integer(ilp), intent(in) incx,
real(sp), intent(out) tau )

SLARFGP: generates a real elementary reflector H of order n, such that H * ( alpha ) = ( beta ), H**T * H = I. ( x ) ( 0 ) where alpha and beta are scalars, beta is non-negative, and x is an (n-1)-element real vector. H is represented in the form H = I - tau * ( 1 ) * ( 1 v**T ) , ( v ) where tau is a real scalar and v is a real (n-1)-element vector. If the elements of x are all zero, then tau = 0 and H is taken to be the unit matrix.

Here is the call graph for this function:

◆ la_slarft()

pure subroutine, public la_lapack_householder_reflectors::la_slarft ( character, intent(in) direct,
character, intent(in) storev,
integer(ilp), intent(in) n,
integer(ilp), intent(in) k,
real(sp), dimension(ldv,*), intent(in) v,
integer(ilp), intent(in) ldv,
real(sp), dimension(*), intent(in) tau,
real(sp), dimension(ldt,*), intent(out) t,
integer(ilp), intent(in) ldt )

SLARFT: forms the triangular factor T of a real block reflector H of order n, which is defined as a product of k elementary reflectors. If DIRECT = 'F', H = H(1) H(2) . . . H(k) and T is upper triangular; If DIRECT = 'B', H = H(k) . . . H(2) H(1) and T is lower triangular. If STOREV = 'C', the vector which defines the elementary reflector H(i) is stored in the i-th column of the array V, and H = I - V * T * V**T If STOREV = 'R', the vector which defines the elementary reflector H(i) is stored in the i-th row of the array V, and H = I - V**T * T * V.

Here is the call graph for this function:

◆ la_slarfx()

pure subroutine, public la_lapack_householder_reflectors::la_slarfx ( character, intent(in) side,
integer(ilp), intent(in) m,
integer(ilp), intent(in) n,
real(sp), dimension(*), intent(in) v,
real(sp), intent(in) tau,
real(sp), dimension(ldc,*), intent(inout) c,
integer(ilp), intent(in) ldc,
real(sp), dimension(*), intent(out) work )

SLARFX: applies a real elementary reflector H to a real m by n matrix C, from either the left or the right. H is represented in the form H = I - tau * v * v**T where tau is a real scalar and v is a real vector. If tau = 0, then H is taken to be the unit matrix This version uses inline code if H has order < 11.

Here is the call graph for this function:

◆ la_slarfy()

pure subroutine, public la_lapack_householder_reflectors::la_slarfy ( character, intent(in) uplo,
integer(ilp), intent(in) n,
real(sp), dimension(*), intent(in) v,
integer(ilp), intent(in) incv,
real(sp), intent(in) tau,
real(sp), dimension(ldc,*), intent(inout) c,
integer(ilp), intent(in) ldc,
real(sp), dimension(*), intent(out) work )

SLARFY: applies an elementary reflector, or Householder matrix, H, to an n x n symmetric matrix C, from both the left and the right. H is represented in the form H = I - tau * v * v' where tau is a scalar and v is a vector. If tau is zero, then H is taken to be the unit matrix.

Here is the call graph for this function:

◆ la_wlarf()

pure subroutine, public la_lapack_householder_reflectors::la_wlarf ( character, intent(in) side,
integer(ilp), intent(in) m,
integer(ilp), intent(in) n,
complex(qp), dimension(*), intent(in) v,
integer(ilp), intent(in) incv,
complex(qp), intent(in) tau,
complex(qp), dimension(ldc,*), intent(inout) c,
integer(ilp), intent(in) ldc,
complex(qp), dimension(*), intent(out) work )

WLARF: applies a complex elementary reflector H to a complex M-by-N matrix C, from either the left or the right. H is represented in the form H = I - tau * v * v**H where tau is a complex scalar and v is a complex vector. If tau = 0, then H is taken to be the unit matrix. To apply H**H, supply conjg(tau) instead tau.

Here is the call graph for this function:

◆ la_wlarfb()

pure subroutine, public la_lapack_householder_reflectors::la_wlarfb ( character, intent(in) side,
character, intent(in) trans,
character, intent(in) direct,
character, intent(in) storev,
integer(ilp), intent(in) m,
integer(ilp), intent(in) n,
integer(ilp), intent(in) k,
complex(qp), dimension(ldv,*), intent(in) v,
integer(ilp), intent(in) ldv,
complex(qp), dimension(ldt,*), intent(in) t,
integer(ilp), intent(in) ldt,
complex(qp), dimension(ldc,*), intent(inout) c,
integer(ilp), intent(in) ldc,
complex(qp), dimension(ldwork,*), intent(out) work,
integer(ilp), intent(in) ldwork )

WLARFB: applies a complex block reflector H or its transpose H**H to a complex M-by-N matrix C, from either the left or the right.

Here is the call graph for this function:

◆ la_wlarfg()

pure subroutine, public la_lapack_householder_reflectors::la_wlarfg ( integer(ilp), intent(in) n,
complex(qp), intent(inout) alpha,
complex(qp), dimension(*), intent(inout) x,
integer(ilp), intent(in) incx,
complex(qp), intent(out) tau )

WLARFG: generates a complex elementary reflector H of order n, such that H**H * ( alpha ) = ( beta ), H**H * H = I. ( x ) ( 0 ) where alpha and beta are scalars, with beta real, and x is an (n-1)-element complex vector. H is represented in the form H = I - tau * ( 1 ) * ( 1 v**H ) , ( v ) where tau is a complex scalar and v is a complex (n-1)-element vector. Note that H is not hermitian. If the elements of x are all zero and alpha is real, then tau = 0 and H is taken to be the unit matrix. Otherwise 1 <= real(tau) <= 2 and abs(tau-1) <= 1 .

Here is the call graph for this function:

◆ la_wlarfgp()

subroutine, public la_lapack_householder_reflectors::la_wlarfgp ( integer(ilp), intent(in) n,
complex(qp), intent(inout) alpha,
complex(qp), dimension(*), intent(inout) x,
integer(ilp), intent(in) incx,
complex(qp), intent(out) tau )

WLARFGP: generates a complex elementary reflector H of order n, such that H**H * ( alpha ) = ( beta ), H**H * H = I. ( x ) ( 0 ) where alpha and beta are scalars, beta is real and non-negative, and x is an (n-1)-element complex vector. H is represented in the form H = I - tau * ( 1 ) * ( 1 v**H ) , ( v ) where tau is a complex scalar and v is a complex (n-1)-element vector. Note that H is not hermitian. If the elements of x are all zero and alpha is real, then tau = 0 and H is taken to be the unit matrix.

Here is the call graph for this function:

◆ la_wlarft()

pure subroutine, public la_lapack_householder_reflectors::la_wlarft ( character, intent(in) direct,
character, intent(in) storev,
integer(ilp), intent(in) n,
integer(ilp), intent(in) k,
complex(qp), dimension(ldv,*), intent(in) v,
integer(ilp), intent(in) ldv,
complex(qp), dimension(*), intent(in) tau,
complex(qp), dimension(ldt,*), intent(out) t,
integer(ilp), intent(in) ldt )

WLARFT: forms the triangular factor T of a complex block reflector H of order n, which is defined as a product of k elementary reflectors. If DIRECT = 'F', H = H(1) H(2) . . . H(k) and T is upper triangular; If DIRECT = 'B', H = H(k) . . . H(2) H(1) and T is lower triangular. If STOREV = 'C', the vector which defines the elementary reflector H(i) is stored in the i-th column of the array V, and H = I - V * T * V**H If STOREV = 'R', the vector which defines the elementary reflector H(i) is stored in the i-th row of the array V, and H = I - V**H * T * V.

Here is the call graph for this function:

◆ la_wlarfx()

pure subroutine, public la_lapack_householder_reflectors::la_wlarfx ( character, intent(in) side,
integer(ilp), intent(in) m,
integer(ilp), intent(in) n,
complex(qp), dimension(*), intent(in) v,
complex(qp), intent(in) tau,
complex(qp), dimension(ldc,*), intent(inout) c,
integer(ilp), intent(in) ldc,
complex(qp), dimension(*), intent(out) work )

WLARFX: applies a complex elementary reflector H to a complex m by n matrix C, from either the left or the right. H is represented in the form H = I - tau * v * v**H where tau is a complex scalar and v is a complex vector. If tau = 0, then H is taken to be the unit matrix This version uses inline code if H has order < 11.

Here is the call graph for this function:

◆ la_wlarfy()

pure subroutine, public la_lapack_householder_reflectors::la_wlarfy ( character, intent(in) uplo,
integer(ilp), intent(in) n,
complex(qp), dimension(*), intent(in) v,
integer(ilp), intent(in) incv,
complex(qp), intent(in) tau,
complex(qp), dimension(ldc,*), intent(inout) c,
integer(ilp), intent(in) ldc,
complex(qp), dimension(*), intent(out) work )

WLARFY: applies an elementary reflector, or Householder matrix, H, to an n x n Hermitian matrix C, from both the left and the right. H is represented in the form H = I - tau * v * v' where tau is a scalar and v is a vector. If tau is zero, then H is taken to be the unit matrix.

Here is the call graph for this function:

◆ la_zlarf()

pure subroutine, public la_lapack_householder_reflectors::la_zlarf ( character, intent(in) side,
integer(ilp), intent(in) m,
integer(ilp), intent(in) n,
complex(dp), dimension(*), intent(in) v,
integer(ilp), intent(in) incv,
complex(dp), intent(in) tau,
complex(dp), dimension(ldc,*), intent(inout) c,
integer(ilp), intent(in) ldc,
complex(dp), dimension(*), intent(out) work )

ZLARF: applies a complex elementary reflector H to a complex M-by-N matrix C, from either the left or the right. H is represented in the form H = I - tau * v * v**H where tau is a complex scalar and v is a complex vector. If tau = 0, then H is taken to be the unit matrix. To apply H**H, supply conjg(tau) instead tau.

Here is the call graph for this function:

◆ la_zlarfb()

pure subroutine, public la_lapack_householder_reflectors::la_zlarfb ( character, intent(in) side,
character, intent(in) trans,
character, intent(in) direct,
character, intent(in) storev,
integer(ilp), intent(in) m,
integer(ilp), intent(in) n,
integer(ilp), intent(in) k,
complex(dp), dimension(ldv,*), intent(in) v,
integer(ilp), intent(in) ldv,
complex(dp), dimension(ldt,*), intent(in) t,
integer(ilp), intent(in) ldt,
complex(dp), dimension(ldc,*), intent(inout) c,
integer(ilp), intent(in) ldc,
complex(dp), dimension(ldwork,*), intent(out) work,
integer(ilp), intent(in) ldwork )

ZLARFB: applies a complex block reflector H or its transpose H**H to a complex M-by-N matrix C, from either the left or the right.

Here is the call graph for this function:

◆ la_zlarfg()

pure subroutine, public la_lapack_householder_reflectors::la_zlarfg ( integer(ilp), intent(in) n,
complex(dp), intent(inout) alpha,
complex(dp), dimension(*), intent(inout) x,
integer(ilp), intent(in) incx,
complex(dp), intent(out) tau )

ZLARFG: generates a complex elementary reflector H of order n, such that H**H * ( alpha ) = ( beta ), H**H * H = I. ( x ) ( 0 ) where alpha and beta are scalars, with beta real, and x is an (n-1)-element complex vector. H is represented in the form H = I - tau * ( 1 ) * ( 1 v**H ) , ( v ) where tau is a complex scalar and v is a complex (n-1)-element vector. Note that H is not hermitian. If the elements of x are all zero and alpha is real, then tau = 0 and H is taken to be the unit matrix. Otherwise 1 <= real(tau) <= 2 and abs(tau-1) <= 1 .

Here is the call graph for this function:

◆ la_zlarfgp()

subroutine, public la_lapack_householder_reflectors::la_zlarfgp ( integer(ilp), intent(in) n,
complex(dp), intent(inout) alpha,
complex(dp), dimension(*), intent(inout) x,
integer(ilp), intent(in) incx,
complex(dp), intent(out) tau )

ZLARFGP: generates a complex elementary reflector H of order n, such that H**H * ( alpha ) = ( beta ), H**H * H = I. ( x ) ( 0 ) where alpha and beta are scalars, beta is real and non-negative, and x is an (n-1)-element complex vector. H is represented in the form H = I - tau * ( 1 ) * ( 1 v**H ) , ( v ) where tau is a complex scalar and v is a complex (n-1)-element vector. Note that H is not hermitian. If the elements of x are all zero and alpha is real, then tau = 0 and H is taken to be the unit matrix.

Here is the call graph for this function:

◆ la_zlarft()

pure subroutine, public la_lapack_householder_reflectors::la_zlarft ( character, intent(in) direct,
character, intent(in) storev,
integer(ilp), intent(in) n,
integer(ilp), intent(in) k,
complex(dp), dimension(ldv,*), intent(in) v,
integer(ilp), intent(in) ldv,
complex(dp), dimension(*), intent(in) tau,
complex(dp), dimension(ldt,*), intent(out) t,
integer(ilp), intent(in) ldt )

ZLARFT: forms the triangular factor T of a complex block reflector H of order n, which is defined as a product of k elementary reflectors. If DIRECT = 'F', H = H(1) H(2) . . . H(k) and T is upper triangular; If DIRECT = 'B', H = H(k) . . . H(2) H(1) and T is lower triangular. If STOREV = 'C', the vector which defines the elementary reflector H(i) is stored in the i-th column of the array V, and H = I - V * T * V**H If STOREV = 'R', the vector which defines the elementary reflector H(i) is stored in the i-th row of the array V, and H = I - V**H * T * V.

Here is the call graph for this function:

◆ la_zlarfx()

pure subroutine, public la_lapack_householder_reflectors::la_zlarfx ( character, intent(in) side,
integer(ilp), intent(in) m,
integer(ilp), intent(in) n,
complex(dp), dimension(*), intent(in) v,
complex(dp), intent(in) tau,
complex(dp), dimension(ldc,*), intent(inout) c,
integer(ilp), intent(in) ldc,
complex(dp), dimension(*), intent(out) work )

ZLARFX: applies a complex elementary reflector H to a complex m by n matrix C, from either the left or the right. H is represented in the form H = I - tau * v * v**H where tau is a complex scalar and v is a complex vector. If tau = 0, then H is taken to be the unit matrix This version uses inline code if H has order < 11.

Here is the call graph for this function:

◆ la_zlarfy()

pure subroutine, public la_lapack_householder_reflectors::la_zlarfy ( character, intent(in) uplo,
integer(ilp), intent(in) n,
complex(dp), dimension(*), intent(in) v,
integer(ilp), intent(in) incv,
complex(dp), intent(in) tau,
complex(dp), dimension(ldc,*), intent(inout) c,
integer(ilp), intent(in) ldc,
complex(dp), dimension(*), intent(out) work )

ZLARFY: applies an elementary reflector, or Householder matrix, H, to an n x n Hermitian matrix C, from both the left and the right. H is represented in the form H = I - tau * v * v' where tau is a scalar and v is a vector. If tau is zero, then H is taken to be the unit matrix.

Here is the call graph for this function: