ormhr#

Functions

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

SORMHR overwrites the general real M-by-N matrix C with.

SIDE = 'L'     SIDE = 'R'
Q * C          C * Q       (TRANS = 'N')
Q^T * C        C * Q^T     (TRANS = 'T')
where Q is a real orthogonal 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 SGEHRD:
Q = H(ilo) H(ilo+1) ... H(ihi-1)

Parameters

in
side

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

in
trans

‘N’ for no transpose; ‘T’ for transpose.

in
m

Number of rows of C. m >= 0.

in
n

Number of columns of C. n >= 0.

in
ilo

Index ilo from SGEHRD (0-based).

in
ihi

Index ihi from SGEHRD (0-based).

in
A

Array containing the elementary reflectors from SGEHRD.

in
lda

Leading dimension of A.

in
tau

Array of scalar factors from SGEHRD.

inout
C

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.

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 dormhr(
    const char* side,
    const char* trans,
    const INT   m,
    const INT   n,
    const INT   ilo,
    const INT   ihi,
    const f64*  A,
    const INT   lda,
    const f64*  tau,
          f64*  C,
    const INT   ldc,
          f64*  work,
    const INT   lwork,
          INT*  info
);
void dormhr(const char *side, const char *trans, const INT m, const INT n, const INT ilo, const INT ihi, const f64 *A, const INT lda, const f64 *tau, f64 *C, const INT ldc, f64 *work, const INT lwork, INT *info)#

DORMHR overwrites the general real M-by-N matrix C with.

SIDE = 'L'     SIDE = 'R'
Q * C          C * Q       (TRANS = 'N')
Q^T * C        C * Q^T     (TRANS = 'T')
where Q is a real orthogonal 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 DGEHRD:
Q = H(ilo) H(ilo+1) ... H(ihi-1)

Parameters

in
side

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

in
trans

‘N’ for no transpose; ‘T’ for transpose.

in
m

Number of rows of C. m >= 0.

in
n

Number of columns of C. n >= 0.

in
ilo

Index ilo from DGEHRD (0-based).

in
ihi

Index ihi from DGEHRD (0-based).

in
A

Array containing the elementary reflectors from DGEHRD.

in
lda

Leading dimension of A.

in
tau

Array of scalar factors from DGEHRD.

inout
C

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.

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