REAL function slapy2( x, y ) ! ! -- LAPACK auxiliary routine -- ! -- LAPACK is a software package provided by Univ. of Tennessee, -- ! -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- ! ! .. Scalar Arguments .. REAL x, y ! .. ! ! ===================================================================== ! ! .. Parameters .. REAL zero parameter( zero = 0.0e0 ) REAL one parameter( one = 1.0e0 ) ! .. ! .. Local Scalars .. REAL w, xabs, yabs, z, hugeval LOGICAL x_is_nan, y_is_nan ! .. ! .. External Functions .. LOGICAL sisnan EXTERNAL sisnan ! .. ! .. External Subroutines .. REAL slamch ! .. ! .. Intrinsic Functions .. INTRINSIC abs, max, min, sqrt ! .. ! .. Executable Statements .. ! ! x_is_nan = sisnan( x ) ! y_is_nan = sisnan( y ) ! IF ( x_is_nan ) slapy2 = x ! IF ( y_is_nan ) slapy2 = y ! hugeval = slamch( 'Overflow' ) xabs = abs( x ) yabs = abs( y ) w = max( xabs, yabs ) z = min( xabs, yabs ) IF( z.EQ.zero ) THEN slapy2 = w ELSE slapy2 = w*sqrt( one+( z / w )**2 ) END IF RETURN ! ! End of SLAPY2 ! END