diff options
Diffstat (limited to 'libs/numeric/interval')
-rw-r--r-- | libs/numeric/interval/meta/libraries.json | 19 | ||||
-rw-r--r-- | libs/numeric/interval/test/Jamfile.v2 | 1 | ||||
-rw-r--r-- | libs/numeric/interval/test/msvc_x64_flags.cpp | 21 | ||||
-rw-r--r-- | libs/numeric/interval/test/test_float.cpp | 22 |
4 files changed, 52 insertions, 11 deletions
diff --git a/libs/numeric/interval/meta/libraries.json b/libs/numeric/interval/meta/libraries.json new file mode 100644 index 000000000..d3fa6cfc2 --- /dev/null +++ b/libs/numeric/interval/meta/libraries.json @@ -0,0 +1,19 @@ +{ + "key": "numeric/interval", + "name": "Interval", + "authors": [ + "Guillaume Melquiond", + "Hervé Brönnimann", + "Sylvain Pion" + ], + "description": "Extends the usual arithmetic functions to mathematical intervals.", + "documentation": "doc/interval.htm", + "category": [ + "Math" + ], + "maintainers": [ + "Sylvain Pion <Sylvain.Pion -at- sophia.inria.fr>", + "Herve Bronnimann <hbr -at- poly.edu>", + "Guillaume Melquiond <guillaume.melquiond -at- ens-lyon.fr>" + ] +} diff --git a/libs/numeric/interval/test/Jamfile.v2 b/libs/numeric/interval/test/Jamfile.v2 index abd74815b..b7afa27f1 100644 --- a/libs/numeric/interval/test/Jamfile.v2 +++ b/libs/numeric/interval/test/Jamfile.v2 @@ -26,6 +26,7 @@ import testing ; [ run libs/numeric/interval/test/add.cpp ] [ run libs/numeric/interval/test/det.cpp ] [ run libs/numeric/interval/test/fmod.cpp ] + [ run libs/numeric/interval/test/msvc_x64_flags.cpp ] [ run libs/numeric/interval/test/mul.cpp ] [ run libs/numeric/interval/test/overflow.cpp ] [ run libs/numeric/interval/test/pi.cpp ] diff --git a/libs/numeric/interval/test/msvc_x64_flags.cpp b/libs/numeric/interval/test/msvc_x64_flags.cpp new file mode 100644 index 000000000..a79d2bb08 --- /dev/null +++ b/libs/numeric/interval/test/msvc_x64_flags.cpp @@ -0,0 +1,21 @@ +/* Boost test/msvc_x64_flags.cpp + * Test for amd64\ieee.c(102) : Assertion failed: (mask&~(_MCW_DN|_MCW_EM|_MCW_RC))==0. + * This happens with MSVC on x64 in Debug mode. See ticket #4964. + * + * Distributed under the Boost Software License, Version 1.0. + * (See accompanying file LICENSE_1_0.txt or + * copy at http://www.boost.org/LICENSE_1_0.txt) + */ + +#include <boost/numeric/interval.hpp> +#include <boost/test/minimal.hpp> +#include "bugs.hpp" + +int test_main(int, char *[]) { + boost::numeric::interval<double> i(0.0, 0.0); + boost::numeric::interval<double> i2 = 60.0 - i; +# ifdef __BORLANDC__ + ::detail::ignore_warnings(); +# endif + return 0; +} diff --git a/libs/numeric/interval/test/test_float.cpp b/libs/numeric/interval/test/test_float.cpp index b8c338823..8f478a79a 100644 --- a/libs/numeric/interval/test/test_float.cpp +++ b/libs/numeric/interval/test/test_float.cpp @@ -80,10 +80,10 @@ new_unary_bunch(bunch_abs, abs, true); template<class T> void test_all_unaries() { - BOOST_CHECKPOINT("pos"); test_unary<T, bunch_pos<T> >(); - BOOST_CHECKPOINT("neg"); test_unary<T, bunch_neg<T> >(); - BOOST_CHECKPOINT("sqrt"); test_unary<T, bunch_sqrt<T> >(); - BOOST_CHECKPOINT("abs"); test_unary<T, bunch_abs<T> >(); + BOOST_TEST_CHECKPOINT("pos"); test_unary<T, bunch_pos<T> >(); + BOOST_TEST_CHECKPOINT("neg"); test_unary<T, bunch_neg<T> >(); + BOOST_TEST_CHECKPOINT("sqrt"); test_unary<T, bunch_sqrt<T> >(); + BOOST_TEST_CHECKPOINT("abs"); test_unary<T, bunch_abs<T> >(); } #define new_binary_bunch(name, op, val) \ @@ -105,20 +105,20 @@ new_binary_bunch(div, /, !zero_in(b)); template<class T> void test_all_binaries() { - BOOST_CHECKPOINT("add"); test_binary<T, bunch_add<T> >(); - BOOST_CHECKPOINT("sub"); test_binary<T, bunch_sub<T> >(); - BOOST_CHECKPOINT("mul"); test_binary<T, bunch_mul<T> >(); - BOOST_CHECKPOINT("div"); test_binary<T, bunch_div<T> >(); + BOOST_TEST_CHECKPOINT("add"); test_binary<T, bunch_add<T> >(); + BOOST_TEST_CHECKPOINT("sub"); test_binary<T, bunch_sub<T> >(); + BOOST_TEST_CHECKPOINT("mul"); test_binary<T, bunch_mul<T> >(); + BOOST_TEST_CHECKPOINT("div"); test_binary<T, bunch_div<T> >(); } int test_main(int, char *[]) { - BOOST_CHECKPOINT("float tests"); + BOOST_TEST_CHECKPOINT("float tests"); test_all_unaries<float> (); test_all_binaries<float> (); - BOOST_CHECKPOINT("double tests"); + BOOST_TEST_CHECKPOINT("double tests"); test_all_unaries<double>(); test_all_binaries<double>(); - //BOOST_CHECKPOINT("long double tests"); + //BOOST_TEST_CHECKPOINT("long double tests"); //test_all_unaries<long double>(); //test_all_binaries<long double>(); # ifdef __BORLANDC__ |