summaryrefslogtreecommitdiff
path: root/libs/numeric/interval
diff options
context:
space:
mode:
Diffstat (limited to 'libs/numeric/interval')
-rw-r--r--libs/numeric/interval/meta/libraries.json19
-rw-r--r--libs/numeric/interval/test/Jamfile.v21
-rw-r--r--libs/numeric/interval/test/msvc_x64_flags.cpp21
-rw-r--r--libs/numeric/interval/test/test_float.cpp22
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__