|
Home About Us A-Z Index Search * Contact Us Register Login Press ShopThe Open Brand -- Problem Reporting and Interpretations System |
Problem Report 0223 Details
Show help | Quick Search | Submit a Test Suite Support Request | Click here to view your privileges
This page provides all information on Problem Report 0223.
Report 0223 Actions
Problem Report Number 0223 Submitter's Classification Test Suite problem State Resolved Resolution Test Suite Deficiency (TSD) Problem Resolution ID TSD.X.0223 Raised 1995-06-01 08:00 Updated 2003-03-13 08:00 Published 1995-06-05 08:00 Product Standard Internationalised System Calls and Libraries (XPG4) Certification Program The Open Brand certification program Test Suite VSX4 version 4.3.5 Test Identification ANSI.os/maths/ldexp 4 Problem Summary TSD4.223 This test uses performs ldexp(x, -1) where x is the smallest normalized number and expects the result to return 0. This does not allow for ldexp() to return unnormalized numbers. Our platform does not... Problem Text
This test uses performs ldexp(x, -1) where x is the smallest
normalized number and expects the result to return 0. This does not
allow for ldexp() to return unnormalized numbers.
Our platform does not use the IEEE floating point standard. On our
platform, a floating-point number consists of a signed hexadecimal
fraction and an unsigned seven-bit binary integer called the
characteristic. The number 64 is subtracted from the characteristic
to represent the exponent range -64 to -63. The sign bit and the
characteristic occupy the first byte of a double variable and the
fraction occupies the remaining 7 bytes. The value of a
floating-point number is the product of its fraction and the number 16
raised to the power of the exponent that is represented by its
characteristic.
The ldexp() test performs the call ldexp(mindble, -1). mlmachar()
calculates mindble on our platform to be 5.39761e-79, which is our
smallest normalized number (0x0010000000000000). This is also the
same value as DBL_MIN in our float.h. ldexp(mindble, -1) will result
in a unnormalized number 2.6988e-79 (0x0008000000000000) and not
underflow. This value has lost a digit of precision but it can still
be represented.
Two possible solutions to this appear to be:
- calculate a new mindble that will be the smallest unnormalized
number so ldexp(mindble, -1) has no choice but to return 0
- continue to use the smallest normalized number and allow a
return value of either an unnormalized number or 0Test Output
/tset/ANSI.os/maths/ldexp/T.ldexp 4.Failed
Test Description:
if value * 2^exp would cause underflow, ldexp() returns 0 and may set
errno to ERANGE.
Test Strategy:
CALCULATE floating point constants using mlmachar().
CREATE child
VERIFY that if value * 2^ exp would cause underflow, ldexp() returns
0 and may set errno to ERANGE.
Test Information:
RETURN VALUES: expected: 0, observed: 2.6988e-79
Bit Representation: expected value: \000\000\000\000\000\000\000\000
Bit Representation: observed value: \000\010\000\000\000\000\000\000
ERRNO VALUES: expected: 2 (ERANGE), observed: 0 (NO ERROR)Review Information
Review Type TSMA Review Start Date null Completed null Status Complete Review Recommendation No Resolution Given Review Response
This is accept as a test suite faults and it is recommended that
this is treated as a test suite deficiency.
Review Type SA Review Start Date null Completed null Status Complete Review Resolution Test Suite Deficiency (TSD) Review Conclusion
This is an agreed Test Suite Deficiency.
Problem Reporting System Options:
- View Report 0223
- List All PRs
- Search Reports
- Email the System Administrator
- View the The Open Brand Interpretations Database User Manual
Contact the Certification Authority