167     $                                       AFB, LDAFB, IPIV, CMODE, C,
 
  168     $                                       INFO, WORK, IWORK )
 
  176      INTEGER            n, ldab, ldafb, info, kl, ku, cmode
 
  179      INTEGER            iwork( * ), ipiv( * )
 
  180      DOUBLE PRECISION   ab( ldab, * ), afb( ldafb, * ), work( * ),
 
  188      INTEGER            kase, i, j, kd, ke
 
  189      DOUBLE PRECISION   ainvnm, tmp
 
  209      notrans = 
lsame( trans, 
'N' )
 
  210      IF ( .NOT. notrans .AND. .NOT. 
lsame(trans, 
'T')
 
  211     $     .AND. .NOT. 
lsame(trans, 
'C') ) 
THEN 
  213      ELSE IF( n.LT.0 ) 
THEN 
  215      ELSE IF( kl.LT.0 .OR. kl.GT.n-1 ) 
THEN 
  217      ELSE IF( ku.LT.0 .OR. ku.GT.n-1 ) 
THEN 
  219      ELSE IF( ldab.LT.kl+ku+1 ) 
THEN 
  221      ELSE IF( ldafb.LT.2*kl+ku+1 ) 
THEN 
  225         CALL xerbla( 
'DLA_GBRCOND', -info )
 
  241               IF ( cmode .EQ. 1 ) 
THEN 
  242                  DO j = max( i-kl, 1 ), min( i+ku, n )
 
  243                     tmp = tmp + abs( ab( kd+i-j, j ) * c( j ) )
 
  245               ELSE IF ( cmode .EQ. 0 ) 
THEN 
  246                  DO j = max( i-kl, 1 ), min( i+ku, n )
 
  247                     tmp = tmp + abs( ab( kd+i-j, j ) )
 
  250                  DO j = max( i-kl, 1 ), min( i+ku, n )
 
  251                     tmp = tmp + abs( ab( kd+i-j, j ) / c( j ) )
 
  259            IF ( cmode .EQ. 1 ) 
THEN 
  260               DO j = max( i-kl, 1 ), min( i+ku, n )
 
  261                  tmp = tmp + abs( ab( ke-i+j, i ) * c( j ) )
 
  263            ELSE IF ( cmode .EQ. 0 ) 
THEN 
  264               DO j = max( i-kl, 1 ), min( i+ku, n )
 
  265                  tmp = tmp + abs( ab( ke-i+j, i ) )
 
  268               DO j = max( i-kl, 1 ), min( i+ku, n )
 
  269                  tmp = tmp + abs( ab( ke-i+j, i ) / c( j ) )
 
  282      CALL dlacn2( n, work( n+1 ), work, iwork, ainvnm, kase, isave )
 
  289               work( i ) = work( i ) * work( 2*n+i )
 
  293               CALL dgbtrs( 
'No transpose', n, kl, ku, 1, afb, ldafb,
 
  294     $              ipiv, work, n, info )
 
  296               CALL dgbtrs( 
'Transpose', n, kl, ku, 1, afb, ldafb,
 
  303            IF ( cmode .EQ. 1 ) 
THEN 
  305                  work( i ) = work( i ) / c( i )
 
  307            ELSE IF ( cmode .EQ. -1 ) 
THEN 
  309                  work( i ) = work( i ) * c( i )
 
  316            IF ( cmode .EQ. 1 ) 
THEN 
  318                  work( i ) = work( i ) / c( i )
 
  320            ELSE IF ( cmode .EQ. -1 ) 
THEN 
  322                  work( i ) = work( i ) * c( i )
 
  327               CALL dgbtrs( 
'Transpose', n, kl, ku, 1, afb, ldafb,
 
  331               CALL dgbtrs( 
'No transpose', n, kl, ku, 1, afb, ldafb,
 
  332     $              ipiv, work, n, info )
 
  338               work( i ) = work( i ) * work( 2*n+i )
 
  346      IF( ainvnm .NE. 0.0d+0 )
 
 
subroutine dgbtrs(trans, n, kl, ku, nrhs, ab, ldab, ipiv, b, ldb, info)
DGBTRS
double precision function dla_gbrcond(trans, n, kl, ku, ab, ldab, afb, ldafb, ipiv, cmode, c, info, work, iwork)
DLA_GBRCOND estimates the Skeel condition number for a general banded matrix.
subroutine dlacn2(n, v, x, isgn, est, kase, isave)
DLACN2 estimates the 1-norm of a square matrix, using reverse communication for evaluating matrix-vec...