SORMHR(3)

๐Ÿ“ฆ version 3.12.0, in opensuse-leap 16.0

hey bestie ๐Ÿ’– welcome to /home/abui...RC/sormhr.f(3) โ€” yep, thatโ€™s the page, and it lives in the Library Functions Manual. Itโ€™s giving โ€œlinear algebra bestie goes to the group chat,โ€ and we are so here for it. โœจ

๐Ÿ’… NAME ๐Ÿ’…

okay so the name section is literally this file path, no cap:

/home/abuild/rpmbuild/BUILD/lapack-
static-3.12.0-build/lapack-3.12.0/SRC/sormhr.f

โœจ SYNOPSIS โœจ

๐Ÿงฎ Functions/Subroutines ๐Ÿงฎ

Under Functions/Subroutines, weโ€™ve got this iconic little declaration:

subroutine SORMHR (side, trans, m, n, ilo, ihi, a, lda, tau, c, ldc,
    work, lwork, info)
    SORMHR

๐Ÿ’– Function/Subroutine Documentation ๐Ÿ’–

Hereโ€™s the full signature, bestie โ€” every type, every dimension, every argument, exactly as it appears:

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 ๐ŸŽ€

okay so SORMHR overwrites the general real M-by-N matrix C with this whole situation:

                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).

periodt. ๐Ÿ’…

๐ŸŒธ Parameters ๐ŸŒธ

๐Ÿฆ‹ SIDE ๐Ÿฆ‹

SIDE is CHARACTER*1 โ€” hereโ€™s the tea:

  • = '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. Itโ€™s the number of rows of the matrix C. Constraint check: M >= 0. โœจ

๐Ÿฆ‹ N ๐Ÿฆ‹

N is INTEGER. Itโ€™s the number of columns of the matrix C. Constraint check: N >= 0. โœจ

๐Ÿฆ‹ ILO ๐Ÿฆ‹

ILO is INTEGER.

๐Ÿฆ‹ IHI ๐Ÿฆ‹

IHI is INTEGER.

and okay, important bestie note: 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'

These are the vectors which define the elementary reflectors, as returned by SGEHRD. ๐Ÿซถ

๐Ÿฆ‹ LDA ๐Ÿฆ‹

LDA is INTEGER. Itโ€™s 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. no cap. ๐Ÿ’œ

๐Ÿฆ‹ 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. Itโ€™s the leading dimension of the array C. Constraint: 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. Itโ€™s 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. okay thatโ€™s actually kinda iconic. โœจ

๐Ÿฆ‹ 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.

Definition at line 177 of file sormhr.f.

๐Ÿ‘‘ Author ๐Ÿ‘‘ (the auto-gen one)

Generated automatically by Doxygen for LAPACK from the source code.

okay thatโ€™s a wrap, bestie ๐Ÿซถ โ€” footer check: LAPACK Version 3.12.0 and /home/abui...RC/sormhr.f(3). bye ๐Ÿ’…โœจ๐ŸŒธ

๐Ÿ“ฆ where this page comes from