Boost logo

Boost Users :

From: Guillaume Melquiond (guillaume.melquiond_at_[hidden])
Date: 2005-08-10 22:27:38

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<float, boost::numeric::interval_lib::policies<boost::numeric::interval_lib::rounded_math<float>, boost::numeric::interval_lib::checking_strict<float> > >]'
> /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<long double, boost::numeric::interval_lib::policies<boost::numeric::interval_lib::rounded_math<long double>, boost::numeric::interval_lib::checking_strict<long double> > >]'
> 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,


Boost-users list run by williamkempf at, kalb at, bjorn.karlsson at, gregod at, wekempf at