2941 parameter( zero = ( 0.0, 0.0 ), one = ( 1.0, 0.0 ) )
2943 parameter( rogue = ( -1.0e10, 1.0e10 ) )
2945 parameter( rzero = 0.0 )
2947 parameter( rrogue = -1.0e10 )
2950 INTEGER LDA, M, N, NMAX
2952 CHARACTER*1 DIAG, UPLO
2955 COMPLEX A( NMAX, * ), AA( * )
2957 INTEGER I, IBEG, IEND, J, JJ
2958 LOGICAL GEN, HER, LOWER, SYM, TRI, UNIT, UPPER
2963 INTRINSIC cmplx, conjg, real
2969 upper = ( her.OR.sym.OR.tri ).AND.uplo.EQ.
'U'
2970 lower = ( her.OR.sym.OR.tri ).AND.uplo.EQ.
'L'
2971 unit = tri.AND.diag.EQ.
'U'
2977 IF( gen.OR.( upper.AND.i.LE.j ).OR.( lower.AND.i.GE.j ) )
2979 a( i, j ) =
cbeg( reset ) + transl
2982 IF( n.GT.3.AND.j.EQ.n/2 )
2985 a( j, i ) = conjg( a( i, j ) )
2987 a( j, i ) = a( i, j )
2995 $ a( j, j ) = cmplx( real( a( j, j ) ), rzero )
2997 $ a( j, j ) = a( j, j ) + one
3004 IF( type.EQ.
'GE' )
THEN
3007 aa( i + ( j - 1 )*lda ) = a( i, j )
3009 DO 40 i = m + 1, lda
3010 aa( i + ( j - 1 )*lda ) = rogue
3013 ELSE IF( type.EQ.
'HE'.OR.type.EQ.
'SY'.OR.type.EQ.
'TR' )
THEN
3030 DO 60 i = 1, ibeg - 1
3031 aa( i + ( j - 1 )*lda ) = rogue
3033 DO 70 i = ibeg, iend
3034 aa( i + ( j - 1 )*lda ) = a( i, j )
3036 DO 80 i = iend + 1, lda
3037 aa( i + ( j - 1 )*lda ) = rogue
3040 jj = j + ( j - 1 )*lda
3041 aa( jj ) = cmplx( real( aa( jj ) ), rrogue )
complex function cbeg(RESET)