Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
HYPOT(3)		 BSD Library Functions Manual		      HYPOT(3)

NAME
     hypot, hypotf, cabs, cabsf	-- Euclidean distance and complex absolute
     value functions

LIBRARY
     Math Library (libm, -lm)

SYNOPSIS
     #include <math.h>

     double
     hypot(double x, double y);

     float
     hypotf(float x, float y);

     struct {double x, y;} z;

     double
     cabs(z);

     struct {float x, y;} z;

     float
     cabsf(z);

DESCRIPTION
     The hypot(), hypotf(), cabs() and cabsf() functions compute the
     sqrt(x*x+y*y) 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	gen-
     eral, hypot and cabs return an integer whenever an	integer	might be ex-
     pected.

     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 (if 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 in-
     dependent of v.  Unlike the reserved operand fault	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(3), sqrt(3)

HISTORY
     Both a hypot() function and a cabs() function appeared in Version 7 AT&T
     UNIX.

BSD				  May 6, 1991				   BSD

NAME | LIBRARY | SYNOPSIS | DESCRIPTION | ERROR (due to Roundoff, etc.) | NOTES | SEE ALSO | HISTORY

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=hypot&sektion=3&manpath=FreeBSD+5.2-RELEASE+and+Ports>

home | help