2410 DOUBLE PRECISION ZERO, ONE
2411 parameter( zero = 0.0d0, one = 1.0d0 )
2412 DOUBLE PRECISION ROGUE
2413 parameter( rogue = -1.0d10 )
2415 DOUBLE PRECISION TRANSL
2416 INTEGER LDA, M, N, NMAX
2418 CHARACTER*1 DIAG, UPLO
2421 DOUBLE PRECISION A( NMAX, * ), AA( * )
2423 INTEGER I, IBEG, IEND, J
2424 LOGICAL GEN, LOWER, SYM, TRI, UNIT, UPPER
2426 DOUBLE PRECISION DBEG
2432 upper = ( sym.OR.tri ).AND.uplo.EQ.
'U'
2433 lower = ( sym.OR.tri ).AND.uplo.EQ.
'L'
2434 unit = tri.AND.diag.EQ.
'U'
2440 IF( gen.OR.( upper.AND.i.LE.j ).OR.( lower.AND.i.GE.j ) )
2442 a( i, j ) =
dbeg( reset ) + transl
2445 IF( n.GT.3.AND.j.EQ.n/2 )
2448 a( j, i ) = a( i, j )
2456 $ a( j, j ) = a( j, j ) + one
2463 IF( type.EQ.
'GE' )
THEN
2466 aa( i + ( j - 1 )*lda ) = a( i, j )
2468 DO 40 i = m + 1, lda
2469 aa( i + ( j - 1 )*lda ) = rogue
2472 ELSE IF( type.EQ.
'SY'.OR.type.EQ.
'TR' )
THEN
2489 DO 60 i = 1, ibeg - 1
2490 aa( i + ( j - 1 )*lda ) = rogue
2492 DO 70 i = ibeg, iend
2493 aa( i + ( j - 1 )*lda ) = a( i, j )
2495 DO 80 i = iend + 1, lda
2496 aa( i + ( j - 1 )*lda ) = rogue
double precision function dbeg(RESET)