Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r79902 - in sandbox/big_number: boost/multiprecision/detail libs/multiprecision/test libs/multiprecision/test/ublas_interop
From: john_at_[hidden]
Date: 2012-08-07 07:47:26


Author: johnmaddock
Date: 2012-08-07 07:47:25 EDT (Tue, 07 Aug 2012)
New Revision: 79902
URL: http://svn.boost.org/trac/boost/changeset/79902

Log:
Fix uBlas tests and failures resulting from them.
Text files modified:
   sandbox/big_number/boost/multiprecision/detail/mp_number_compare.hpp | 54 +++++------
   sandbox/big_number/libs/multiprecision/test/Jamfile.v2 | 2
   sandbox/big_number/libs/multiprecision/test/ublas_interop/test1.hpp | 17 +++
   sandbox/big_number/libs/multiprecision/test/ublas_interop/test11.cpp | 83 ++++++++++++++++++
   sandbox/big_number/libs/multiprecision/test/ublas_interop/test12.cpp | 183 +++++++++++++++++++++++++++++++++++++++
   sandbox/big_number/libs/multiprecision/test/ublas_interop/test13.cpp | 162 ++++++++++++++++++++++++++++++++++
   sandbox/big_number/libs/multiprecision/test/ublas_interop/test2.hpp | 12 +
   sandbox/big_number/libs/multiprecision/test/ublas_interop/test4.hpp | 25 +++++
   sandbox/big_number/libs/multiprecision/test/ublas_interop/test5.hpp | 25 +++++
   sandbox/big_number/libs/multiprecision/test/ublas_interop/test7.hpp | 25 +++++
   10 files changed, 544 insertions(+), 44 deletions(-)

Modified: sandbox/big_number/boost/multiprecision/detail/mp_number_compare.hpp
==============================================================================
--- sandbox/big_number/boost/multiprecision/detail/mp_number_compare.hpp (original)
+++ sandbox/big_number/boost/multiprecision/detail/mp_number_compare.hpp 2012-08-07 07:47:25 EDT (Tue, 07 Aug 2012)
@@ -20,17 +20,15 @@
    return a.compare(b) == 0;
 }
 template <class B, class A>
-inline typename enable_if_c<(is_arithmetic<A>::value && is_convertible<A, B>::value), bool>::type eval_eq(const B& a, const A& b)
+inline bool eval_eq(const B& a, const A& b)
 {
- B t(b);
- return eval_eq(a, t);
-}
-template <class B, class A>
-inline typename enable_if_c<(is_arithmetic<A>::value && !is_convertible<A, B>::value), bool>::type eval_eq(const B& a, const A& b)
-{
- B t;
- t = b;
- return eval_eq(a, t);
+ typedef typename mpl::if_<
+ is_convertible<A, mp_number<B, false> >,
+ mp_number<B, false>,
+ mp_number<B, true>
+ >::type mp_type;
+ mp_type t(b);
+ return eval_eq(a, t.backend());
 }
 
 template <class B>
@@ -39,17 +37,15 @@
    return a.compare(b) < 0;
 }
 template <class B, class A>
-inline typename enable_if_c<(is_arithmetic<A>::value && is_convertible<A, B>::value), bool>::type eval_lt(const B& a, const A& b)
+inline bool eval_lt(const B& a, const A& b)
 {
- B t(b);
- return eval_lt(a, t);
-}
-template <class B, class A>
-inline typename enable_if_c<(is_arithmetic<A>::value && !is_convertible<A, B>::value), bool>::type eval_lt(const B& a, const A& b)
-{
- B t;
- t = b;
- return eval_lt(a, t);
+ typedef typename mpl::if_<
+ is_convertible<A, mp_number<B, false> >,
+ mp_number<B, false>,
+ mp_number<B, true>
+ >::type mp_type;
+ mp_type t(b);
+ return eval_lt(a, t.backend());
 }
 
 template <class B>
@@ -58,17 +54,15 @@
    return a.compare(b) > 0;
 }
 template <class B, class A>
-inline typename enable_if_c<(is_arithmetic<A>::value && is_convertible<A, B>::value), bool>::type eval_gt(const B& a, const A& b)
-{
- B t(b);
- return eval_gt(a, t);
-}
-template <class B, class A>
-inline typename enable_if_c<(is_arithmetic<A>::value && !is_convertible<A, B>::value), bool>::type eval_gt(const B& a, const A& b)
+inline bool eval_gt(const B& a, const A& b)
 {
- B t;
- t = b;
- return eval_gt(a, t);
+ typedef typename mpl::if_<
+ is_convertible<A, mp_number<B, false> >,
+ mp_number<B, false>,
+ mp_number<B, true>
+ >::type mp_type;
+ mp_type t(b);
+ return eval_gt(a, t.backend());
 }
 
 }

Modified: sandbox/big_number/libs/multiprecision/test/Jamfile.v2
==============================================================================
--- sandbox/big_number/libs/multiprecision/test/Jamfile.v2 (original)
+++ sandbox/big_number/libs/multiprecision/test/Jamfile.v2 2012-08-07 07:47:25 EDT (Tue, 07 Aug 2012)
@@ -749,7 +749,7 @@
 run ublas_interop/test4.cpp ublas_interop/test42.cpp ublas_interop/test43.cpp ;
 run ublas_interop/test5.cpp ublas_interop/test52.cpp ublas_interop/test53.cpp ;
 run ublas_interop/test6.cpp ublas_interop/test62.cpp ublas_interop/test63.cpp ;
-run ublas_interop/test7.cpp ublas_interop/test71.cpp ublas_interop/test72.cpp ublas_interop/test73.cpp ;
+#run ublas_interop/test7.cpp ublas_interop/test71.cpp ublas_interop/test72.cpp ublas_interop/test73.cpp ;
 
 
 if $(enable-specfun)

Modified: sandbox/big_number/libs/multiprecision/test/ublas_interop/test1.hpp
==============================================================================
--- sandbox/big_number/libs/multiprecision/test/ublas_interop/test1.hpp (original)
+++ sandbox/big_number/libs/multiprecision/test/ublas_interop/test1.hpp 2012-08-07 07:47:25 EDT (Tue, 07 Aug 2012)
@@ -13,8 +13,6 @@
 #ifndef TEST1_H
 #define TEST1_H
 
-#include <iostream>
-
 #ifdef _MSC_VER
 # pragma warning(disable:4800 4996)
 #endif
@@ -26,7 +24,21 @@
 
 #define USE_RANGE
 #define USE_SLICE
+#define USE_FLOAT
+#define USE_UNBOUNDED_ARRAY
+#define USE_STD_VECTOR
+#define USE_BOUNDED_VECTOR USE_MATRIX
+#define USE_UNBOUNDED_ARRAY
+#define USE_MAP_ARRAY
+#define USE_STD_MAP
+#define USE_MAPPED_VECTOR
+#define USE_COMPRESSED_VECTOR
+#define USE_COORDINATE_VECTOR
+#define USE_MAPPED_MATRIX
+#define USE_COMPRESSED_MATRIX
+#define USE_COORDINATE_MATRIX
 
+#include <iostream>
 
 #include <boost/numeric/ublas/vector.hpp>
 #include <boost/numeric/ublas/vector_proxy.hpp>
@@ -42,4 +54,5 @@
 void test_matrix_vector ();
 void test_matrix ();
 
+
 #endif

Modified: sandbox/big_number/libs/multiprecision/test/ublas_interop/test11.cpp
==============================================================================
--- sandbox/big_number/libs/multiprecision/test/ublas_interop/test11.cpp (original)
+++ sandbox/big_number/libs/multiprecision/test/ublas_interop/test11.cpp 2012-08-07 07:47:25 EDT (Tue, 07 Aug 2012)
@@ -167,16 +167,99 @@
 void test_vector () {
     std::cout << "test_vector" << std::endl;
 
+#ifdef USE_BOUNDED_ARRAY
+#ifdef USE_FLOAT
     std::cout << "mp_test_type, bounded_array" << std::endl;
     test_my_vector<ublas::vector<mp_test_type, ublas::bounded_array<mp_test_type, 3> >, 3 > () ();
+#endif
 
+#ifdef USE_DOUBLE
+ std::cout << "double, bounded_array" << std::endl;
+ test_my_vector<ublas::vector<double, ublas::bounded_array<double, 3> >, 3 > () ();
+#endif
 
+#ifdef USE_STD_COMPLEX
+#ifdef USE_FLOAT
+ std::cout << "std::complex<mp_test_type>, bounded_array" << std::endl;
+ test_my_vector<ublas::vector<std::complex<mp_test_type>, ublas::bounded_array<std::complex<mp_test_type>, 3> >, 3 > () ();
+#endif
+
+#ifdef USE_DOUBLE
+ std::cout << "std::complex<double>, bounded_array" << std::endl;
+ test_my_vector<ublas::vector<std::complex<double>, ublas::bounded_array<std::complex<double>, 3> >, 3 > () ();
+#endif
+#endif
+#endif
+
+#ifdef USE_UNBOUNDED_ARRAY
+#ifdef USE_FLOAT
     std::cout << "mp_test_type, unbounded_array" << std::endl;
     test_my_vector<ublas::vector<mp_test_type, ublas::unbounded_array<mp_test_type> >, 3 > () ();
+#endif
+
+#ifdef USE_DOUBLE
+ std::cout << "double, unbounded_array" << std::endl;
+ test_my_vector<ublas::vector<double, ublas::unbounded_array<double> >, 3 > () ();
+#endif
 
+#ifdef USE_STD_COMPLEX
+#ifdef USE_FLOAT
+ std::cout << "std::complex<mp_test_type>, unbounded_array" << std::endl;
+ test_my_vector<ublas::vector<std::complex<mp_test_type>, ublas::unbounded_array<std::complex<mp_test_type> > >, 3 > () ();
+#endif
+
+#ifdef USE_DOUBLE
+ std::cout << "std::complex<double>, unbounded_array" << std::endl;
+ test_my_vector<ublas::vector<std::complex<double>, ublas::unbounded_array<std::complex<double> > >, 3 > () ();
+#endif
+#endif
+#endif
+
+#ifdef USE_STD_VECTOR
+#ifdef USE_FLOAT
     std::cout << "mp_test_type, std::vector" << std::endl;
     test_my_vector<ublas::vector<mp_test_type, std::vector<mp_test_type> >, 3 > () ();
+#endif
+
+#ifdef USE_DOUBLE
+ std::cout << "double, std::vector" << std::endl;
+ test_my_vector<ublas::vector<double, std::vector<double> >, 3 > () ();
+#endif
 
+#ifdef USE_STD_COMPLEX
+#ifdef USE_FLOAT
+ std::cout << "std::complex<mp_test_type>, std::vector" << std::endl;
+ test_my_vector<ublas::vector<std::complex<mp_test_type>, std::vector<std::complex<mp_test_type> > >, 3 > () ();
+#endif
+
+#ifdef USE_DOUBLE
+ std::cout << "std::complex<double>, std::vector" << std::endl;
+ test_my_vector<ublas::vector<std::complex<double>, std::vector<std::complex<double> > >, 3 > () ();
+#endif
+#endif
+#endif
+
+#ifdef USE_BOUNDED_VECTOR
+#ifdef USE_FLOAT
     std::cout << "mp_test_type, bounded" << std::endl;
     test_my_vector<ublas::bounded_vector<mp_test_type, 3>, 3> () ();
+#endif
+
+#ifdef USE_DOUBLE
+ std::cout << "double, bounded" << std::endl;
+ test_my_vector<ublas::bounded_vector<double, 3>, 3> () ();
+#endif
+
+#ifdef USE_STD_COMPLEX
+#ifdef USE_FLOAT
+ std::cout << "std::complex<mp_test_type>, bounded" << std::endl;
+ test_my_vector<ublas::bounded_vector<std::complex<mp_test_type>, 3>, 3> () ();
+#endif
+
+#ifdef USE_DOUBLE
+ std::cout << "std::complex<double>, bounded" << std::endl;
+ test_my_vector<ublas::bounded_vector<std::complex<double>, 3>, 3> () ();
+#endif
+#endif
+#endif
 }

Modified: sandbox/big_number/libs/multiprecision/test/ublas_interop/test12.cpp
==============================================================================
--- sandbox/big_number/libs/multiprecision/test/ublas_interop/test12.cpp (original)
+++ sandbox/big_number/libs/multiprecision/test/ublas_interop/test12.cpp 2012-08-07 07:47:25 EDT (Tue, 07 Aug 2012)
@@ -75,28 +75,203 @@
 void test_matrix_vector () {
     std::cout << "test_matrix_vector" << std::endl;
 
+#ifdef USE_MATRIX
+#ifdef USE_BOUNDED_ARRAY
+#ifdef USE_FLOAT
     std::cout << "mp_test_type, bounded_array" << std::endl;
     test_my_matrix_vector<ublas::vector<mp_test_type, ublas::bounded_array<mp_test_type, 3> >,
                           ublas::matrix<mp_test_type, ublas::row_major, ublas::bounded_array<mp_test_type, 3 * 3> >, 3> () ();
+#endif
+
+#ifdef USE_DOUBLE
+ std::cout << "double, bounded_array" << std::endl;
+ test_my_matrix_vector<ublas::vector<double, ublas::bounded_array<double, 3> >,
+ ublas::matrix<double, ublas::row_major, ublas::bounded_array<double, 3 * 3> >, 3> () ();
+#endif
+
+#ifdef USE_STD_COMPLEX
+#ifdef USE_FLOAT
+ std::cout << "std::complex<mp_test_type>, bounded_array" << std::endl;
+ test_my_matrix_vector<ublas::vector<std::complex<mp_test_type>, ublas::bounded_array<std::complex<mp_test_type>, 3> >,
+ ublas::matrix<std::complex<mp_test_type>, ublas::row_major, ublas::bounded_array<std::complex<mp_test_type>, 3 * 3> >, 3> () ();
+#endif
+
+#ifdef USE_DOUBLE
+ std::cout << "std::complex<double>, bounded_array" << std::endl;
+ test_my_matrix_vector<ublas::vector<std::complex<double>, ublas::bounded_array<std::complex<double>, 3> >,
+ ublas::matrix<std::complex<double>, ublas::row_major, ublas::bounded_array<std::complex<double>, 3 * 3> >, 3> () ();
+#endif
+#endif
+#endif
+
+#ifdef USE_UNBOUNDED_ARRAY
+#ifdef USE_FLOAT
     std::cout << "mp_test_type, unbounded_array" << std::endl;
     test_my_matrix_vector<ublas::vector<mp_test_type, ublas::unbounded_array<mp_test_type> >,
                           ublas::matrix<mp_test_type, ublas::row_major, ublas::unbounded_array<mp_test_type> >, 3> () ();
+#endif
+
+#ifdef USE_DOUBLE
+ std::cout << "double, unbounded_array" << std::endl;
+ test_my_matrix_vector<ublas::vector<double, ublas::unbounded_array<double> >,
+ ublas::matrix<double, ublas::row_major, ublas::unbounded_array<double> >, 3> () ();
+#endif
+
+#ifdef USE_STD_COMPLEX
+#ifdef USE_FLOAT
+ std::cout << "std::complex<mp_test_type>, unbounded_array" << std::endl;
+ test_my_matrix_vector<ublas::vector<std::complex<mp_test_type>, ublas::unbounded_array<std::complex<mp_test_type> > >,
+ ublas::matrix<std::complex<mp_test_type>, ublas::row_major, ublas::unbounded_array<std::complex<mp_test_type> > >, 3> () ();
+#endif
+
+#ifdef USE_DOUBLE
+ std::cout << "std::complex<double>, unbounded_array" << std::endl;
+ test_my_matrix_vector<ublas::vector<std::complex<double>, ublas::unbounded_array<std::complex<double> > >,
+ ublas::matrix<std::complex<double>, ublas::row_major, ublas::unbounded_array<std::complex<double> > >, 3> () ();
+#endif
+#endif
+#endif
+
+#ifdef USE_STD_VECTOR
+#ifdef USE_FLOAT
     std::cout << "mp_test_type, std::vector" << std::endl;
     test_my_matrix_vector<ublas::vector<mp_test_type, std::vector<mp_test_type> >,
                           ublas::matrix<mp_test_type, ublas::row_major, std::vector<mp_test_type> >, 3> () ();
+#endif
+
+#ifdef USE_DOUBLE
+ std::cout << "double, std::vector" << std::endl;
+ test_my_matrix_vector<ublas::vector<double, std::vector<double> >,
+ ublas::matrix<double, ublas::row_major, std::vector<double> >, 3> () ();
+#endif
+
+#ifdef USE_STD_COMPLEX
+#ifdef USE_FLOAT
+ std::cout << "std::complex<mp_test_type>, std::vector" << std::endl;
+ test_my_matrix_vector<ublas::vector<std::complex<mp_test_type>, std::vector<std::complex<mp_test_type> > >,
+ ublas::matrix<std::complex<mp_test_type>, ublas::row_major, std::vector<std::complex<mp_test_type> > >, 3> () ();
+#endif
+
+#ifdef USE_DOUBLE
+ std::cout << "std::complex<double>, std::vector" << std::endl;
+ test_my_matrix_vector<ublas::vector<std::complex<double>, std::vector<std::complex<double> > >,
+ ublas::matrix<std::complex<double>, ublas::row_major, std::vector<std::complex<double> > >, 3> () ();
+#endif
+#endif
+#endif
+#endif
+
+#ifdef USE_BOUNDED_MATRIX
+#ifdef USE_FLOAT
     std::cout << "mp_test_type, bounded" << std::endl;
     test_my_matrix_vector<ublas::bounded_vector<mp_test_type, 3>,
                           ublas::bounded_matrix<mp_test_type, 3, 3>, 3> () ();
+#endif
+
+#ifdef USE_DOUBLE
+ std::cout << "double, bounded" << std::endl;
+ test_my_matrix_vector<ublas::bounded_vector<double, 3>,
+ ublas::bounded_matrix<double, 3, 3>, 3> () ();
+#endif
+
+#ifdef USE_STD_COMPLEX
+#ifdef USE_FLOAT
+ std::cout << "std::complex<mp_test_type>, bounded" << std::endl;
+ test_my_matrix_vector<ublas::bounded_vector<std::complex<mp_test_type>, 3>,
+ ublas::bounded_matrix<std::complex<mp_test_type>, 3, 3>, 3> () ();
+#endif
+
+#ifdef USE_DOUBLE
+ std::cout << "std::complex<double>, bounded" << std::endl;
+ test_my_matrix_vector<ublas::bounded_vector<std::complex<double>, 3>,
+ ublas::bounded_matrix<std::complex<double>, 3, 3>, 3> () ();
+#endif
+#endif
+#endif
+
+#ifdef USE_VECTOR_OF_VECTOR
+#ifdef USE_BOUNDED_ARRAY
+#ifdef USE_FLOAT
     std::cout << "mp_test_type, bounded_array" << std::endl;
     test_my_matrix_vector<ublas::vector<mp_test_type, ublas::bounded_array<mp_test_type, 3> >,
                           ublas::vector_of_vector<mp_test_type, ublas::row_major, ublas::bounded_array<ublas::bounded_array<mp_test_type, 3>, 3 + 1> >, 3> () ();
+#endif
+
+#ifdef USE_DOUBLE
+ std::cout << "double, bounded_array" << std::endl;
+ test_my_matrix_vector<ublas::vector<double, ublas::bounded_array<double, 3> >,
+ ublas::vector_of_vector<double, ublas::row_major, ublas::bounded_array<ublas::bounded_array<double, 3>, 3 + 1> >, 3> () ();
+#endif
+
+#ifdef USE_STD_COMPLEX
+#ifdef USE_FLOAT
+ std::cout << "std::complex<mp_test_type>, bounded_array" << std::endl;
+ test_my_matrix_vector<ublas::vector<std::complex<mp_test_type>, ublas::bounded_array<std::complex<mp_test_type>, 3> >,
+ ublas::vector_of_vector<std::complex<mp_test_type>, ublas::row_major, ublas::bounded_array<ublas::bounded_array<std::complex<mp_test_type>, 3>, 3 + 1> >, 3> () ();
+#endif
+
+#ifdef USE_DOUBLE
+ std::cout << "std::complex<double>, bounded_array" << std::endl;
+ test_my_matrix_vector<ublas::vector<std::complex<double>, ublas::bounded_array<std::complex<double>, 3> >,
+ ublas::vector_of_vector<std::complex<double>, ublas::row_major, ublas::bounded_array<ublas::bounded_array<std::complex<double>, 3>, 3 + 1> >, 3> () ();
+#endif
+#endif
+#endif
+
+#ifdef USE_UNBOUNDED_ARRAY
+#ifdef USE_FLOAT
     std::cout << "mp_test_type, unbounded_array" << std::endl;
     test_my_matrix_vector<ublas::vector<mp_test_type, ublas::unbounded_array<mp_test_type> >,
                           ublas::vector_of_vector<mp_test_type, ublas::row_major, ublas::unbounded_array<ublas::unbounded_array<mp_test_type> > >, 3> () ();
+#endif
+
+#ifdef USE_DOUBLE
+ std::cout << "double, unbounded_array" << std::endl;
+ test_my_matrix_vector<ublas::vector<double, ublas::unbounded_array<double> >,
+ ublas::vector_of_vector<double, ublas::row_major, ublas::unbounded_array<ublas::unbounded_array<double> > >, 3> () ();
+#endif
+
+#ifdef USE_STD_COMPLEX
+#ifdef USE_FLOAT
+ std::cout << "std::complex<mp_test_type>, unbounded_array" << std::endl;
+ test_my_matrix_vector<ublas::vector<std::complex<mp_test_type>, ublas::unbounded_array<std::complex<mp_test_type> > >,
+ ublas::vector_of_vector<std::complex<mp_test_type>, ublas::row_major, ublas::unbounded_array<ublas::unbounded_array<std::complex<mp_test_type> > > >, 3> () ();
+#endif
+
+#ifdef USE_DOUBLE
+ std::cout << "std::complex<double>, unbounded_array" << std::endl;
+ test_my_matrix_vector<ublas::vector<std::complex<double>, ublas::unbounded_array<std::complex<double> > >,
+ ublas::vector_of_vector<std::complex<double>, ublas::row_major, ublas::unbounded_array<ublas::unbounded_array<std::complex<double> > > >, 3> () ();
+#endif
+#endif
+#endif
+
+#ifdef USE_STD_VECTOR
+#ifdef USE_FLOAT
     std::cout << "mp_test_type, std::vector" << std::endl;
- /*
- // This fails with an internal std lib assersion, even when mp_test_type is double,
- // looks like a bug in the uBlas test code...
     test_my_matrix_vector<ublas::vector<mp_test_type, std::vector<mp_test_type> >,
- ublas::vector_of_vector<mp_test_type, ublas::row_major, std::vector<std::vector<mp_test_type> > >, 3> () ();*/
+ ublas::vector_of_vector<mp_test_type, ublas::row_major, std::vector<std::vector<mp_test_type> > >, 3> () ();
+#endif
+
+#ifdef USE_DOUBLE
+ std::cout << "double, std::vector" << std::endl;
+ test_my_matrix_vector<ublas::vector<double, std::vector<double> >,
+ ublas::vector_of_vector<double, ublas::row_major, std::vector<std::vector<double> > >, 3> () ();
+#endif
+
+#ifdef USE_STD_COMPLEX
+#ifdef USE_FLOAT
+ std::cout << "std::complex<mp_test_type>, std::vector" << std::endl;
+ test_my_matrix_vector<ublas::vector<std::complex<mp_test_type>, std::vector<std::complex<mp_test_type> > >,
+ ublas::vector_of_vector<std::complex<mp_test_type>, ublas::row_major, std::vector<std::vector<std::complex<mp_test_type> > > >, 3> () ();
+#endif
+
+#ifdef USE_DOUBLE
+ std::cout << "std::complex<double>, std::vector" << std::endl;
+ test_my_matrix_vector<ublas::vector<std::complex<double>, std::vector<std::complex<double> > >,
+ ublas::vector_of_vector<std::complex<double>, ublas::row_major, std::vector<std::vector<std::complex<double> > > >, 3> () ();
+#endif
+#endif
+#endif
+#endif
 }

Modified: sandbox/big_number/libs/multiprecision/test/ublas_interop/test13.cpp
==============================================================================
--- sandbox/big_number/libs/multiprecision/test/ublas_interop/test13.cpp (original)
+++ sandbox/big_number/libs/multiprecision/test/ublas_interop/test13.cpp 2012-08-07 07:47:25 EDT (Tue, 07 Aug 2012)
@@ -147,21 +147,175 @@
 void test_matrix () {
     std::cout << "test_matrix" << std::endl;
 
+#ifdef USE_MATRIX
+#ifdef USE_BOUNDED_ARRAY
+#ifdef USE_FLOAT
     std::cout << "mp_test_type, bounded_array" << std::endl;
     test_my_matrix<ublas::matrix<mp_test_type, ublas::row_major, ublas::bounded_array<mp_test_type, 3 * 3> >, 3> () ();
+#endif
+
+#ifdef USE_DOUBLE
+ std::cout << "double, bounded_array" << std::endl;
+ test_my_matrix<ublas::matrix<double, ublas::row_major, ublas::bounded_array<double, 3 * 3> >, 3> () ();
+#endif
+
+#ifdef USE_STD_COMPLEX
+#ifdef USE_FLOAT
+ std::cout << "std::complex<mp_test_type>, bounded_array" << std::endl;
+ test_my_matrix<ublas::matrix<std::complex<mp_test_type>, ublas::row_major, ublas::bounded_array<std::complex<mp_test_type>, 3 * 3> >, 3> () ();
+#endif
+
+#ifdef USE_DOUBLE
+ std::cout << "std::complex<double>, bounded_array" << std::endl;
+ test_my_matrix<ublas::matrix<std::complex<double>, ublas::row_major, ublas::bounded_array<std::complex<double>, 3 * 3> >, 3> () ();
+#endif
+#endif
+#endif
+
+#ifdef USE_UNBOUNDED_ARRAY
+#ifdef USE_FLOAT
     std::cout << "mp_test_type, unbounded_array" << std::endl;
     test_my_matrix<ublas::matrix<mp_test_type, ublas::row_major, ublas::unbounded_array<mp_test_type> >, 3> () ();
+#endif
+
+#ifdef USE_DOUBLE
+ std::cout << "double, unbounded_array" << std::endl;
+ test_my_matrix<ublas::matrix<double, ublas::row_major, ublas::unbounded_array<double> >, 3> () ();
+#endif
+
+#ifdef USE_STD_COMPLEX
+#ifdef USE_FLOAT
+ std::cout << "std::complex<mp_test_type>, unbounded_array" << std::endl;
+ test_my_matrix<ublas::matrix<std::complex<mp_test_type>, ublas::row_major, ublas::unbounded_array<std::complex<mp_test_type> > >, 3> () ();
+#endif
+
+#ifdef USE_DOUBLE
+ std::cout << "std::complex<double>, unbounded_array" << std::endl;
+ test_my_matrix<ublas::matrix<std::complex<double>, ublas::row_major, ublas::unbounded_array<std::complex<double> > >, 3> () ();
+#endif
+#endif
+#endif
+
+#ifdef USE_STD_VECTOR
+#ifdef USE_FLOAT
     std::cout << "mp_test_type, std::vector" << std::endl;
     test_my_matrix<ublas::matrix<mp_test_type, ublas::row_major, std::vector<mp_test_type> >, 3> () ();
+#endif
+
+#ifdef USE_DOUBLE
+ std::cout << "double, std::vector" << std::endl;
+ test_my_matrix<ublas::matrix<double, ublas::row_major, std::vector<double> >, 3> () ();
+#endif
+
+#ifdef USE_STD_COMPLEX
+#ifdef USE_FLOAT
+ std::cout << "std::complex<mp_test_type>, std::vector" << std::endl;
+ test_my_matrix<ublas::matrix<std::complex<mp_test_type>, ublas::row_major, std::vector<std::complex<mp_test_type> > >, 3> () ();
+#endif
+
+#ifdef USE_DOUBLE
+ std::cout << "std::complex<double>, std::vector" << std::endl;
+ test_my_matrix<ublas::matrix<std::complex<double>, ublas::row_major, std::vector<std::complex<double> > >, 3> () ();
+#endif
+#endif
+#endif
+#endif
+
+#ifdef USE_BOUNDED_MATRIX
+#ifdef USE_FLOAT
     std::cout << "mp_test_type, bounded" << std::endl;
     test_my_matrix<ublas::bounded_matrix<mp_test_type, 3, 3>, 3> () ();
+#endif
+
+#ifdef USE_DOUBLE
+ std::cout << "double, bounded" << std::endl;
+ test_my_matrix<ublas::bounded_matrix<double, 3, 3>, 3> () ();
+#endif
+
+#ifdef USE_STD_COMPLEX
+#ifdef USE_FLOAT
+ std::cout << "std::complex<mp_test_type>, bounded" << std::endl;
+ test_my_matrix<ublas::bounded_matrix<std::complex<mp_test_type>, 3, 3>, 3> () ();
+#endif
+
+#ifdef USE_DOUBLE
+ std::cout << "std::complex<double>, bounded" << std::endl;
+ test_my_matrix<ublas::bounded_matrix<std::complex<double>, 3, 3>, 3> () ();
+#endif
+#endif
+#endif
+
+#ifdef USE_VECTOR_OF_VECTOR
+#ifdef USE_BOUNDED_ARRAY
+#ifdef USE_FLOAT
     std::cout << "mp_test_type, bounded_array" << std::endl;
     test_my_matrix<ublas::vector_of_vector<mp_test_type, ublas::row_major, ublas::bounded_array<ublas::bounded_array<mp_test_type, 3>, 3 + 1> >, 3> () ();
- /*
- // This fails with an internal std lib assersion, even when mp_test_type is double,
- // looks like a bug in the uBlas test code...
+#endif
+
+#ifdef USE_DOUBLE
+ std::cout << "double, bounded_array" << std::endl;
+ test_my_matrix<ublas::vector_of_vector<double, ublas::row_major, ublas::bounded_array<ublas::bounded_array<double, 3>, 3 + 1> >, 3> () ();
+#endif
+
+#ifdef USE_STD_COMPLEX
+#ifdef USE_FLOAT
+ std::cout << "std::complex<mp_test_type>, bounded_array" << std::endl;
+ test_my_matrix<ublas::vector_of_vector<std::complex<mp_test_type>, ublas::row_major, ublas::bounded_array<ublas::bounded_array<std::complex<mp_test_type>, 3>, 3 + 1> >, 3> () ();
+#endif
+
+#ifdef USE_DOUBLE
+ std::cout << "std::complex<double>, bounded_array" << std::endl;
+ test_my_matrix<ublas::vector_of_vector<std::complex<double>, ublas::row_major, ublas::bounded_array<ublas::bounded_array<std::complex<double>, 3>, 3 + 1> >, 3> () ();
+#endif
+#endif
+#endif
+
+#ifdef USE_UNBOUNDED_ARRAY
+#ifdef USE_FLOAT
     std::cout << "mp_test_type, unbounded_array" << std::endl;
     test_my_matrix<ublas::vector_of_vector<mp_test_type, ublas::row_major, ublas::unbounded_array<ublas::unbounded_array<mp_test_type> > >, 3> () ();
+#endif
+
+#ifdef USE_DOUBLE
+ std::cout << "double, unbounded_array" << std::endl;
+ test_my_matrix<ublas::vector_of_vector<double, ublas::row_major, ublas::unbounded_array<ublas::unbounded_array<double> > >, 3> () ();
+#endif
+
+#ifdef USE_STD_COMPLEX
+#ifdef USE_FLOAT
+ std::cout << "std::complex<mp_test_type>, unbounded_array" << std::endl;
+ test_my_matrix<ublas::vector_of_vector<std::complex<mp_test_type>, ublas::row_major, ublas::unbounded_array<ublas::unbounded_array<std::complex<mp_test_type> > > >, 3> () ();
+#endif
+
+#ifdef USE_DOUBLE
+ std::cout << "std::complex<double>, unbounded_array" << std::endl;
+ test_my_matrix<ublas::vector_of_vector<std::complex<double>, ublas::row_major, ublas::unbounded_array<ublas::unbounded_array<std::complex<double> > > >, 3> () ();
+#endif
+#endif
+#endif
+
+#ifdef USE_STD_VECTOR
+#ifdef USE_FLOAT
     std::cout << "mp_test_type, std::vector" << std::endl;
- test_my_matrix<ublas::vector_of_vector<mp_test_type, ublas::row_major, std::vector<std::vector<mp_test_type > > >, 3> () ();*/
+ test_my_matrix<ublas::vector_of_vector<mp_test_type, ublas::row_major, std::vector<std::vector<mp_test_type > > >, 3> () ();
+#endif
+
+#ifdef USE_DOUBLE
+ std::cout << "double, std::vector" << std::endl;
+ test_my_matrix<ublas::vector_of_vector<double, ublas::row_major, std::vector<std::vector<double> > >, 3> () ();
+#endif
+
+#ifdef USE_STD_COMPLEX
+#ifdef USE_FLOAT
+ std::cout << "std::complex<mp_test_type>, std::vector" << std::endl;
+ test_my_matrix<ublas::vector_of_vector<std::complex<mp_test_type>, ublas::row_major, std::vector<std::vector<std::complex<mp_test_type> > > >, 3> () ();
+#endif
+
+#ifdef USE_DOUBLE
+ std::cout << "std::complex<double>, std::vector" << std::endl;
+ test_my_matrix<ublas::vector_of_vector<std::complex<double>, ublas::row_major, std::vector<std::vector<std::complex<double> > > >, 3> () ();
+#endif
+#endif
+#endif
+#endif
 }

Modified: sandbox/big_number/libs/multiprecision/test/ublas_interop/test2.hpp
==============================================================================
--- sandbox/big_number/libs/multiprecision/test/ublas_interop/test2.hpp (original)
+++ sandbox/big_number/libs/multiprecision/test/ublas_interop/test2.hpp 2012-08-07 07:47:25 EDT (Tue, 07 Aug 2012)
@@ -12,7 +12,6 @@
 
 #ifndef TEST2_H
 #define TEST2_H
-
 #ifdef _MSC_VER
 # pragma warning(disable:4800 4996)
 #endif
@@ -25,11 +24,18 @@
 #define USE_RANGE
 #define USE_SLICE
 #define USE_FLOAT
-#define USE_RANGE
-#define USE_SLICE
 #define USE_UNBOUNDED_ARRAY
 #define USE_STD_VECTOR
 #define USE_BOUNDED_VECTOR USE_MATRIX
+#define USE_UNBOUNDED_ARRAY
+#define USE_MAP_ARRAY
+#define USE_STD_MAP
+#define USE_MAPPED_VECTOR
+#define USE_COMPRESSED_VECTOR
+#define USE_COORDINATE_VECTOR
+#define USE_MAPPED_MATRIX
+#define USE_COMPRESSED_MATRIX
+#define USE_COORDINATE_MATRIX
 
 #include <iostream>
 

Modified: sandbox/big_number/libs/multiprecision/test/ublas_interop/test4.hpp
==============================================================================
--- sandbox/big_number/libs/multiprecision/test/ublas_interop/test4.hpp (original)
+++ sandbox/big_number/libs/multiprecision/test/ublas_interop/test4.hpp 2012-08-07 07:47:25 EDT (Tue, 07 Aug 2012)
@@ -13,6 +13,31 @@
 #ifndef TEST4_H
 #define TEST4_H
 
+#ifdef _MSC_VER
+# pragma warning(disable:4800 4996)
+#endif
+
+#include <boost/multiprecision/cpp_dec_float.hpp>
+
+typedef boost::multiprecision::mp_number<boost::multiprecision::cpp_dec_float<50>, false> mp_test_type;
+//typedef double mp_test_type;
+
+#define USE_RANGE
+#define USE_SLICE
+#define USE_FLOAT
+#define USE_UNBOUNDED_ARRAY
+#define USE_STD_VECTOR
+#define USE_BOUNDED_VECTOR USE_MATRIX
+#define USE_UNBOUNDED_ARRAY
+#define USE_MAP_ARRAY
+#define USE_STD_MAP
+#define USE_MAPPED_VECTOR
+#define USE_COMPRESSED_VECTOR
+#define USE_COORDINATE_VECTOR
+#define USE_MAPPED_MATRIX
+#define USE_COMPRESSED_MATRIX
+#define USE_COORDINATE_MATRIX
+
 #include <iostream>
 
 #include <boost/numeric/ublas/vector.hpp>

Modified: sandbox/big_number/libs/multiprecision/test/ublas_interop/test5.hpp
==============================================================================
--- sandbox/big_number/libs/multiprecision/test/ublas_interop/test5.hpp (original)
+++ sandbox/big_number/libs/multiprecision/test/ublas_interop/test5.hpp 2012-08-07 07:47:25 EDT (Tue, 07 Aug 2012)
@@ -13,6 +13,31 @@
 #ifndef TEST5_H
 #define TEST5_H
 
+#ifdef _MSC_VER
+# pragma warning(disable:4800 4996)
+#endif
+
+#include <boost/multiprecision/cpp_dec_float.hpp>
+
+typedef boost::multiprecision::mp_number<boost::multiprecision::cpp_dec_float<50>, false> mp_test_type;
+//typedef double mp_test_type;
+
+#define USE_RANGE
+#define USE_SLICE
+#define USE_FLOAT
+#define USE_UNBOUNDED_ARRAY
+#define USE_STD_VECTOR
+#define USE_BOUNDED_VECTOR USE_MATRIX
+#define USE_UNBOUNDED_ARRAY
+#define USE_MAP_ARRAY
+#define USE_STD_MAP
+#define USE_MAPPED_VECTOR
+#define USE_COMPRESSED_VECTOR
+#define USE_COORDINATE_VECTOR
+#define USE_MAPPED_MATRIX
+#define USE_COMPRESSED_MATRIX
+#define USE_COORDINATE_MATRIX
+
 #include <iostream>
 
 #include <boost/numeric/ublas/vector.hpp>

Modified: sandbox/big_number/libs/multiprecision/test/ublas_interop/test7.hpp
==============================================================================
--- sandbox/big_number/libs/multiprecision/test/ublas_interop/test7.hpp (original)
+++ sandbox/big_number/libs/multiprecision/test/ublas_interop/test7.hpp 2012-08-07 07:47:25 EDT (Tue, 07 Aug 2012)
@@ -13,6 +13,31 @@
 #ifndef TEST7_H
 #define TEST7_H
 
+#ifdef _MSC_VER
+# pragma warning(disable:4800 4996)
+#endif
+
+#include <boost/multiprecision/cpp_dec_float.hpp>
+
+typedef boost::multiprecision::mp_number<boost::multiprecision::cpp_dec_float<50>, false> mp_test_type;
+//typedef double mp_test_type;
+
+#define USE_RANGE
+#define USE_SLICE
+#define USE_FLOAT
+#define USE_UNBOUNDED_ARRAY
+#define USE_STD_VECTOR
+#define USE_BOUNDED_VECTOR USE_MATRIX
+#define USE_UNBOUNDED_ARRAY
+#define USE_MAP_ARRAY
+#define USE_STD_MAP
+#define USE_MAPPED_VECTOR
+#define USE_COMPRESSED_VECTOR
+#define USE_COORDINATE_VECTOR
+#define USE_MAPPED_MATRIX
+#define USE_COMPRESSED_MATRIX
+#define USE_COORDINATE_MATRIX
+
 #include <iostream>
 
 #include <boost/numeric/interval.hpp>


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk