version 1.1, 2014/01/27 09:24:35
|
version 1.7, 2018/05/29 06:55:20
|
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 DORBDB3 + dependencies |
*> Download DORBDB3 + dependencies |
Line 20
|
Line 20
|
* |
* |
* SUBROUTINE DORBDB3( M, P, Q, X11, LDX11, X21, LDX21, THETA, PHI, |
* SUBROUTINE DORBDB3( M, P, Q, X11, LDX11, X21, LDX21, THETA, PHI, |
* TAUP1, TAUP2, TAUQ1, WORK, LWORK, INFO ) |
* TAUP1, TAUP2, TAUQ1, WORK, LWORK, INFO ) |
* |
* |
* .. Scalar Arguments .. |
* .. Scalar Arguments .. |
* INTEGER INFO, LWORK, M, P, Q, LDX11, LDX21 |
* INTEGER INFO, LWORK, M, P, Q, LDX11, LDX21 |
* .. |
* .. |
Line 29
|
Line 29
|
* DOUBLE PRECISION TAUP1(*), TAUP2(*), TAUQ1(*), WORK(*), |
* DOUBLE PRECISION TAUP1(*), TAUP2(*), TAUQ1(*), WORK(*), |
* $ X11(LDX11,*), X21(LDX21,*) |
* $ X11(LDX11,*), X21(LDX21,*) |
* .. |
* .. |
* |
* |
* |
* |
*> \par Purpose: |
*> \par Purpose: |
*> ============= |
* ============= |
*> |
*> |
*>\verbatim |
*>\verbatim |
*> |
*> |
Line 150
|
Line 150
|
*> \verbatim |
*> \verbatim |
*> LWORK is INTEGER |
*> LWORK is INTEGER |
*> The dimension of the array WORK. LWORK >= M-Q. |
*> The dimension of the array WORK. LWORK >= M-Q. |
*> |
*> |
*> If LWORK = -1, then a workspace query is assumed; the routine |
*> If LWORK = -1, then a workspace query is assumed; the routine |
*> only calculates the optimal size of the WORK array, returns |
*> only calculates the optimal size of the WORK array, returns |
*> this value as the first entry of the WORK array, and no error |
*> this value as the first entry of the WORK array, and no error |
Line 167
|
Line 167
|
* 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 July 2012 |
*> \date July 2012 |
* |
* |
Line 201
|
Line 201
|
SUBROUTINE DORBDB3( M, P, Q, X11, LDX11, X21, LDX21, THETA, PHI, |
SUBROUTINE DORBDB3( M, P, Q, X11, LDX11, X21, LDX21, THETA, PHI, |
$ TAUP1, TAUP2, TAUQ1, WORK, LWORK, INFO ) |
$ TAUP1, TAUP2, TAUQ1, WORK, LWORK, INFO ) |
* |
* |
* -- LAPACK computational routine (version 3.5.0) -- |
* -- LAPACK computational routine (version 3.7.1) -- |
* -- 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..-- |
* July 2012 |
* July 2012 |
Line 280
|
Line 280
|
* Reduce rows 1, ..., M-P of X11 and X21 |
* Reduce rows 1, ..., M-P of X11 and X21 |
* |
* |
DO I = 1, M-P |
DO I = 1, M-P |
* |
* |
IF( I .GT. 1 ) THEN |
IF( I .GT. 1 ) THEN |
CALL DROT( Q-I+1, X11(I-1,I), LDX11, X21(I,I), LDX11, C, S ) |
CALL DROT( Q-I+1, X11(I-1,I), LDX11, X21(I,I), LDX11, C, S ) |
END IF |
END IF |
Line 292
|
Line 292
|
$ X11(I,I), LDX11, WORK(ILARF) ) |
$ X11(I,I), LDX11, WORK(ILARF) ) |
CALL DLARF( 'R', M-P-I, Q-I+1, X21(I,I), LDX21, TAUQ1(I), |
CALL DLARF( 'R', M-P-I, Q-I+1, X21(I,I), LDX21, TAUQ1(I), |
$ X21(I+1,I), LDX21, WORK(ILARF) ) |
$ X21(I+1,I), LDX21, WORK(ILARF) ) |
C = SQRT( DNRM2( P-I+1, X11(I,I), 1, X11(I,I), |
C = SQRT( DNRM2( P-I+1, X11(I,I), 1 )**2 |
$ 1 )**2 + DNRM2( M-P-I, X21(I+1,I), 1, X21(I+1,I), 1 )**2 ) |
$ + DNRM2( M-P-I, X21(I+1,I), 1 )**2 ) |
THETA(I) = ATAN2( S, C ) |
THETA(I) = ATAN2( S, C ) |
* |
* |
CALL DORBDB5( P-I+1, M-P-I, Q-I, X11(I,I), 1, X21(I+1,I), 1, |
CALL DORBDB5( P-I+1, M-P-I, Q-I, X11(I,I), 1, X21(I+1,I), 1, |