2947 COMPLEX*16 ZERO, ONE
2948 parameter( zero = ( 0.0d0, 0.0d0 ),
2949 $ one = ( 1.0d0, 0.0d0 ) )
2951 parameter( rogue = ( -1.0d10, 1.0d10 ) )
2952 DOUBLE PRECISION RZERO
2953 parameter( rzero = 0.0d0 )
2954 DOUBLE PRECISION RROGUE
2955 parameter( rrogue = -1.0d10 )
2958 INTEGER LDA, M, N, NMAX
2960 CHARACTER*1 DIAG, UPLO
2963 COMPLEX*16 A( NMAX, * ), AA( * )
2965 INTEGER I, IBEG, IEND, J, JJ
2966 LOGICAL GEN, HER, LOWER, SYM, TRI, UNIT, UPPER
2971 INTRINSIC dcmplx, dconjg, dble
2977 upper = ( her.OR.sym.OR.tri ).AND.uplo.EQ.
'U'
2978 lower = ( her.OR.sym.OR.tri ).AND.uplo.EQ.
'L'
2979 unit = tri.AND.diag.EQ.
'U'
2985 IF( gen.OR.( upper.AND.i.LE.j ).OR.( lower.AND.i.GE.j ) )
2987 a( i, j ) =
zbeg( reset ) + transl
2990 IF( n.GT.3.AND.j.EQ.n/2 )
2993 a( j, i ) = dconjg( a( i, j ) )
2995 a( j, i ) = a( i, j )
3003 $ a( j, j ) = dcmplx( dble( a( j, j ) ), rzero )
3005 $ a( j, j ) = a( j, j ) + one
3012 IF( type.EQ.
'GE' )
THEN
3015 aa( i + ( j - 1 )*lda ) = a( i, j )
3017 DO 40 i = m + 1, lda
3018 aa( i + ( j - 1 )*lda ) = rogue
3021 ELSE IF( type.EQ.
'HE'.OR.type.EQ.
'SY'.OR.type.EQ.
'TR' )
THEN
3038 DO 60 i = 1, ibeg - 1
3039 aa( i + ( j - 1 )*lda ) = rogue
3041 DO 70 i = ibeg, iend
3042 aa( i + ( j - 1 )*lda ) = a( i, j )
3044 DO 80 i = iend + 1, lda
3045 aa( i + ( j - 1 )*lda ) = rogue
3048 jj = j + ( j - 1 )*lda
3049 aa( jj ) = dcmplx( dble( aa( jj ) ), rrogue )
complex *16 function zbeg(RESET)