# 2.11BSD#431 - /usr/man/cat3/cabs.0

    HYPOT(3M)	    UNIX Programmer's Manual		HYPOT(3M)

    NAME
         hypot, cabs - Euclidean distance, complex absolute value

    SYNOPSIS
         #include <math.h>

         double hypot(x,y)
         double x,y;

         double cabs(z)
         struct {double x,y;} z;

    DESCRIPTION
         Hypot(x,y) and cabs(x,y) return sqrt(x*x+y*y) computed in
         such a way that underflow will not happen, and overflow
         occurs only if the final result deserves it.

         hypot(infinity,v) = hypot(v,infinity) = +infinity for all v,
         including NaN.

    ERROR (due to Roundoff, etc.)
         Below 0.97 ulps.  Consequently hypot(5.0,12.0) = 13.0
         exactly; in general, hypot and cabs return an integer when-
         ever an integer might be expected.

         The same cannot be said for the shorter and faster version
         of hypot and cabs that is provided in the comments in
         cabs.c; its error can exceed 1.2 ulps.

    NOTES
         As might be expected, hypot(v,NaN) and hypot(NaN,v) are NaN
         for all finite v; with "reserved operand" in place of "NaN",
         the same is true on a VAX.  But programmers on machines
         other than a VAX (it has no infinity) might be surprised at
         first to discover that hypot(+infinity,NaN) = +infinity.
         This is intentional; it happens because hypot(infinity,v) =
         +infinity for all v, finite or infinite.  Hence
         hypot(infinity,v) is independent of v.  Unlike the reserved
         operand on a VAX, the IEEE NaN is designed to disappear when
         it turns out to be irrelevant, as it does in
         hypot(infinity,NaN).

    SEE ALSO
         math(3M), sqrt(3M)

    AUTHOR
         W. Kahan

    Printed 11/26/99	  May 12, 1986				1

Generated: 2016-12-26 | Generated by man2html V0.25 page hit count: 276 |