version 1.2, 2010/04/21 13:45:12
|
version 1.8, 2011/07/22 07:38:04
|
Line 1
|
Line 1
|
SUBROUTINE DGBBRD( VECT, M, N, NCC, KL, KU, AB, LDAB, D, E, Q, |
SUBROUTINE DGBBRD( VECT, M, N, NCC, KL, KU, AB, LDAB, D, E, Q, |
$ LDQ, PT, LDPT, C, LDC, WORK, INFO ) |
$ LDQ, PT, LDPT, C, LDC, WORK, INFO ) |
* |
* |
* -- LAPACK routine (version 3.2) -- |
* -- LAPACK routine (version 3.3.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..-- |
* November 2006 |
* -- April 2011 -- |
* |
* |
* .. Scalar Arguments .. |
* .. Scalar Arguments .. |
CHARACTER VECT |
CHARACTER VECT |
Line 19
|
Line 19
|
* ======= |
* ======= |
* |
* |
* DGBBRD reduces a real general m-by-n band matrix A to upper |
* DGBBRD reduces a real general m-by-n band matrix A to upper |
* bidiagonal form B by an orthogonal transformation: Q' * A * P = B. |
* bidiagonal form B by an orthogonal transformation: Q**T * A * P = B. |
* |
* |
* The routine computes B, and optionally forms Q or P', or computes |
* The routine computes B, and optionally forms Q or P**T, or computes |
* Q'*C for a given matrix C. |
* Q**T*C for a given matrix C. |
* |
* |
* Arguments |
* Arguments |
* ========= |
* ========= |
* |
* |
* VECT (input) CHARACTER*1 |
* VECT (input) CHARACTER*1 |
* Specifies whether or not the matrices Q and P' are to be |
* Specifies whether or not the matrices Q and P**T are to be |
* formed. |
* formed. |
* = 'N': do not form Q or P'; |
* = 'N': do not form Q or P**T; |
* = 'Q': form Q only; |
* = 'Q': form Q only; |
* = 'P': form P' only; |
* = 'P': form P**T only; |
* = 'B': form both. |
* = 'B': form both. |
* |
* |
* M (input) INTEGER |
* M (input) INTEGER |
Line 85
|
Line 85
|
* |
* |
* C (input/output) DOUBLE PRECISION array, dimension (LDC,NCC) |
* C (input/output) DOUBLE PRECISION array, dimension (LDC,NCC) |
* On entry, an m-by-ncc matrix C. |
* On entry, an m-by-ncc matrix C. |
* On exit, C is overwritten by Q'*C. |
* On exit, C is overwritten by Q**T*C. |
* C is not referenced if NCC = 0. |
* C is not referenced if NCC = 0. |
* |
* |
* LDC (input) INTEGER |
* LDC (input) INTEGER |
Line 157
|
Line 157
|
RETURN |
RETURN |
END IF |
END IF |
* |
* |
* Initialize Q and P' to the unit matrix, if needed |
* Initialize Q and P**T to the unit matrix, if needed |
* |
* |
IF( WANTQ ) |
IF( WANTQ ) |
$ CALL DLASET( 'Full', M, M, ZERO, ONE, Q, LDQ ) |
$ CALL DLASET( 'Full', M, M, ZERO, ONE, Q, LDQ ) |
Line 334
|
Line 334
|
* |
* |
IF( WANTPT ) THEN |
IF( WANTPT ) THEN |
* |
* |
* accumulate product of plane rotations in P' |
* accumulate product of plane rotations in P**T |
* |
* |
DO 60 J = J1, J2, KB1 |
DO 60 J = J1, J2, KB1 |
CALL DROT( N, PT( J+KUN-1, 1 ), LDPT, |
CALL DROT( N, PT( J+KUN-1, 1 ), LDPT, |