3
* =========== DOCUMENTATION ===========
5
* Online html documentation available at
6
* http://www.netlib.org/lapack/explore-html/
9
*> Download DORGLQ + dependencies
10
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/dorglq.f">
12
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/dorglq.f">
14
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dorglq.f">
21
* SUBROUTINE DORGLQ( M, N, K, A, LDA, TAU, WORK, LWORK, INFO )
23
* .. Scalar Arguments ..
24
* INTEGER INFO, K, LDA, LWORK, M, N
26
* .. Array Arguments ..
27
* DOUBLE PRECISION A( LDA, * ), TAU( * ), WORK( * )
36
*> DORGLQ generates an M-by-N real matrix Q with orthonormal rows,
37
*> which is defined as the first M rows of a product of K elementary
38
*> reflectors of order N
40
*> Q = H(k) . . . H(2) H(1)
42
*> as returned by DGELQF.
51
*> The number of rows of the matrix Q. M >= 0.
57
*> The number of columns of the matrix Q. N >= M.
63
*> The number of elementary reflectors whose product defines the
64
*> matrix Q. M >= K >= 0.
69
*> A is DOUBLE PRECISION array, dimension (LDA,N)
70
*> On entry, the i-th row must contain the vector which defines
71
*> the elementary reflector H(i), for i = 1,2,...,k, as returned
72
*> by DGELQF in the first k rows of its array argument A.
73
*> On exit, the M-by-N matrix Q.
79
*> The first dimension of the array A. LDA >= max(1,M).
84
*> TAU is DOUBLE PRECISION array, dimension (K)
85
*> TAU(i) must contain the scalar factor of the elementary
86
*> reflector H(i), as returned by DGELQF.
91
*> WORK is DOUBLE PRECISION array, dimension (MAX(1,LWORK))
92
*> On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
98
*> The dimension of the array WORK. LWORK >= max(1,M).
99
*> For optimum performance LWORK >= M*NB, where NB is
100
*> the optimal blocksize.
102
*> If LWORK = -1, then a workspace query is assumed; the routine
103
*> only calculates the optimal size of the WORK array, returns
104
*> this value as the first entry of the WORK array, and no error
105
*> message related to LWORK is issued by XERBLA.
111
*> = 0: successful exit
112
*> < 0: if INFO = -i, the i-th argument has an illegal value
118
*> \author Univ. of Tennessee
119
*> \author Univ. of California Berkeley
120
*> \author Univ. of Colorado Denver
123
*> \date November 2011
125
*> \ingroup doubleOTHERcomputational
127
* =====================================================================
1
128
SUBROUTINE DORGLQ( M, N, K, A, LDA, TAU, WORK, LWORK, INFO )
3
* -- LAPACK routine (version 2.0) --
4
* Univ. of Tennessee, Univ. of California Berkeley, NAG Ltd.,
5
* Courant Institute, Argonne National Lab, and Rice University
130
* -- LAPACK computational routine (version 3.4.0) --
131
* -- LAPACK is a software package provided by Univ. of Tennessee, --
132
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
8
135
* .. Scalar Arguments ..
9
136
INTEGER INFO, K, LDA, LWORK, M, N
11
138
* .. Array Arguments ..
12
DOUBLE PRECISION A( LDA, * ), TAU( * ), WORK( LWORK )
139
DOUBLE PRECISION A( LDA, * ), TAU( * ), WORK( * )
16
* $Id: dorglq.f 19697 2010-10-29 16:57:34Z d3y133 $
21
* DORGLQ generates an M-by-N real matrix Q with orthonormal rows,
22
* which is defined as the first M rows of a product of K elementary
23
* reflectors of order N
25
* Q = H(k) . . . H(2) H(1)
27
* as returned by DGELQF.
33
* The number of rows of the matrix Q. M >= 0.
36
* The number of columns of the matrix Q. N >= M.
39
* The number of elementary reflectors whose product defines the
40
* matrix Q. M >= K >= 0.
42
* A (input/output) DOUBLE PRECISION array, dimension (LDA,N)
43
* On entry, the i-th row must contain the vector which defines
44
* the elementary reflector H(i), for i = 1,2,...,k, as returned
45
* by DGELQF in the first k rows of its array argument A.
46
* On exit, the M-by-N matrix Q.
49
* The first dimension of the array A. LDA >= max(1,M).
51
* TAU (input) DOUBLE PRECISION array, dimension (K)
52
* TAU(i) must contain the scalar factor of the elementary
53
* reflector H(i), as returned by DGELQF.
55
* WORK (workspace/output) DOUBLE PRECISION array, dimension (LWORK)
56
* On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
58
* LWORK (input) INTEGER
59
* The dimension of the array WORK. LWORK >= max(1,M).
60
* For optimum performance LWORK >= M*NB, where NB is
61
* the optimal blocksize.
63
* INFO (output) INTEGER
64
* = 0: successful exit
65
* < 0: if INFO = -i, the i-th argument has an illegal value
67
142
* =====================================================================
69
144
* .. Parameters ..