version 1.4, 2014/01/27 09:24:34
|
version 1.11, 2023/08/07 08:38:49
|
Line 2
|
Line 2
|
* |
* |
* =========== DOCUMENTATION =========== |
* =========== DOCUMENTATION =========== |
* |
* |
* Online html documentation available at |
* Online html documentation available at |
* http://www.netlib.org/lapack/explore-html/ |
* http://www.netlib.org/lapack/explore-html/ |
* |
* |
*> \htmlonly |
*> \htmlonly |
*> Download DGEQRT + dependencies |
*> Download DGEQRT + dependencies |
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/dgeqrt.f"> |
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/dgeqrt.f"> |
*> [TGZ]</a> |
*> [TGZ]</a> |
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/dgeqrt.f"> |
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/dgeqrt.f"> |
*> [ZIP]</a> |
*> [ZIP]</a> |
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dgeqrt.f"> |
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dgeqrt.f"> |
*> [TXT]</a> |
*> [TXT]</a> |
*> \endhtmlonly |
*> \endhtmlonly |
* |
* |
* Definition: |
* Definition: |
* =========== |
* =========== |
* |
* |
* SUBROUTINE DGEQRT( M, N, NB, A, LDA, T, LDT, WORK, INFO ) |
* SUBROUTINE DGEQRT( M, N, NB, A, LDA, T, LDT, WORK, INFO ) |
* |
* |
* .. Scalar Arguments .. |
* .. Scalar Arguments .. |
* INTEGER INFO, LDA, LDT, M, N, NB |
* INTEGER INFO, LDA, LDT, M, N, NB |
* .. |
* .. |
* .. Array Arguments .. |
* .. Array Arguments .. |
* DOUBLE PRECISION A( LDA, * ), T( LDT, * ), WORK( * ) |
* DOUBLE PRECISION A( LDA, * ), T( LDT, * ), WORK( * ) |
* .. |
* .. |
* |
* |
* |
* |
*> \par Purpose: |
*> \par Purpose: |
* ============= |
* ============= |
Line 34
|
Line 34
|
*> \verbatim |
*> \verbatim |
*> |
*> |
*> DGEQRT computes a blocked QR factorization of a real M-by-N matrix A |
*> DGEQRT computes a blocked QR factorization of a real M-by-N matrix A |
*> using the compact WY representation of Q. |
*> using the compact WY representation of Q. |
*> \endverbatim |
*> \endverbatim |
* |
* |
* Arguments: |
* Arguments: |
Line 103
|
Line 103
|
* Authors: |
* Authors: |
* ======== |
* ======== |
* |
* |
*> \author Univ. of Tennessee |
*> \author Univ. of Tennessee |
*> \author Univ. of California Berkeley |
*> \author Univ. of California Berkeley |
*> \author Univ. of Colorado Denver |
*> \author Univ. of Colorado Denver |
*> \author NAG Ltd. |
*> \author NAG Ltd. |
* |
|
*> \date November 2013 |
|
* |
* |
*> \ingroup doubleGEcomputational |
*> \ingroup doubleGEcomputational |
* |
* |
Line 130
|
Line 128
|
*> in the matrix A. The 1's along the diagonal of V are not stored in A. |
*> in the matrix A. The 1's along the diagonal of V are not stored in A. |
*> |
*> |
*> Let K=MIN(M,N). The number of blocks is B = ceiling(K/NB), where each |
*> Let K=MIN(M,N). The number of blocks is B = ceiling(K/NB), where each |
*> block is of order NB except for the last block, which is of order |
*> block is of order NB except for the last block, which is of order |
*> IB = K - (B-1)*NB. For each of the B blocks, a upper triangular block |
*> IB = K - (B-1)*NB. For each of the B blocks, a upper triangular block |
*> reflector factor is computed: T1, T2, ..., TB. The NB-by-NB (and IB-by-IB |
*> reflector factor is computed: T1, T2, ..., TB. The NB-by-NB (and IB-by-IB |
*> for the last block) T's are stored in the NB-by-N matrix T as |
*> for the last block) T's are stored in the NB-by-K matrix T as |
*> |
*> |
*> T = (T1 T2 ... TB). |
*> T = (T1 T2 ... TB). |
*> \endverbatim |
*> \endverbatim |
Line 141
|
Line 139
|
* ===================================================================== |
* ===================================================================== |
SUBROUTINE DGEQRT( M, N, NB, A, LDA, T, LDT, WORK, INFO ) |
SUBROUTINE DGEQRT( M, N, NB, A, LDA, T, LDT, WORK, INFO ) |
* |
* |
* -- LAPACK computational routine (version 3.5.0) -- |
* -- LAPACK computational routine -- |
* -- LAPACK is a software package provided by Univ. of Tennessee, -- |
* -- LAPACK is a software package provided by Univ. of Tennessee, -- |
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- |
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- |
* November 2013 |
|
* |
* |
* .. Scalar Arguments .. |
* .. Scalar Arguments .. |
INTEGER INFO, LDA, LDT, M, N, NB |
INTEGER INFO, LDA, LDT, M, N, NB |
Line 194
|
Line 191
|
* |
* |
DO I = 1, K, NB |
DO I = 1, K, NB |
IB = MIN( K-I+1, NB ) |
IB = MIN( K-I+1, NB ) |
* |
* |
* Compute the QR factorization of the current block A(I:M,I:I+IB-1) |
* Compute the QR factorization of the current block A(I:M,I:I+IB-1) |
* |
* |
IF( USE_RECURSIVE_QR ) THEN |
IF( USE_RECURSIVE_QR ) THEN |
Line 207
|
Line 204
|
* Update by applying H**T to A(I:M,I+IB:N) from the left |
* Update by applying H**T to A(I:M,I+IB:N) from the left |
* |
* |
CALL DLARFB( 'L', 'T', 'F', 'C', M-I+1, N-I-IB+1, IB, |
CALL DLARFB( 'L', 'T', 'F', 'C', M-I+1, N-I-IB+1, IB, |
$ A( I, I ), LDA, T( 1, I ), LDT, |
$ A( I, I ), LDA, T( 1, I ), LDT, |
$ A( I, I+IB ), LDA, WORK , N-I-IB+1 ) |
$ A( I, I+IB ), LDA, WORK , N-I-IB+1 ) |
END IF |
END IF |
END DO |
END DO |
RETURN |
RETURN |
* |
* |
* End of DGEQRT |
* End of DGEQRT |
* |
* |
END |
END |