DORM22(3)

πŸ“¦ version 3.12.0, in opensuse-leap 16.0

πŸ’– DORM22(3) β€” Library Functions Manual πŸ’–

okay bestie, welcome to DORM22(3) from the Library Functions Manual β€” the header’s cute little shorthand is /home/abui...RC/dorm22.f(3), and this is LAPACK doing its banded-orthogonal-matrix thing πŸ’…βœ¨

🌸 NAME 🌸

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

✨ SYNOPSIS ✨

πŸŽ€ Functions/Subroutines πŸŽ€

  • DORM22 is the subroutine β€” here’s the signature, exactly:
subroutine DORM22 (side, trans, m, n, n1, n2, q, ldq, c, ldc, work,
    lwork, info)

and the one-liner is: DORM22 multiplies a general matrix by a banded orthogonal matrix.

πŸ¦‹ Function/Subroutine Documentation πŸ¦‹

subroutine DORM22 (character side, character trans, integer m, integer n,
    integer n1, integer n2, double precision, dimension( ldq, * ) q, integer
    ldq, double precision, dimension( ldc, * ) c, integer ldc, double
    precision, dimension( * ) work, integer lwork, integer info)

No cap, here’s the whole signature character-for-character β€” and yes: DORM22 multiplies a general matrix by a banded orthogonal matrix. πŸ”₯

πŸ’« Purpose πŸ’«

DORM22 overwrites the general real M-by-N matrix C with β€” and here’s the exact table/block from the source, bestie, no edits:

                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'.
The orthogonal matrix Q processes a 2-by-2 block structure

       [  Q11  Q12  ]
   Q = [            ]
       [  Q21  Q22  ],

where Q12 is an N1-by-N1 lower triangular matrix and Q21 is an
N2-by-N2 upper triangular matrix.

πŸ“ 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': apply Q (No transpose);
    • = 'C': apply Q**T (Conjugate transpose).
  • M β€” M is INTEGER; it’s the number of rows of the matrix C. M >= 0.
  • N β€” N is INTEGER; it’s the number of columns of the matrix C. N >= 0.
  • N1, N2 β€” both are INTEGER, and they’re the dimension of Q12 and Q21, respectively. N1, N2 >= 0. The following requirement must be satisfied: N1 + N2 = M if SIDE = 'L' and N1 + N2 = N if SIDE = 'R'.
  • Q β€” Q is DOUBLE PRECISION array, dimension
(LDQ,M) if SIDE = 'L'
(LDQ,N) if SIDE = 'R'
  • LDQ β€” LDQ is INTEGER; it’s the leading dimension of the array Q. LDQ >= max(1,M) if SIDE = 'L'; LDQ >= max(1,N) if SIDE = 'R'.
  • 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; it’s 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; 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 >= M*N.
    • 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.

Definition at line 161 of file dorm22.f.

πŸ‘‘ Author πŸ‘‘

Generated automatically by Doxygen for LAPACK from the source code.


Final sign-off: source is LAPACK, Version 3.12.0, and the footer’s date β€” which isn’t spelled out in this snippet, so we’re not inventing one, periodt πŸ’…πŸ’–πŸŽ€

πŸ“¦ where this page comes from