17faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*> \brief \b DLAPY3 27faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez* 37faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez* =========== DOCUMENTATION =========== 47faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez* 57faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez* Online html documentation available at 67faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez* http://www.netlib.org/lapack/explore-html/ 77faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez* 87faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*> \htmlonly 97faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*> Download DLAPY3 + dependencies 107faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/dlapy3.f"> 117faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*> [TGZ]</a> 127faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/dlapy3.f"> 137faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*> [ZIP]</a> 147faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlapy3.f"> 157faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*> [TXT]</a> 167faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*> \endhtmlonly 177faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez* 187faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez* Definition: 197faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez* =========== 207faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez* 217faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez* DOUBLE PRECISION FUNCTION DLAPY3( X, Y, Z ) 227faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez* 237faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez* .. Scalar Arguments .. 247faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez* DOUBLE PRECISION X, Y, Z 257faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez* .. 267faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez* 277faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez* 287faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*> \par Purpose: 297faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez* ============= 307faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*> 317faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*> \verbatim 327faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*> 337faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*> DLAPY3 returns sqrt(x**2+y**2+z**2), taking care not to cause 347faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*> unnecessary overflow. 357faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*> \endverbatim 367faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez* 377faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez* Arguments: 387faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez* ========== 397faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez* 407faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*> \param[in] X 417faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*> \verbatim 427faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*> X is DOUBLE PRECISION 437faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*> \endverbatim 447faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*> 457faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*> \param[in] Y 467faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*> \verbatim 477faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*> Y is DOUBLE PRECISION 487faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*> \endverbatim 497faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*> 507faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*> \param[in] Z 517faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*> \verbatim 527faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*> Z is DOUBLE PRECISION 537faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*> X, Y and Z specify the values x, y and z. 547faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*> \endverbatim 557faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez* 567faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez* Authors: 577faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez* ======== 587faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez* 597faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*> \author Univ. of Tennessee 607faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*> \author Univ. of California Berkeley 617faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*> \author Univ. of Colorado Denver 627faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*> \author NAG Ltd. 637faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez* 647faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*> \date November 2011 657faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez* 667faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*> \ingroup auxOTHERauxiliary 677faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez* 687faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez* ===================================================================== 697faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez DOUBLE PRECISION FUNCTION DLAPY3( X, Y, Z ) 707faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez* 717faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez* -- LAPACK auxiliary routine (version 3.4.0) -- 727faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez* -- LAPACK is a software package provided by Univ. of Tennessee, -- 737faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- 747faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez* November 2011 757faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez* 767faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez* .. Scalar Arguments .. 777faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez DOUBLE PRECISION X, Y, Z 787faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez* .. 797faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez* 807faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez* ===================================================================== 817faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez* 827faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez* .. Parameters .. 837faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez DOUBLE PRECISION ZERO 847faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez PARAMETER ( ZERO = 0.0D0 ) 857faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez* .. 867faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez* .. Local Scalars .. 877faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez DOUBLE PRECISION W, XABS, YABS, ZABS 887faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez* .. 897faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez* .. Intrinsic Functions .. 907faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez INTRINSIC ABS, MAX, SQRT 917faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez* .. 927faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez* .. Executable Statements .. 937faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez* 947faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez XABS = ABS( X ) 957faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez YABS = ABS( Y ) 967faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez ZABS = ABS( Z ) 977faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez W = MAX( XABS, YABS, ZABS ) 987faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez IF( W.EQ.ZERO ) THEN 997faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez* W can be zero for max(0,nan,0) 1007faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez* adding all three entries together will make sure 1017faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez* NaN will not disappear. 1027faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez DLAPY3 = XABS + YABS + ZABS 1037faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez ELSE 1047faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez DLAPY3 = W*SQRT( ( XABS / W )**2+( YABS / W )**2+ 1057faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez $ ( ZABS / W )**2 ) 1067faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez END IF 1077faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez RETURN 1087faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez* 1097faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez* End of DLAPY3 1107faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez* 1117faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez END 112