|
Home About Us A-Z Index Search * Contact Us Register Login Press ShopThe Open Brand -- Problem Reporting and Interpretations System |
Problem Report 2361 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 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:
- View Report 2361
- List All PRs
- Search Reports
- Email the System Administrator
- View the The Open Brand Interpretations Database User Manual
Contact the Certification Authority