2101 DOUBLE PRECISION zero, one
2102 parameter ( zero = 0.0d0, one = 1.0d0 )
2103 DOUBLE PRECISION rogue
2104 parameter ( rogue = -1.0d10 )
2106 DOUBLE PRECISION transl
2107 INTEGER lda, m, n, nmax
2109 CHARACTER*1 diag, uplo
2112 DOUBLE PRECISION a( nmax, * ), aa( * )
2114 INTEGER i, ibeg, iend, j
2115 LOGICAL gen, lower, sym, tri, unit, upper
2117 DOUBLE PRECISION dbeg
2123 upper = ( sym.OR.tri ).AND.uplo.EQ.
'U'
2124 lower = ( sym.OR.tri ).AND.uplo.EQ.
'L'
2125 unit = tri.AND.diag.EQ.
'U'
2131 IF( gen.OR.( upper.AND.i.LE.j ).OR.( lower.AND.i.GE.j ) )
2133 a( i, j ) =
dbeg( reset ) + transl
2136 IF( n.GT.3.AND.j.EQ.n/2 )
2139 a( j, i ) = a( i, j )
2147 $ a( j, j ) = a( j, j ) + one
2154 IF( type.EQ.
'GE' )
THEN
2157 aa( i + ( j - 1 )*lda ) = a( i, j )
2159 DO 40 i = m + 1, lda
2160 aa( i + ( j - 1 )*lda ) = rogue
2163 ELSE IF( type.EQ.
'SY'.OR.type.EQ.
'TR' )
THEN
2180 DO 60 i = 1, ibeg - 1
2181 aa( i + ( j - 1 )*lda ) = rogue
2183 DO 70 i = ibeg, iend
2184 aa( i + ( j - 1 )*lda ) = a( i, j )
2186 DO 80 i = iend + 1, lda
2187 aa( i + ( j - 1 )*lda ) = rogue
double precision function dbeg(RESET)