HomeAbout Us A-Z IndexSearch * Contact Us Register LoginPress Shop

The Open Brand -- Problem Reporting and Interpretations System


Problem Report 0216 Details

Help Show help | Quick Search | Submit a Test Suite Support Request | Click here to view your privileges

This page provides all information on Problem Report 0216.


Report 0216 Actions


    Problem Report Number 0216
    Submitter's Classification Test Suite problem
    State Resolved
    Resolution Test Suite Deficiency (TSD)
    Problem Resolution ID TSD.X.0216
    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.216 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 0
    Test 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:

     

    Back   


Contact the Certification Authority