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

The Open Brand -- Problem Reporting and Interpretations System


Problem Report 2361 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 2361.


Report 2361 Actions


    Problem Report Number 2361
    Submitter's Classification Test Suite problem
    State Resolved
    Resolution Test Suite Deficiency (TSD)
    Problem Resolution ID TSD.X.1219
    Raised 2004-04-20 08:50
    Updated 2004-04-30 14:24
    Published 2004-04-30 14:24
    Product Standard Internationalised System Calls and Libraries Extended V3 (UNIX 03)
    Certification Program The Open Brand certification program
    Test Suite VSX4 version 4.6.2
    Test Identification XOPEN.os/maths/j0 9
    Specification Base Definitions Issue 6
    Linked Problem Reports 2356
    Problem Summary XOPEN.os/maths/j0 9 expects 0.0 for jn(x) when x is large.
    Problem Text This test fails because it expects a return value of 0.0 from jn(x)
    when x is large.

    According to Handbook of Mathematical Functions, Edited by M. Abramowitz
    et al; page 364, formula 9.2.1:

    Jn(x) ~ cos(x-(2n+1)*pi/4)*sqrt(2/x*pi) when x is large.

    This is what our implementation returns. The test should allow this
    value to be returned.

    The initial response to the above description was basically that the
    numbers were too large therefore any value returned was so inaccurate as
    to be equivalent to a random number. This is not correct.

    Firstly, our trig implementation reduces the input argument with respect
    to infinitely-precise pi.

    Secondly, because the input argument is x, it is easy to compute
    cos(x-(2n+1)*pi/4) and sin(x-(2n+1)*pi/4) without significant loss of
    precision.
    Test Output
    ****************************************************************************************************************
    /tset/XOPEN.os/maths/j0/T.j0 9 Failed

    Test Description:
    When jn() is called with a second argument that is too large in
    magnitude or would cause underflow, then it returns zero and a
    range
    underflow error may occur.
    Note: This test is only executed in UNIX03 mode.

    Test Strategy:
    For UNIX03 modes:
    CREATE child process
    VERIFY that jn(n, maxdble) returns 0.0
    VERIFY that if an error is generated then this error is a
    range
    underflow error, using mlerrchk().

    Test Information:
    jn(2, maxdble) returned 4.18699e-155, expected 0.0


    ****************************************************************************************************************

    Review Information

    Review Type TSMA Review
    Start Date 2004-04-20 08:50
    Last Updated 2004-04-20 19:00
    Completed 2004-04-20 19:00
    Status Complete
    Review Recommendation Test Suite Deficiency (TSD)
    Review Response On reconsidering this issue, I notice that the situation in test 9 for
    jn() is equivalent to that in tests 4 and 5 for j0() and j1(), which do
    already allow for an accurate return value.

    I still consider this behaviour to be questionable when the argument x
    is so large that, in the normal case where x is calculated rather than
    being a contrived value such as DBL_MAX, it does not itself have
    sufficient precision for an accurate result to be meaningful to the
    application. However, given that there is precedent for allowing this
    behaviour for j0() and j1(), if we disallow it for jn() we would also
    have to reopen the same issue for j0() and j1() and I do not see
    sufficient grounds for doing that.

    I recommend that test 9 is amended to allow an accurate return value
    using the same method as in tests 4 and 5.

    Review Type SA Review
    Start Date 2004-04-20 18:00
    Last Updated 2004-04-21 02:55
    Completed 2004-04-21 02:55
    Status Complete
    Review Resolution Test Suite Deficiency (TSD)
    Review Conclusion This PR represents an agreed test suite deficiency.

    Problem Reporting System Options:

     

    Back   


Contact the Certification Authority