J3/05-113r1
Date: 1 Feb 2005
To: J3
From: John Reid
Subject: logb(denormal), logb(NaN), logb(INF)
Here is a draft response for F03/0034.
NUMBER: F03/0034
TITLE: IEEE_LOGB()
KEYWORDS: IEEE-754, logb()
DEFECT TYPE: Erratum
STATUS: For consideration
QUESTION:
What is logb(denormal)? Is it of the hardware representation,
or is it as if the hardware had an unbounded exponent range?
What is logb(NaN)? logb(-INF)? logb(+INF)?
logb() should be defined as if the hardware representation had
an unbounded exponent range.
logb(NaN) should be the same NaN; shall be a NaN.
logb(-INF) shall be +INF
logb(+INF) shall be +INF
ANSWER:
The first paragraph of 14.8 states "Complete conformance with the
is not required, but ... the functions copysign, scalb, logb,
nextafter, rem, and unordered shall be provided by the functions
IEEE_COPY_SIGN, IEEE_SCALB, IEEE_LOGB, IEEE_NEXT_AFTER, IEEE_REM,
and IEEE_UNORDERED."
Case (i) of 14.10.12 correctly specifies that if the value of X is
denormal, its unbiased exponent is returned; however, the note there
is wrong in this case. An edit is supplied.
For consistency with the IEEE International Standard, an edit is
also supplied for the case where X is infinite.
EDITS:
Page and line numbers refer to 04-007.
[376:15]. Subclause 14.10.12, Result Value, line 2. After "Note:" add
"if X is normal,".
[376:17+]. Subclause 14.10.12, Result Value. Add extra case:
"Case (iii) If IEEE_SUPPORT_INF(X) is true and X is infinite, the
result is +infinity." .
SUBMITTED BY: Fred Tydeman
HISTORY: J3/05-113 m171 Submitted