147 $ cmode, c, info, work, iwork )
155 INTEGER n, lda, ldaf, info, cmode
158 INTEGER ipiv( * ), iwork( * )
159 REAL a( lda, * ), af( ldaf, * ), work( * ),
188 notrans =
lsame( trans,
'N' )
189 IF ( .NOT. notrans .AND. .NOT.
lsame(trans,
'T')
190 $ .AND. .NOT.
lsame(trans,
'C') )
THEN
192 ELSE IF( n.LT.0 )
THEN
194 ELSE IF( lda.LT.max( 1, n ) )
THEN
196 ELSE IF( ldaf.LT.max( 1, n ) )
THEN
200 CALL xerbla(
'SLA_GERCOND', -info )
214 IF ( cmode .EQ. 1 )
THEN
216 tmp = tmp + abs( a( i, j ) * c( j ) )
218 ELSE IF ( cmode .EQ. 0 )
THEN
220 tmp = tmp + abs( a( i, j ) )
224 tmp = tmp + abs( a( i, j ) / c( j ) )
232 IF ( cmode .EQ. 1 )
THEN
234 tmp = tmp + abs( a( j, i ) * c( j ) )
236 ELSE IF ( cmode .EQ. 0 )
THEN
238 tmp = tmp + abs( a( j, i ) )
242 tmp = tmp + abs( a( j, i ) / c( j ) )
255 CALL slacn2( n, work( n+1 ), work, iwork, ainvnm, kase, isave )
262 work(i) = work(i) * work(2*n+i)
266 CALL sgetrs(
'No transpose', n, 1, af, ldaf, ipiv,
269 CALL sgetrs(
'Transpose', n, 1, af, ldaf, ipiv,
275 IF ( cmode .EQ. 1 )
THEN
277 work( i ) = work( i ) / c( i )
279 ELSE IF ( cmode .EQ. -1 )
THEN
281 work( i ) = work( i ) * c( i )
288 IF ( cmode .EQ. 1 )
THEN
290 work( i ) = work( i ) / c( i )
292 ELSE IF ( cmode .EQ. -1 )
THEN
294 work( i ) = work( i ) * c( i )
299 CALL sgetrs(
'Transpose', n, 1, af, ldaf, ipiv,
302 CALL sgetrs(
'No transpose', n, 1, af, ldaf, ipiv,
309 work( i ) = work( i ) * work( 2*n+i )
317 IF( ainvnm .NE. 0.0 )
subroutine sgetrs(trans, n, nrhs, a, lda, ipiv, b, ldb, info)
SGETRS
real function sla_gercond(trans, n, a, lda, af, ldaf, ipiv, cmode, c, info, work, iwork)
SLA_GERCOND estimates the Skeel condition number for a general matrix.
subroutine slacn2(n, v, x, isgn, est, kase, isave)
SLACN2 estimates the 1-norm of a square matrix, using reverse communication for evaluating matrix-vec...