Manual Reference Pages - HYPOT (3)
NAME
hypot, hypotf, hypotl - Euclidean distance function
CONTENTS
Synopsis
Description
Return Value
Errors
Colophon
SYNOPSIS
#include <math.h>
double hypot(double x , double y );
float hypotf(float x , float y );
long double hypotl(long double x , long double y );

Link with -lm .

Feature Test Macro Requirements for glibc (see
feature_test_macros (7)):

hypot ():

_BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE || _ISOC99_SOURCE ||
_POSIX_C_SOURCE >= 200112L;
or
cc -std=c99
hypotf (),
hypotl ():
_BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE >= 600 || _ISOC99_SOURCE ||
_POSIX_C_SOURCE >= 200112L;
or
cc -std=c99
DESCRIPTION
The
hypot () function returns
sqrt(x *x +y *y ). This is the length of the hypotenuse of a right-angled triangle
with sides of length
x and
y , or the distance of the point
(x ,y ) from the origin.
The calculation is performed without undue overflow or underflow
during the intermediate steps of the calculation.

RETURN VALUE
On success, these functions return the length of a right-angled triangle
with sides of length
x and
y .
If
x or
y is an infinity,
positive infinity is returned.

If
x or
y is a NaN,
and the other argument is not an infinity,
a NaN is returned.

If the result overflows,
a range error occurs,
and the functions return
HUGE_VAL ,
HUGE_VALF , or
HUGE_VALL , respectively.

If both arguments are subnormal, and the result is subnormal,
a range error occurs,
and the correct result is returned.

ERRORS
See
math_error (7)
for information on how to determine whether an error has occurred
when calling these functions.
The following errors can occur:

Range error: result overflow
errno is set to
ERANGE . An overflow floating-point exception
(FE_OVERFLOW ) is raised.
Range error: result underflow
An underflow floating-point exception
(FE_UNDERFLOW ) is raised.
These functions do not set
errno for this case.

CONFORMING TO
C99, POSIX.1-2001.
The variant returning
double also conforms to
SVr4, 4.3BSD.
SEE ALSO
cabs (3),
sqrt (3)
COLOPHON
This page is part of release 3.44 of the Linux
man-pages project.
A description of the project,
and information about reporting bugs,
can be found at
http://www.kernel.org/doc/man-pages /.

Please enable JavaScript to view the comments powered by Disqus.
blog comments powered by