This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Document sNaN argument error handling [committed]
- From: Joseph Myers <joseph at codesourcery dot com>
- To: <libc-alpha at sourceware dot org>
- Date: Fri, 16 Dec 2016 23:41:38 +0000
- Subject: Document sNaN argument error handling [committed]
- Authentication-results: sourceware.org; auth=none
TS 18661-1 says that "Whether a signaling NaN input causes a domain
error is implementation-defined.". Considering it a domain error
would (given glibc's math_errhandling definition) mean setting errno
to EDOM. glibc consistently does not set errno for sNaN inputs
(unless it does so for qNaN as well, i.e. iseqsig), so this patch adds
documentation of the implementation-defined choice not to treat this
case as a domain error.
Committed.
2016-12-16 Joseph Myers <joseph@codesourcery.com>
* manual/arith.texi (Math Error Reporting): Document that sNaN
arguments are not considered domain errors.
diff --git a/manual/arith.texi b/manual/arith.texi
index 41ab577..a20a4de 100644
--- a/manual/arith.texi
+++ b/manual/arith.texi
@@ -939,6 +939,11 @@ guaranteed; it is intended that @theglibc{} should set it when the
underflow is to an appropriately signed zero, but not necessarily for
other underflows.
+When a math function has an argument that is a signaling NaN,
+@theglibc{} does not consider this a domain error, so @code{errno} is
+unchanged, but the invalid exception is still raised (except for a few
+functions that are specified to handle signaling NaNs differently).
+
Some of the math functions are defined mathematically to result in a
complex value over parts of their domains. The most familiar example of
this is taking the square root of a negative number. The complex math
--
Joseph S. Myers
joseph@codesourcery.com