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