1DORMTR(1)                LAPACK routine (version 3.1)                DORMTR(1)
2
3
4

NAME

6       DORMTR  - the general real M-by-N matrix C with   SIDE = 'L' SIDE = 'R'
7       TRANS = 'N'
8

SYNOPSIS

10       SUBROUTINE DORMTR( SIDE, UPLO, TRANS, M, N, A, LDA, TAU, C, LDC,  WORK,
11                          LWORK, INFO )
12
13           CHARACTER      SIDE, TRANS, UPLO
14
15           INTEGER        INFO, LDA, LDC, LWORK, M, N
16
17           DOUBLE         PRECISION  A( LDA, * ), C( LDC, * ), TAU( * ), WORK(
18                          * )
19

PURPOSE

21       DORMTR overwrites the general real M-by-N matrix C with  TRANS  =  'T':
22       Q**T * C       C * Q**T
23
24       where  Q is a real orthogonal matrix of order nq, with nq = m if SIDE =
25       'L' and nq = n if SIDE = 'R'. Q is defined as the product of nq-1  ele‐
26       mentary reflectors, as returned by DSYTRD:
27
28       if UPLO = 'U', Q = H(nq-1) . . . H(2) H(1);
29
30       if UPLO = 'L', Q = H(1) H(2) . . . H(nq-1).
31
32

ARGUMENTS

34       SIDE    (input) CHARACTER*1
35               = 'L': apply Q or Q**T from the Left;
36               = 'R': apply Q or Q**T from the Right.
37
38       UPLO    (input) CHARACTER*1
39               =  'U': Upper triangle of A contains elementary reflectors from
40               DSYTRD; = 'L': Lower triangle of A contains elementary  reflec‐
41               tors from DSYTRD.
42
43       TRANS   (input) CHARACTER*1
44               = 'N':  No transpose, apply Q;
45               = 'T':  Transpose, apply Q**T.
46
47       M       (input) INTEGER
48               The number of rows of the matrix C. M >= 0.
49
50       N       (input) INTEGER
51               The number of columns of the matrix C. N >= 0.
52
53       A       (input) DOUBLE PRECISION array, dimension
54               (LDA,M)  if  SIDE = 'L' (LDA,N) if SIDE = 'R' The vectors which
55               define the elementary reflectors, as returned by DSYTRD.
56
57       LDA     (input) INTEGER
58               The leading dimension of the array A.  LDA >= max(1,M) if  SIDE
59               = 'L'; LDA >= max(1,N) if SIDE = 'R'.
60
61       TAU     (input) DOUBLE PRECISION array, dimension
62               (M-1) if SIDE = 'L' (N-1) if SIDE = 'R' TAU(i) must contain the
63               scalar factor of the elementary reflector H(i), as returned  by
64               DSYTRD.
65
66       C       (input/output) DOUBLE PRECISION array, dimension (LDC,N)
67               On  entry,  the  M-by-N matrix C.  On exit, C is overwritten by
68               Q*C or Q**T*C or C*Q**T or C*Q.
69
70       LDC     (input) INTEGER
71               The leading dimension of the array C. LDC >= max(1,M).
72
73       WORK      (workspace/output)   DOUBLE   PRECISION   array,    dimension
74       (MAX(1,LWORK))
75               On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
76
77       LWORK   (input) INTEGER
78               The  dimension  of  the  array  WORK.   If SIDE = 'L', LWORK >=
79               max(1,N); if SIDE = 'R', LWORK >= max(1,M).  For  optimum  per‐
80               formance LWORK >= N*NB if SIDE = 'L', and LWORK >= M*NB if SIDE
81               = 'R', where NB is the optimal blocksize.
82
83               If LWORK = -1, then a workspace query is assumed;  the  routine
84               only  calculates  the  optimal  size of the WORK array, returns
85               this value as the first entry of the WORK array, and  no  error
86               message related to LWORK is issued by XERBLA.
87
88       INFO    (output) INTEGER
89               = 0:  successful exit
90               < 0:  if INFO = -i, the i-th argument had an illegal value
91
92
93
94 LAPACK routine (version 3.1)    November 2006                       DORMTR(1)
Impressum