I really don't understand the following math library test
failures (Boost 1.32.0):
1) test_float.output
/Code/boost-os4/libs/numeric/interval/test/test_float.cpp(55): fatal error in "call_test_main": test subset(rIT2, rII) failed
2) overflow.output
/Code/boost-os4/libs/numeric/interval/test/overflow.cpp(22): test in(x, y) failed in function: 'void test_one(typename I::base_type, typename I::base_type) [with I = boost::numeric::interval
Le mercredi 10 août 2005 à 19:38 -0600, Steven Solie a écrit :
I really don't understand the following math library test failures (Boost 1.32.0):
1) test_float.output /Code/boost-os4/libs/numeric/interval/test/test_float.cpp(55): fatal error in "call_test_main": test subset(rIT2, rII) failed
2) overflow.output /Code/boost-os4/libs/numeric/interval/test/overflow.cpp(22): test in(x, y) failed in function: 'void test_one(typename I::base_type, typename I::base_type) [with I = boost::numeric::interval
>]' /Code/boost-os4/libs/numeric/interval/test/overflow.cpp(22): test in(x, y) failed in function: 'void test_one(typename I::base_type, typename I::base_type) [with I = boost::numeric::interval
>]' I'm using GCC 3.4.4 on AmigaOS PowerPC.
First, what do these errors mean in English?
The first test verifies that the result of ([al,au] op bu) is a subset of the result of (([al,au] op [bl,bu]). Having this property is not mandatory mathematically-speaking, but not having it is usually a sign that interval arithmetic on floating-point types won't lead to guaranteed results. The second test verifies that multiplying x by y 10000 times and then multiplying the result by 1/y 10000 times (so it is similar to x * y^(10000) * y^(-10000)) still gives a set containing x. The purpose of this test is to verify that interval arithmetic will give correct results even in case of floating-point underflow and overflow.
Second, any ideas what I could do to get them to pass?
Unfortunately the output of these tests is a bit poor, since it doesn't display the parameters causing the failure. I suppose that, since the overflow test fails on non-double floating-point formats, the same problem must happen for the test_float test. Is there any difference in the way AmigaOS deals with floating-point computations with respect to other PowerPC operating systems like Darwin or OSX? Best regards, Guillaume
participants (2)
-
Guillaume Melquiond
-
Steven Solie