105 REAL function
clangt( norm, n, dl, d, du )
116 COMPLEX d( * ), dl( * ), du( * )
123 parameter( one = 1.0e+0, zero = 0.0e+0 )
127 REAL anorm, scale, sum, temp
143 ELSE IF(
lsame( norm,
'M' ) )
THEN
147 anorm = abs( d( n ) )
149 IF( anorm.LT.abs( dl( i ) ) .OR.
sisnan( abs( dl( i ) ) ) )
151 IF( anorm.LT.abs( d( i ) ) .OR.
sisnan( abs( d( i ) ) ) )
153 IF( anorm.LT.abs( du( i ) ) .OR.
sisnan(abs( du( i ) ) ) )
156 ELSE IF(
lsame( norm,
'O' ) .OR. norm.EQ.
'1' )
THEN
161 anorm = abs( d( 1 ) )
163 anorm = abs( d( 1 ) )+abs( dl( 1 ) )
164 temp = abs( d( n ) )+abs( du( n-1 ) )
165 IF( anorm .LT. temp .OR.
sisnan( temp ) ) anorm = temp
167 temp = abs( d( i ) )+abs( dl( i ) )+abs( du( i-1 ) )
168 IF( anorm .LT. temp .OR.
sisnan( temp ) ) anorm = temp
171 ELSE IF(
lsame( norm,
'I' ) )
THEN
176 anorm = abs( d( 1 ) )
178 anorm = abs( d( 1 ) )+abs( du( 1 ) )
179 temp = abs( d( n ) )+abs( dl( n-1 ) )
180 IF( anorm .LT. temp .OR.
sisnan( temp ) ) anorm = temp
182 temp = abs( d( i ) )+abs( du( i ) )+abs( dl( i-1 ) )
183 IF( anorm .LT. temp .OR.
sisnan( temp ) ) anorm = temp
186 ELSE IF( (
lsame( norm,
'F' ) ) .OR. (
lsame( norm,
'E' ) ) )
THEN
192 CALL classq( n, d, 1, scale, sum )
194 CALL classq( n-1, dl, 1, scale, sum )
195 CALL classq( n-1, du, 1, scale, sum )
197 anorm = scale*sqrt( sum )
subroutine classq(n, x, incx, scl, sumsq)
CLASSQ updates a sum of squares represented in scaled form.
logical function sisnan(SIN)
SISNAN tests input for NaN.
logical function lsame(CA, CB)
LSAME
real function clangt(NORM, N, DL, D, DU)
CLANGT returns the value of the 1-norm, Frobenius norm, infinity-norm, or the largest absolute value ...