113 DOUBLE PRECISION FUNCTION dlange( NORM, M, N, A, LDA, WORK )
125 DOUBLE PRECISION a( lda, * ), work( * )
131 DOUBLE PRECISION one, zero
132 parameter( one = 1.0d+0, zero = 0.0d+0 )
136 DOUBLE PRECISION sum,
VALUE, temp
139 DOUBLE PRECISION ssq( 2 ), colssq( 2 )
149 INTRINSIC abs, min, sqrt
153 IF( min( m, n ).EQ.0 )
THEN
155 ELSE IF(
lsame( norm,
'M' ) )
THEN
162 temp = abs( a( i, j ) )
163 IF(
VALUE.LT.temp .OR.
disnan( temp ) )
VALUE = temp
166 ELSE IF( (
lsame( norm,
'O' ) ) .OR. ( norm.EQ.
'1' ) )
THEN
174 sum = sum + abs( a( i, j ) )
176 IF(
VALUE.LT.sum .OR.
disnan( sum ) )
VALUE = sum
178 ELSE IF(
lsame( norm,
'I' ) )
THEN
187 work( i ) = work( i ) + abs( a( i, j ) )
193 IF(
VALUE.LT.temp .OR.
disnan( temp ) )
VALUE = temp
195 ELSE IF( (
lsame( norm,
'F' ) ) .OR. (
lsame( norm,
'E' ) ) )
THEN
207 CALL dlassq( m, a( 1, j ), 1, colssq( 1 ), colssq( 2 ) )
210 VALUE = ssq( 1 )*sqrt( ssq( 2 ) )
logical function disnan(DIN)
DISNAN tests input for NaN.
subroutine dlassq(n, x, incx, scl, sumsq)
DLASSQ updates a sum of squares represented in scaled form.
subroutine dcombssq(V1, V2)
DCOMBSSQ adds two scaled sum of squares quantities.
logical function lsame(CA, CB)
LSAME
double precision function dlange(NORM, M, N, A, LDA, WORK)
DLANGE returns the value of the 1-norm, Frobenius norm, infinity-norm, or the largest absolute value ...