version 1.2, 2010/08/07 13:22:46
|
version 1.6, 2011/07/22 07:38:21
|
Line 1
|
Line 1
|
SUBROUTINE ZTRTTF( TRANSR, UPLO, N, A, LDA, ARF, INFO ) |
SUBROUTINE ZTRTTF( TRANSR, UPLO, N, A, LDA, ARF, INFO ) |
* |
* |
* -- LAPACK routine (version 3.2.1) -- |
* -- LAPACK routine (version 3.3.1) -- |
* |
* |
* -- Contributed by Fred Gustavson of the IBM Watson Research Center -- |
* -- Contributed by Fred Gustavson of the IBM Watson Research Center -- |
* -- April 2009 -- |
* -- April 2011 -- |
* |
* |
* -- 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..-- |
Line 25
|
Line 25
|
* Arguments |
* Arguments |
* ========= |
* ========= |
* |
* |
* TRANSR (input) CHARACTER |
* TRANSR (input) CHARACTER*1 |
* = 'N': ARF in Normal mode is wanted; |
* = 'N': ARF in Normal mode is wanted; |
* = 'C': ARF in Conjugate Transpose mode is wanted; |
* = 'C': ARF in Conjugate Transpose mode is wanted; |
* |
* |
* UPLO (input) CHARACTER |
* UPLO (input) CHARACTER*1 |
* = 'U': A is upper triangular; |
* = 'U': A is upper triangular; |
* = 'L': A is lower triangular. |
* = 'L': A is lower triangular. |
* |
* |
Line 72
|
Line 72
|
* 55 50 51 52 53 54 55 |
* 55 50 51 52 53 54 55 |
* |
* |
* |
* |
* Let TRANSR = `N'. RFP holds AP as follows: |
* Let TRANSR = 'N'. RFP holds AP as follows: |
* For UPLO = `U' the upper trapezoid A(0:5,0:2) consists of the last |
* For UPLO = 'U' the upper trapezoid A(0:5,0:2) consists of the last |
* three columns of AP upper. The lower triangle A(4:6,0:2) consists of |
* three columns of AP upper. The lower triangle A(4:6,0:2) consists of |
* conjugate-transpose of the first three columns of AP upper. |
* conjugate-transpose of the first three columns of AP upper. |
* For UPLO = `L' the lower trapezoid A(1:6,0:2) consists of the first |
* For UPLO = 'L' the lower trapezoid A(1:6,0:2) consists of the first |
* three columns of AP lower. The upper triangle A(0:2,0:2) consists of |
* three columns of AP lower. The upper triangle A(0:2,0:2) consists of |
* conjugate-transpose of the last three columns of AP lower. |
* conjugate-transpose of the last three columns of AP lower. |
* To denote conjugate we place -- above the element. This covers the |
* To denote conjugate we place -- above the element. This covers the |
* case N even and TRANSR = `N'. |
* case N even and TRANSR = 'N'. |
* |
* |
* RFP A RFP A |
* RFP A RFP A |
* |
* |
Line 99
|
Line 99
|
* -- -- -- |
* -- -- -- |
* 02 12 22 50 51 52 |
* 02 12 22 50 51 52 |
* |
* |
* Now let TRANSR = `C'. RFP A in both UPLO cases is just the conjugate- |
* Now let TRANSR = 'C'. RFP A in both UPLO cases is just the conjugate- |
* transpose of RFP A above. One therefore gets: |
* transpose of RFP A above. One therefore gets: |
* |
* |
* |
* |
Line 125
|
Line 125
|
* 44 40 41 42 43 44 |
* 44 40 41 42 43 44 |
* |
* |
* |
* |
* Let TRANSR = `N'. RFP holds AP as follows: |
* Let TRANSR = 'N'. RFP holds AP as follows: |
* For UPLO = `U' the upper trapezoid A(0:4,0:2) consists of the last |
* For UPLO = 'U' the upper trapezoid A(0:4,0:2) consists of the last |
* three columns of AP upper. The lower triangle A(3:4,0:1) consists of |
* three columns of AP upper. The lower triangle A(3:4,0:1) consists of |
* conjugate-transpose of the first two columns of AP upper. |
* conjugate-transpose of the first two columns of AP upper. |
* For UPLO = `L' the lower trapezoid A(0:4,0:2) consists of the first |
* For UPLO = 'L' the lower trapezoid A(0:4,0:2) consists of the first |
* three columns of AP lower. The upper triangle A(0:1,1:2) consists of |
* three columns of AP lower. The upper triangle A(0:1,1:2) consists of |
* conjugate-transpose of the last two columns of AP lower. |
* conjugate-transpose of the last two columns of AP lower. |
* To denote conjugate we place -- above the element. This covers the |
* To denote conjugate we place -- above the element. This covers the |
* case N odd and TRANSR = `N'. |
* case N odd and TRANSR = 'N'. |
* |
* |
* RFP A RFP A |
* RFP A RFP A |
* |
* |
Line 148
|
Line 148
|
* -- -- |
* -- -- |
* 01 11 44 40 41 42 |
* 01 11 44 40 41 42 |
* |
* |
* Now let TRANSR = `C'. RFP A in both UPLO cases is just the conjugate- |
* Now let TRANSR = 'C'. RFP A in both UPLO cases is just the conjugate- |
* transpose of RFP A above. One therefore gets: |
* transpose of RFP A above. One therefore gets: |
* |
* |
* |
* |
Line 235
|
Line 235
|
K = N / 2 |
K = N / 2 |
NISODD = .FALSE. |
NISODD = .FALSE. |
IF( .NOT.LOWER ) |
IF( .NOT.LOWER ) |
+ NP1X2 = N + N + 2 |
$ NP1X2 = N + N + 2 |
ELSE |
ELSE |
NISODD = .TRUE. |
NISODD = .TRUE. |
IF( .NOT.LOWER ) |
IF( .NOT.LOWER ) |
+ NX2 = N + N |
$ NX2 = N + N |
END IF |
END IF |
* |
* |
IF( NISODD ) THEN |
IF( NISODD ) THEN |