2413 DOUBLE PRECISION zero, one
2414 parameter ( zero = 0.0d0, one = 1.0d0 )
2415 DOUBLE PRECISION rogue
2416 parameter ( rogue = -1.0d10 )
2418 DOUBLE PRECISION transl
2419 INTEGER lda, m, n, nmax
2421 CHARACTER*1 diag, uplo
2424 DOUBLE PRECISION a( nmax, * ), aa( * )
2426 INTEGER i, ibeg, iend, j
2427 LOGICAL gen, lower, sym, tri, unit, upper
2429 DOUBLE PRECISION dbeg
2435 upper = ( sym.OR.tri ).AND.uplo.EQ.
'U'
2436 lower = ( sym.OR.tri ).AND.uplo.EQ.
'L'
2437 unit = tri.AND.diag.EQ.
'U'
2443 IF( gen.OR.( upper.AND.i.LE.j ).OR.( lower.AND.i.GE.j ) )
2445 a( i, j ) =
dbeg( reset ) + transl
2448 IF( n.GT.3.AND.j.EQ.n/2 )
2451 a( j, i ) = a( i, j )
2459 $ a( j, j ) = a( j, j ) + one
2466 IF( type.EQ.
'GE' )
THEN
2469 aa( i + ( j - 1 )*lda ) = a( i, j )
2471 DO 40 i = m + 1, lda
2472 aa( i + ( j - 1 )*lda ) = rogue
2475 ELSE IF( type.EQ.
'SY'.OR.type.EQ.
'TR' )
THEN
2492 DO 60 i = 1, ibeg - 1
2493 aa( i + ( j - 1 )*lda ) = rogue
2495 DO 70 i = ibeg, iend
2496 aa( i + ( j - 1 )*lda ) = a( i, j )
2498 DO 80 i = iend + 1, lda
2499 aa( i + ( j - 1 )*lda ) = rogue
double precision function dbeg(RESET)