]> git.ipfire.org Git - thirdparty/man-pages.git/commitdiff
SYNOPSIS: Fixed feature test macro requirements.
authorMichael Kerrisk <mtk.manpages@gmail.com>
Fri, 1 Aug 2008 05:26:22 +0000 (05:26 +0000)
committerMichael Kerrisk <mtk.manpages@gmail.com>
Fri, 1 Aug 2008 05:26:22 +0000 (05:26 +0000)
DESCRIPTION: note that calculation is done without causing
undue overflow or underflow.
Added RETURN VALUE section.
Added ERRORS section; noted that errno is not always set; see
also http://sources.redhat.com/bugzilla/show_bug.cgi?id=6795.
Updated CONFORMING TO.

man3/hypot.3

index 40f1d4f4f7d19a9ecd8e81395311855fa6977ce8..316edca7a03a3e1621b841563250e5037060f722 100644 (file)
@@ -28,7 +28,7 @@
 .\" Modified 2002-07-27 by Walter Harms
 .\"    (walter.harms@informatik.uni-oldenburg.de)
 .\"
-.TH HYPOT 3 2007-07-26 ""  "Linux Programmer's Manual"
+.TH HYPOT 3 2008-07-29 ""  "Linux Programmer's Manual"
 .SH NAME
 hypot, hypotf, hypotl \- Euclidean distance function
 .SH SYNOPSIS
@@ -50,10 +50,13 @@ Feature Test Macro Requirements for glibc (see
 .in
 .sp
 .ad l
-.BR hypot (),
+.BR hypot ():
+_BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE || _ISOC99_SOURCE; or
+.I cc\ -std=c99
+.br
 .BR hypotf (),
 .BR hypotl ():
-_BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE\ >=\ 500 || _ISOC99_SOURCE; or
+_BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE\ >=\ 600 || _ISOC99_SOURCE; or
 .I cc\ -std=c99
 .ad b
 .SH DESCRIPTION
@@ -61,7 +64,7 @@ The
 .BR hypot ()
 function returns
 .RI sqrt( x * x + y * y ).
-This is the length of the hypotenuse of a right-angle triangle
+This is the length of the hypotenuse of a right-angled triangle
 with sides of length
 .I x
 and
@@ -69,13 +72,83 @@ and
 or the distance of the point
 .RI ( x , y )
 from the origin.
-.SH "CONFORMING TO"
-SVr4, 4.3BSD, C99.
-The
-.I float
+
+The calculation is performed without undue overflow or underflow
+during the intermediate steps of the calculation.
+.\" e.g., hypot(DBL_MIN, DBL_MIN) does the right thing, as does, say
+.\" hypot(DBL_MAX/2.0, DBL_MAX/2.0).
+.SH RETURN VALUE
+On success, these functions return the length of a right-angled triangle
+with sides of length
+.I x
 and
-.I "long double"
-variants are C99 requirements.
+.IR y .
+
+If
+.I x
+or
+.I y
+is an infinity,
+positive infinity is returned.
+
+If
+.I x
+or
+.I 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
+.BR HUGE_VAL ,
+.BR HUGE_VALF ,
+or
+.BR HUGE_VALL ,
+respectively.
+
+If both arguments are subnormal, and the result is subnormal,
+.\" Actually, could the result not be subnormal if both arguments
+.\" are subnormal?  I think not -- mtk, Jul 2008
+a "range error" occurs,
+and the correct result is returned.
+.SH ERRORS
+See
+.BR math_error (7)
+for information on how to determine whether an error has occurred
+when calling these functions.
+.PP
+The following errors can occur:
+.TP
+Range error: result overflow
+.I errno
+is set to
+.BR ERANGE .
+An overflow floating-point exception
+.RB ( FE_OVERFLOW )
+is raised.
+.TP
+Range error: result underflow
+.\" .I errno
+.\" is set to
+.\" .BR ERANGE .
+An underflow floating-point exception
+.RB ( FE_UNDERFLOW )
+is raised.
+.IP
+These functions do not set
+.IR errno
+for this case.
+.\" FIXME . Is it intentional that these functions do not set errno?
+.\" They do set errno for the overflow case.
+.\" Bug raised: http://sources.redhat.com/bugzilla/show_bug.cgi?id=6795
+.SH "CONFORMING TO"
+C99, POSIX.1-2001.
+The variant returning
+.I double
+also conforms to
+SVr4, 4.3BSD.
 .SH "SEE ALSO"
 .BR cabs (3),
 .BR sqrt (3)