unmhr#

Functions

void cunmhr(
    const char* side,
    const char* trans,
    const INT   m,
    const INT   n,
    const INT   ilo,
    const INT   ihi,
    const c64*  A,
    const INT   lda,
    const c64*  tau,
          c64*  C,
    const INT   ldc,
          c64*  work,
    const INT   lwork,
          INT*  info
);
void cunmhr(const char *side, const char *trans, const INT m, const INT n, const INT ilo, const INT ihi, const c64 *A, const INT lda, const c64 *tau, c64 *C, const INT ldc, c64 *work, const INT lwork, INT *info)#

CUNMHR overwrites the general complex M-by-N matrix C with.

SIDE = 'L'     SIDE = 'R'
Q * C          C * Q       (TRANS = 'N')
Q^H * C        C * Q^H    (TRANS = 'C')
where Q is a complex unitary matrix of order nq (nq = m if SIDE = ‘L’, 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

in
side

‘L’ to apply Q or Q^H from the Left; ‘R’ to apply Q or Q^H from the Right.

in
trans

‘N’ for no transpose; ‘C’ for conjugate transpose.

in
m

Number of rows of C. m >= 0.

in
n

Number of columns of C. n >= 0.

in
ilo

Index ilo from CGEHRD (0-based).

in
ihi

Index ihi from CGEHRD (0-based).

in
A

Array containing the elementary reflectors from CGEHRD.

in
lda

Leading dimension of A.

in
tau

Array of scalar factors from CGEHRD.

inout
C

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.

in
ldc

Leading dimension of C. ldc >= max(1, m).

out
work

Workspace array, dimension (max(1, lwork)).

in
lwork

Dimension of work array. If lwork = -1, workspace query is assumed.

out
info

  • = 0: successful exit

  • < 0: if info = -i, the i-th argument had an illegal value

Functions

void zunmhr(
    const char* side,
    const char* trans,
    const INT   m,
    const INT   n,
    const INT   ilo,
    const INT   ihi,
    const c128* A,
    const INT   lda,
    const c128* tau,
          c128* C,
    const INT   ldc,
          c128* work,
    const INT   lwork,
          INT*  info
);
void zunmhr(const char *side, const char *trans, const INT m, const INT n, const INT ilo, const INT ihi, const c128 *A, const INT lda, const c128 *tau, c128 *C, const INT ldc, c128 *work, const INT lwork, INT *info)#

ZUNMHR overwrites the general complex M-by-N matrix C with.

SIDE = 'L'     SIDE = 'R'
Q * C          C * Q       (TRANS = 'N')
Q^H * C        C * Q^H    (TRANS = 'C')
where Q is a complex unitary matrix of order nq (nq = m if SIDE = ‘L’, 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

in
side

‘L’ to apply Q or Q^H from the Left; ‘R’ to apply Q or Q^H from the Right.

in
trans

‘N’ for no transpose; ‘C’ for conjugate transpose.

in
m

Number of rows of C. m >= 0.

in
n

Number of columns of C. n >= 0.

in
ilo

Index ilo from ZGEHRD (0-based).

in
ihi

Index ihi from ZGEHRD (0-based).

in
A

Array containing the elementary reflectors from ZGEHRD.

in
lda

Leading dimension of A.

in
tau

Array of scalar factors from ZGEHRD.

inout
C

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.

in
ldc

Leading dimension of C. ldc >= max(1, m).

out
work

Workspace array, dimension (max(1, lwork)).

in
lwork

Dimension of work array. If lwork = -1, workspace query is assumed.

out
info

  • = 0: successful exit

  • < 0: if info = -i, the i-th argument had an illegal value