Provided by: liblapack-doc_3.12.0-3build1.1_all 
      
    
NAME
       unmhr - {un,or}mhr: multiply by Q from gehrd
SYNOPSIS
   Functions
       subroutine cunmhr (side, trans, m, n, ilo, ihi, a, lda, tau, c, ldc, work, lwork, info)
           CUNMHR
       subroutine dormhr (side, trans, m, n, ilo, ihi, a, lda, tau, c, ldc, work, lwork, info)
           DORMHR
       subroutine sormhr (side, trans, m, n, ilo, ihi, a, lda, tau, c, ldc, work, lwork, info)
           SORMHR
       subroutine zunmhr (side, trans, m, n, ilo, ihi, a, lda, tau, c, ldc, work, lwork, info)
           ZUNMHR
Detailed Description
Function Documentation
   subroutine cunmhr (character side, character trans, integer m, integer n, integer ilo, integer ihi, complex,
       dimension( lda, * ) a, integer lda, complex, dimension( * ) tau, complex, dimension( ldc, * ) c, integer
       ldc, complex, dimension( * ) work, integer lwork, integer info)
       CUNMHR
       Purpose:
            CUNMHR overwrites the general complex M-by-N matrix C with
                            SIDE = 'L'     SIDE = 'R'
            TRANS = 'N':      Q * C          C * Q
            TRANS = 'C':      Q**H * C       C * Q**H
            where Q is a complex unitary matrix of order nq, with nq = m if
            SIDE = 'L' and nq = n if SIDE = 'R'. Q is defined as the product of
            IHI-ILO elementary reflectors, as returned by CGEHRD:
            Q = H(ilo) H(ilo+1) . . . H(ihi-1).
       Parameters
           SIDE
                     SIDE is CHARACTER*1
                     = 'L': apply Q or Q**H from the Left;
                     = 'R': apply Q or Q**H from the Right.
           TRANS
                     TRANS is CHARACTER*1
                     = 'N': apply Q  (No transpose)
                     = 'C': apply Q**H (Conjugate transpose)
           M
                     M is INTEGER
                     The number of rows of the matrix C. M >= 0.
           N
                     N is INTEGER
                     The number of columns of the matrix C. N >= 0.
           ILO
                     ILO is INTEGER
           IHI
                     IHI is INTEGER
                     ILO and IHI must have the same values as in the previous call
                     of CGEHRD. Q is equal to the unit matrix except in the
                     submatrix Q(ilo+1:ihi,ilo+1:ihi).
                     If SIDE = 'L', then 1 <= ILO <= IHI <= M, if M > 0, and
                     ILO = 1 and IHI = 0, if M = 0;
                     if SIDE = 'R', then 1 <= ILO <= IHI <= N, if N > 0, and
                     ILO = 1 and IHI = 0, if N = 0.
           A
                     A is COMPLEX array, dimension
                                          (LDA,M) if SIDE = 'L'
                                          (LDA,N) if SIDE = 'R'
                     The vectors which define the elementary reflectors, as
                     returned by CGEHRD.
           LDA
                     LDA is INTEGER
                     The leading dimension of the array A.
                     LDA >= max(1,M) if SIDE = 'L'; LDA >= max(1,N) if SIDE = 'R'.
           TAU
                     TAU is COMPLEX array, dimension
                                          (M-1) if SIDE = 'L'
                                          (N-1) if SIDE = 'R'
                     TAU(i) must contain the scalar factor of the elementary
                     reflector H(i), as returned by CGEHRD.
           C
                     C is COMPLEX array, dimension (LDC,N)
                     On entry, the M-by-N matrix C.
                     On exit, C is overwritten by Q*C or Q**H*C or C*Q**H or C*Q.
           LDC
                     LDC is INTEGER
                     The leading dimension of the array C. LDC >= max(1,M).
           WORK
                     WORK is COMPLEX array, dimension (MAX(1,LWORK))
                     On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
           LWORK
                     LWORK is INTEGER
                     The dimension of the array WORK.
                     If SIDE = 'L', LWORK >= max(1,N);
                     if SIDE = 'R', LWORK >= max(1,M).
                     For optimum performance LWORK >= N*NB if SIDE = 'L', and
                     LWORK >= M*NB if SIDE = 'R', where NB is the optimal
                     blocksize.
                     If LWORK = -1, then a workspace query is assumed; the routine
                     only calculates the optimal size of the WORK array, returns
                     this value as the first entry of the WORK array, and no error
                     message related to LWORK is issued by XERBLA.
           INFO
                     INFO is INTEGER
                     = 0:  successful exit
                     < 0:  if INFO = -i, the i-th argument had an illegal value
       Author
           Univ. of Tennessee
           Univ. of California Berkeley
           Univ. of Colorado Denver
           NAG Ltd.
   subroutine dormhr (character side, character trans, integer m, integer n, integer ilo, integer ihi, double
       precision, dimension( lda, * ) a, integer lda, double precision, dimension( * ) tau, double precision,
       dimension( ldc, * ) c, integer ldc, double precision, dimension( * ) work, integer lwork, integer info)
       DORMHR
       Purpose:
            DORMHR overwrites the general real M-by-N matrix C with
                            SIDE = 'L'     SIDE = 'R'
            TRANS = 'N':      Q * C          C * Q
            TRANS = 'T':      Q**T * C       C * Q**T
            where Q is a real orthogonal matrix of order nq, with nq = m if
            SIDE = 'L' and nq = n if SIDE = 'R'. Q is defined as the product of
            IHI-ILO elementary reflectors, as returned by DGEHRD:
            Q = H(ilo) H(ilo+1) . . . H(ihi-1).
       Parameters
           SIDE
                     SIDE is CHARACTER*1
                     = 'L': apply Q or Q**T from the Left;
                     = 'R': apply Q or Q**T from the Right.
           TRANS
                     TRANS is CHARACTER*1
                     = 'N':  No transpose, apply Q;
                     = 'T':  Transpose, apply Q**T.
           M
                     M is INTEGER
                     The number of rows of the matrix C. M >= 0.
           N
                     N is INTEGER
                     The number of columns of the matrix C. N >= 0.
           ILO
                     ILO is INTEGER
           IHI
                     IHI is INTEGER
                     ILO and IHI must have the same values as in the previous call
                     of DGEHRD. Q is equal to the unit matrix except in the
                     submatrix Q(ilo+1:ihi,ilo+1:ihi).
                     If SIDE = 'L', then 1 <= ILO <= IHI <= M, if M > 0, and
                     ILO = 1 and IHI = 0, if M = 0;
                     if SIDE = 'R', then 1 <= ILO <= IHI <= N, if N > 0, and
                     ILO = 1 and IHI = 0, if N = 0.
           A
                     A is DOUBLE PRECISION array, dimension
                                          (LDA,M) if SIDE = 'L'
                                          (LDA,N) if SIDE = 'R'
                     The vectors which define the elementary reflectors, as
                     returned by DGEHRD.
           LDA
                     LDA is INTEGER
                     The leading dimension of the array A.
                     LDA >= max(1,M) if SIDE = 'L'; LDA >= max(1,N) if SIDE = 'R'.
           TAU
                     TAU is DOUBLE PRECISION array, dimension
                                          (M-1) if SIDE = 'L'
                                          (N-1) if SIDE = 'R'
                     TAU(i) must contain the scalar factor of the elementary
                     reflector H(i), as returned by DGEHRD.
           C
                     C is DOUBLE PRECISION array, dimension (LDC,N)
                     On entry, the M-by-N matrix C.
                     On exit, C is overwritten by Q*C or Q**T*C or C*Q**T or C*Q.
           LDC
                     LDC is INTEGER
                     The leading dimension of the array C. LDC >= max(1,M).
           WORK
                     WORK is DOUBLE PRECISION array, dimension (MAX(1,LWORK))
                     On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
           LWORK
                     LWORK is INTEGER
                     The dimension of the array WORK.
                     If SIDE = 'L', LWORK >= max(1,N);
                     if SIDE = 'R', LWORK >= max(1,M).
                     For optimum performance LWORK >= N*NB if SIDE = 'L', and
                     LWORK >= M*NB if SIDE = 'R', where NB is the optimal
                     blocksize.
                     If LWORK = -1, then a workspace query is assumed; the routine
                     only calculates the optimal size of the WORK array, returns
                     this value as the first entry of the WORK array, and no error
                     message related to LWORK is issued by XERBLA.
           INFO
                     INFO is INTEGER
                     = 0:  successful exit
                     < 0:  if INFO = -i, the i-th argument had an illegal value
       Author
           Univ. of Tennessee
           Univ. of California Berkeley
           Univ. of Colorado Denver
           NAG Ltd.
   subroutine sormhr (character side, character trans, integer m, integer n, integer ilo, integer ihi, real,
       dimension( lda, * ) a, integer lda, real, dimension( * ) tau, real, dimension( ldc, * ) c, integer ldc,
       real, dimension( * ) work, integer lwork, integer info)
       SORMHR
       Purpose:
            SORMHR overwrites the general real M-by-N matrix C with
                            SIDE = 'L'     SIDE = 'R'
            TRANS = 'N':      Q * C          C * Q
            TRANS = 'T':      Q**T * C       C * Q**T
            where Q is a real orthogonal matrix of order nq, with nq = m if
            SIDE = 'L' and nq = n if SIDE = 'R'. Q is defined as the product of
            IHI-ILO elementary reflectors, as returned by SGEHRD:
            Q = H(ilo) H(ilo+1) . . . H(ihi-1).
       Parameters
           SIDE
                     SIDE is CHARACTER*1
                     = 'L': apply Q or Q**T from the Left;
                     = 'R': apply Q or Q**T from the Right.
           TRANS
                     TRANS is CHARACTER*1
                     = 'N':  No transpose, apply Q;
                     = 'T':  Transpose, apply Q**T.
           M
                     M is INTEGER
                     The number of rows of the matrix C. M >= 0.
           N
                     N is INTEGER
                     The number of columns of the matrix C. N >= 0.
           ILO
                     ILO is INTEGER
           IHI
                     IHI is INTEGER
                     ILO and IHI must have the same values as in the previous call
                     of SGEHRD. Q is equal to the unit matrix except in the
                     submatrix Q(ilo+1:ihi,ilo+1:ihi).
                     If SIDE = 'L', then 1 <= ILO <= IHI <= M, if M > 0, and
                     ILO = 1 and IHI = 0, if M = 0;
                     if SIDE = 'R', then 1 <= ILO <= IHI <= N, if N > 0, and
                     ILO = 1 and IHI = 0, if N = 0.
           A
                     A is REAL array, dimension
                                          (LDA,M) if SIDE = 'L'
                                          (LDA,N) if SIDE = 'R'
                     The vectors which define the elementary reflectors, as
                     returned by SGEHRD.
           LDA
                     LDA is INTEGER
                     The leading dimension of the array A.
                     LDA >= max(1,M) if SIDE = 'L'; LDA >= max(1,N) if SIDE = 'R'.
           TAU
                     TAU is REAL array, dimension
                                          (M-1) if SIDE = 'L'
                                          (N-1) if SIDE = 'R'
                     TAU(i) must contain the scalar factor of the elementary
                     reflector H(i), as returned by SGEHRD.
           C
                     C is REAL array, dimension (LDC,N)
                     On entry, the M-by-N matrix C.
                     On exit, C is overwritten by Q*C or Q**T*C or C*Q**T or C*Q.
           LDC
                     LDC is INTEGER
                     The leading dimension of the array C. LDC >= max(1,M).
           WORK
                     WORK is REAL array, dimension (MAX(1,LWORK))
                     On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
           LWORK
                     LWORK is INTEGER
                     The dimension of the array WORK.
                     If SIDE = 'L', LWORK >= max(1,N);
                     if SIDE = 'R', LWORK >= max(1,M).
                     For optimum performance LWORK >= N*NB if SIDE = 'L', and
                     LWORK >= M*NB if SIDE = 'R', where NB is the optimal
                     blocksize.
                     If LWORK = -1, then a workspace query is assumed; the routine
                     only calculates the optimal size of the WORK array, returns
                     this value as the first entry of the WORK array, and no error
                     message related to LWORK is issued by XERBLA.
           INFO
                     INFO is INTEGER
                     = 0:  successful exit
                     < 0:  if INFO = -i, the i-th argument had an illegal value
       Author
           Univ. of Tennessee
           Univ. of California Berkeley
           Univ. of Colorado Denver
           NAG Ltd.
   subroutine zunmhr (character side, character trans, integer m, integer n, integer ilo, integer ihi,
       complex*16, dimension( lda, * ) a, integer lda, complex*16, dimension( * ) tau, complex*16, dimension(
       ldc, * ) c, integer ldc, complex*16, dimension( * ) work, integer lwork, integer info)
       ZUNMHR
       Purpose:
            ZUNMHR overwrites the general complex M-by-N matrix C with
                            SIDE = 'L'     SIDE = 'R'
            TRANS = 'N':      Q * C          C * Q
            TRANS = 'C':      Q**H * C       C * Q**H
            where Q is a complex unitary matrix of order nq, with nq = m if
            SIDE = 'L' and nq = n if SIDE = 'R'. Q is defined as the product of
            IHI-ILO elementary reflectors, as returned by ZGEHRD:
            Q = H(ilo) H(ilo+1) . . . H(ihi-1).
       Parameters
           SIDE
                     SIDE is CHARACTER*1
                     = 'L': apply Q or Q**H from the Left;
                     = 'R': apply Q or Q**H from the Right.
           TRANS
                     TRANS is CHARACTER*1
                     = 'N': apply Q  (No transpose)
                     = 'C': apply Q**H (Conjugate transpose)
           M
                     M is INTEGER
                     The number of rows of the matrix C. M >= 0.
           N
                     N is INTEGER
                     The number of columns of the matrix C. N >= 0.
           ILO
                     ILO is INTEGER
           IHI
                     IHI is INTEGER
                     ILO and IHI must have the same values as in the previous call
                     of ZGEHRD. Q is equal to the unit matrix except in the
                     submatrix Q(ilo+1:ihi,ilo+1:ihi).
                     If SIDE = 'L', then 1 <= ILO <= IHI <= M, if M > 0, and
                     ILO = 1 and IHI = 0, if M = 0;
                     if SIDE = 'R', then 1 <= ILO <= IHI <= N, if N > 0, and
                     ILO = 1 and IHI = 0, if N = 0.
           A
                     A is COMPLEX*16 array, dimension
                                          (LDA,M) if SIDE = 'L'
                                          (LDA,N) if SIDE = 'R'
                     The vectors which define the elementary reflectors, as
                     returned by ZGEHRD.
           LDA
                     LDA is INTEGER
                     The leading dimension of the array A.
                     LDA >= max(1,M) if SIDE = 'L'; LDA >= max(1,N) if SIDE = 'R'.
           TAU
                     TAU is COMPLEX*16 array, dimension
                                          (M-1) if SIDE = 'L'
                                          (N-1) if SIDE = 'R'
                     TAU(i) must contain the scalar factor of the elementary
                     reflector H(i), as returned by ZGEHRD.
           C
                     C is COMPLEX*16 array, dimension (LDC,N)
                     On entry, the M-by-N matrix C.
                     On exit, C is overwritten by Q*C or Q**H*C or C*Q**H or C*Q.
           LDC
                     LDC is INTEGER
                     The leading dimension of the array C. LDC >= max(1,M).
           WORK
                     WORK is COMPLEX*16 array, dimension (MAX(1,LWORK))
                     On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
           LWORK
                     LWORK is INTEGER
                     The dimension of the array WORK.
                     If SIDE = 'L', LWORK >= max(1,N);
                     if SIDE = 'R', LWORK >= max(1,M).
                     For optimum performance LWORK >= N*NB if SIDE = 'L', and
                     LWORK >= M*NB if SIDE = 'R', where NB is the optimal
                     blocksize.
                     If LWORK = -1, then a workspace query is assumed; the routine
                     only calculates the optimal size of the WORK array, returns
                     this value as the first entry of the WORK array, and no error
                     message related to LWORK is issued by XERBLA.
           INFO
                     INFO is INTEGER
                     = 0:  successful exit
                     < 0:  if INFO = -i, the i-th argument had an illegal value
       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.
Version 3.12.0                               Fri Aug 9 2024 02:33:22                                    unmhr(3)