version 1.5, 2010/12/21 13:53:58
|
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.3.0) -- |
* -- 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 -- |
* November 2010 |
* -- 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 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 |