github.com/gonum/lapack@v0.0.0-20181123203213-e4cdc5a0bff9/internal/testdata/netlib/dlapy2.f (about)

     1  *> \brief \b DLAPY2 returns sqrt(x2+y2).
     2  *
     3  *  =========== DOCUMENTATION ===========
     4  *
     5  * Online html documentation available at 
     6  *            http://www.netlib.org/lapack/explore-html/ 
     7  *
     8  *> \htmlonly
     9  *> Download DLAPY2 + dependencies 
    10  *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/dlapy2.f"> 
    11  *> [TGZ]</a> 
    12  *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/dlapy2.f"> 
    13  *> [ZIP]</a> 
    14  *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlapy2.f"> 
    15  *> [TXT]</a>
    16  *> \endhtmlonly 
    17  *
    18  *  Definition:
    19  *  ===========
    20  *
    21  *       DOUBLE PRECISION FUNCTION DLAPY2( X, Y )
    22  * 
    23  *       .. Scalar Arguments ..
    24  *       DOUBLE PRECISION   X, Y
    25  *       ..
    26  *  
    27  *
    28  *> \par Purpose:
    29  *  =============
    30  *>
    31  *> \verbatim
    32  *>
    33  *> DLAPY2 returns sqrt(x**2+y**2), taking care not to cause unnecessary
    34  *> overflow.
    35  *> \endverbatim
    36  *
    37  *  Arguments:
    38  *  ==========
    39  *
    40  *> \param[in] X
    41  *> \verbatim
    42  *>          X is DOUBLE PRECISION
    43  *> \endverbatim
    44  *>
    45  *> \param[in] Y
    46  *> \verbatim
    47  *>          Y is DOUBLE PRECISION
    48  *>          X and Y specify the values x and y.
    49  *> \endverbatim
    50  *
    51  *  Authors:
    52  *  ========
    53  *
    54  *> \author Univ. of Tennessee 
    55  *> \author Univ. of California Berkeley 
    56  *> \author Univ. of Colorado Denver 
    57  *> \author NAG Ltd. 
    58  *
    59  *> \date September 2012
    60  *
    61  *> \ingroup auxOTHERauxiliary
    62  *
    63  *  =====================================================================
    64        DOUBLE PRECISION FUNCTION DLAPY2( X, Y )
    65  *
    66  *  -- LAPACK auxiliary routine (version 3.4.2) --
    67  *  -- LAPACK is a software package provided by Univ. of Tennessee,    --
    68  *  -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
    69  *     September 2012
    70  *
    71  *     .. Scalar Arguments ..
    72        DOUBLE PRECISION   X, Y
    73  *     ..
    74  *
    75  *  =====================================================================
    76  *
    77  *     .. Parameters ..
    78        DOUBLE PRECISION   ZERO
    79        PARAMETER          ( ZERO = 0.0D0 )
    80        DOUBLE PRECISION   ONE
    81        PARAMETER          ( ONE = 1.0D0 )
    82  *     ..
    83  *     .. Local Scalars ..
    84        DOUBLE PRECISION   W, XABS, YABS, Z
    85  *     ..
    86  *     .. Intrinsic Functions ..
    87        INTRINSIC          ABS, MAX, MIN, SQRT
    88  *     ..
    89  *     .. Executable Statements ..
    90  *
    91        XABS = ABS( X )
    92        YABS = ABS( Y )
    93        W = MAX( XABS, YABS )
    94        Z = MIN( XABS, YABS )
    95        IF( Z.EQ.ZERO ) THEN
    96           DLAPY2 = W
    97        ELSE
    98           DLAPY2 = W*SQRT( ONE+( Z / W )**2 )
    99        END IF
   100        RETURN
   101  *
   102  *     End of DLAPY2
   103  *
   104        END