[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
Re: [Stds-754] Motion: Update transcendental functions with crlibm progress.
Item 19 has been so amended. - Dan
From: "Eric Postpischil" <stds-754+ieee.org@xxxxxxx>
Date: Mon, 7 Aug 2006 21:33:57 -0700
Subject: Re: [Stds-754] Motion: Update transcendental functions with crlibm
progress.
I would like to amend my motion with corrections and suggestions from Jim
Thomas. The changes are:
Remove the editorial note about sin not underflowing for single- and
double-precision (this does not substantively change the motion):
Operation: sin
Function: sin(x)
Domain: [-pi, +pi]
Exceptions: |x| = infinity: invalid;
underflow
Separate sinpi and cospi and note that sinpi may underflow:
Operation: sinpi
Function: sin(pi*x)
Domain: empty
Exceptions: |x| = infinity: invalid;
underflow
Operation: cospi
Function: cos(pi*x)
Domain: empty
Exceptions: |x| = infinity: invalid
Add a footnote about exceptions that can occur in weird formats (and
license the editors to change the phrasing):
Some functions, such as cospi and log, can be made to underflow
and/or overflow in an abnormal format with a huge precision and
a small exponent field. These are not noted in table D.1 and
are not anticipated to occur in common practice.
The entire new text of the motion follows.
-- edp (Eric Postpischil)
http://edp.org
Motion:
Update Table D.1 with new results from crlibm 0.14.
Rationale:
The crlibm project has new results showing the feasibility of these
new intervals.
Edits:
[[Text in double brackets is comment, not part of the motion.]]
[[I use the format below because it is easier to compose, and, I judge,
read, in plain text email than trying to produce a table format. This
motion is not intended to change the draft's table format to this
format.
"Domain" stands for the "Correctly-rounded Domain" column.]]
Change Table D.1 to:
Operation: exp
Function: e^x
Domain: [-infinity, +infinity] [[Complete.]]
Exceptions: overflow; underflow
Operation: log, log2, log10
Function: log[e](x), log[2](x), log[10](x)
Domain: (0, +infinity] [[Complete.]]
Exceptions: x = 0: division by zero;
x < 0: invalid
Operation: sinh, cosh
Function: sinh(x), cosh(x)
Domain: [-infinity, +infinity] [[Complete.]]
Exceptions: overflow
Operation: sin
Function: sin(x)
Domain: [-pi, +pi]
Exceptions: |x| = infinity: invalid;
underflow
Operation: cos
Function: cos(x)
Domain: [-pi, +pi]
Exceptions: |x| = infinity: invalid;
underflow
[[Even if cos does not underflow for any single- or
double-precision number, it might for other
precisions.]]
Operation: tan
Function: tan(x)
Domain: [-pi, +pi]
Exceptions: |x| = infinity: invalid;
underflow; overflow
[[Even if tan does not underflow or overflow for any
single-
or double-precision number, it might for other
precisions.]]
Operation: asin
Function: asin(x)
Domain: [-1, +1] [[Complete.]]
Exceptions: x not in [-1, +1]: invalid
Operation: acos
Function: acos(x)
Domain: [-1, 1] [[Complete.]]
Exceptions: x not in [-1, +1]: invalid
Operation: atan
Function: atan(x)
Domain: [-infinity, +infinity] [[Complete.]]
Exceptions: underflow
[[Retain existing notes about atan.]]
Operation: expm1
Function: e^x-1
Domain: [-infinity, +infinity] [[Complete.]]
Exceptions: overflow; underflow
Operation: log1p
Function: log[e](1+x)
Domain: (-1, +infinity] [[Complete.]]
Exceptions: x = -1: division by zero;
x < -1: invalid
Operation: sinpi
Function: sin(pi*x)
Domain: empty
Exceptions: |x| = infinity: invalid;
underflow
Operation: cospi
Function: cos(pi*x)
Domain: empty
Exceptions: |x| = infinity: invalid
Operation: atanpi
Function: atan(x)/pi
Domain: empty
Exceptions: underflow
Add a footnote to table D.1. about exceptions that can occur in weird
formats (and license the editors to change the phrasing):
Some functions, such as cospi and log, can be made to underflow
and/or overflow in an abnormal format with a huge precision and
a small exponent field. These are not noted in table D.1 and
are not anticipated to occur in common practice.