home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 2001 May / SGI IRIX Base Documentation 2001 May.iso / usr / share / catman / p_man / cat3 / complib / sormql.z / sormql
Encoding:
Text File  |  1998-10-30  |  3.6 KB  |  133 lines

  1.  
  2.  
  3.  
  4. SSSSOOOORRRRMMMMQQQQLLLL((((3333FFFF))))                                                          SSSSOOOORRRRMMMMQQQQLLLL((((3333FFFF))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      SORMQL - overwrite the general real M-by-N matrix C with   SIDE = 'L'
  10.      SIDE = 'R' TRANS = 'N'
  11.  
  12. SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  13.      SUBROUTINE SORMQL( SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC, WORK,
  14.                         LWORK, INFO )
  15.  
  16.          CHARACTER      SIDE, TRANS
  17.  
  18.          INTEGER        INFO, K, LDA, LDC, LWORK, M, N
  19.  
  20.          REAL           A( LDA, * ), C( LDC, * ), TAU( * ), WORK( LWORK )
  21.  
  22. PPPPUUUURRRRPPPPOOOOSSSSEEEE
  23.      SORMQL overwrites the general real M-by-N matrix C with TRANS = 'T':
  24.      Q**T * C       C * Q**T
  25.  
  26.      where Q is a real orthogonal matrix defined as the product of k
  27.      elementary reflectors
  28.  
  29.            Q = H(k) . . . H(2) H(1)
  30.  
  31.      as returned by SGEQLF. Q is of order M if SIDE = 'L' and of order N if
  32.      SIDE = 'R'.
  33.  
  34.  
  35. AAAARRRRGGGGUUUUMMMMEEEENNNNTTTTSSSS
  36.      SIDE    (input) CHARACTER*1
  37.              = 'L': apply Q or Q**T from the Left;
  38.              = 'R': apply Q or Q**T from the Right.
  39.  
  40.      TRANS   (input) CHARACTER*1
  41.              = 'N':  No transpose, apply Q;
  42.              = 'T':  Transpose, apply Q**T.
  43.  
  44.      M       (input) INTEGER
  45.              The number of rows of the matrix C. M >= 0.
  46.  
  47.      N       (input) INTEGER
  48.              The number of columns of the matrix C. N >= 0.
  49.  
  50.      K       (input) INTEGER
  51.              The number of elementary reflectors whose product defines the
  52.              matrix Q.  If SIDE = 'L', M >= K >= 0; if SIDE = 'R', N >= K >=
  53.              0.
  54.  
  55.      A       (input) REAL array, dimension (LDA,K)
  56.              The i-th column must contain the vector which defines the
  57.              elementary reflector H(i), for i = 1,2,...,k, as returned by
  58.              SGEQLF in the last k columns of its array argument A.  A is
  59.              modified by the routine but restored on exit.
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. SSSSOOOORRRRMMMMQQQQLLLL((((3333FFFF))))                                                          SSSSOOOORRRRMMMMQQQQLLLL((((3333FFFF))))
  71.  
  72.  
  73.  
  74.      LDA     (input) INTEGER
  75.              The leading dimension of the array A.  If SIDE = 'L', LDA >=
  76.              max(1,M); if SIDE = 'R', LDA >= max(1,N).
  77.  
  78.      TAU     (input) REAL array, dimension (K)
  79.              TAU(i) must contain the scalar factor of the elementary reflector
  80.              H(i), as returned by SGEQLF.
  81.  
  82.      C       (input/output) REAL array, dimension (LDC,N)
  83.              On entry, the M-by-N matrix C.  On exit, C is overwritten by Q*C
  84.              or Q**T*C or C*Q**T or C*Q.
  85.  
  86.      LDC     (input) INTEGER
  87.              The leading dimension of the array C. LDC >= max(1,M).
  88.  
  89.      WORK    (workspace/output) REAL array, dimension (LWORK)
  90.              On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
  91.  
  92.      LWORK   (input) INTEGER
  93.              The dimension of the array WORK.  If SIDE = 'L', LWORK >=
  94.              max(1,N); if SIDE = 'R', LWORK >= max(1,M).  For optimum
  95.              performance LWORK >= N*NB if SIDE = 'L', and LWORK >= M*NB if
  96.              SIDE = 'R', where NB is the optimal blocksize.
  97.  
  98.      INFO    (output) INTEGER
  99.              = 0:  successful exit
  100.              < 0:  if INFO = -i, the i-th argument had an illegal value
  101.  
  102.  
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.