summaryrefslogtreecommitdiff
path: root/libs/numeric/ublas
diff options
context:
space:
mode:
Diffstat (limited to 'libs/numeric/ublas')
-rw-r--r--libs/numeric/ublas/IDEs/qtcreator/benchmarks/bench1/bench1.pro5
-rw-r--r--libs/numeric/ublas/IDEs/qtcreator/benchmarks/bench2/bench2.pro5
-rw-r--r--libs/numeric/ublas/IDEs/qtcreator/benchmarks/bench3/bench3.pro5
-rw-r--r--libs/numeric/ublas/IDEs/qtcreator/benchmarks/bench4/bench4.pro7
-rw-r--r--libs/numeric/ublas/IDEs/qtcreator/benchmarks/bench5/bench5.pro7
-rw-r--r--libs/numeric/ublas/IDEs/qtcreator/benchmarks/configuration.pri13
-rw-r--r--libs/numeric/ublas/IDEs/qtcreator/include/detail/detail.pri12
-rw-r--r--libs/numeric/ublas/IDEs/qtcreator/include/detail/detail.pro12
-rw-r--r--libs/numeric/ublas/IDEs/qtcreator/include/experimental/experimental.pri2
-rw-r--r--libs/numeric/ublas/IDEs/qtcreator/include/experimental/experimental.pro2
-rw-r--r--libs/numeric/ublas/IDEs/qtcreator/include/include.pro79
-rw-r--r--libs/numeric/ublas/IDEs/qtcreator/include/operation/operation.pri7
-rw-r--r--libs/numeric/ublas/IDEs/qtcreator/include/operation/operation.pro7
-rw-r--r--libs/numeric/ublas/IDEs/qtcreator/include/traits/traits.pri4
-rw-r--r--libs/numeric/ublas/IDEs/qtcreator/include/traits/traits.pro4
-rw-r--r--libs/numeric/ublas/IDEs/qtcreator/test/begin_end.pro10
-rw-r--r--libs/numeric/ublas/IDEs/qtcreator/test/comp_mat_erase.pro7
-rw-r--r--libs/numeric/ublas/IDEs/qtcreator/test/concepts.pro16
-rw-r--r--libs/numeric/ublas/IDEs/qtcreator/test/configuration.pri51
-rw-r--r--libs/numeric/ublas/IDEs/qtcreator/test/num_columns.pro10
-rw-r--r--libs/numeric/ublas/IDEs/qtcreator/test/num_rows.pro10
-rw-r--r--libs/numeric/ublas/IDEs/qtcreator/test/placement_new.pro7
-rw-r--r--libs/numeric/ublas/IDEs/qtcreator/test/size.pro10
-rw-r--r--libs/numeric/ublas/IDEs/qtcreator/test/sparse_view_test.pro7
-rw-r--r--libs/numeric/ublas/IDEs/qtcreator/test/test.pro64
-rw-r--r--libs/numeric/ublas/IDEs/qtcreator/test/test1.pro14
-rw-r--r--libs/numeric/ublas/IDEs/qtcreator/test/test2.pro14
-rw-r--r--libs/numeric/ublas/IDEs/qtcreator/test/test3.pro14
-rw-r--r--libs/numeric/ublas/IDEs/qtcreator/test/test3_coo.pro14
-rw-r--r--libs/numeric/ublas/IDEs/qtcreator/test/test3_mvov.pro19
-rw-r--r--libs/numeric/ublas/IDEs/qtcreator/test/test4.pro13
-rw-r--r--libs/numeric/ublas/IDEs/qtcreator/test/test5.pro13
-rw-r--r--libs/numeric/ublas/IDEs/qtcreator/test/test6.pro13
-rw-r--r--libs/numeric/ublas/IDEs/qtcreator/test/test7.pro16
-rw-r--r--libs/numeric/ublas/IDEs/qtcreator/test/test_assignment.pro13
-rw-r--r--libs/numeric/ublas/IDEs/qtcreator/test/test_banded_storage_layout.pro10
-rw-r--r--libs/numeric/ublas/IDEs/qtcreator/test/test_complex_norms.pro10
-rw-r--r--libs/numeric/ublas/IDEs/qtcreator/test/test_coordinate_matrix_always_do_full_sort.pro13
-rw-r--r--libs/numeric/ublas/IDEs/qtcreator/test/test_coordinate_matrix_inplace_merge.pro10
-rw-r--r--libs/numeric/ublas/IDEs/qtcreator/test/test_coordinate_matrix_sort.pro10
-rw-r--r--libs/numeric/ublas/IDEs/qtcreator/test/test_coordinate_vector_inplace_merge.pro9
-rw-r--r--libs/numeric/ublas/IDEs/qtcreator/test/test_fixed_containers.pro10
-rw-r--r--libs/numeric/ublas/IDEs/qtcreator/test/test_inplace_solve_basic.pro13
-rw-r--r--libs/numeric/ublas/IDEs/qtcreator/test/test_inplace_solve_mvov.pro13
-rw-r--r--libs/numeric/ublas/IDEs/qtcreator/test/test_inplace_solve_sparse.pro14
-rw-r--r--libs/numeric/ublas/IDEs/qtcreator/test/test_lu.pro10
-rw-r--r--libs/numeric/ublas/IDEs/qtcreator/test/test_matrix_vector.pro13
-rw-r--r--libs/numeric/ublas/IDEs/qtcreator/test/test_ticket7296.pro10
-rw-r--r--libs/numeric/ublas/IDEs/qtcreator/test/test_triangular.pro16
-rw-r--r--libs/numeric/ublas/IDEs/qtcreator/test/triangular_access.pro12
-rw-r--r--libs/numeric/ublas/IDEs/qtcreator/test/triangular_layout.pro7
-rw-r--r--libs/numeric/ublas/IDEs/qtcreator/tests.pri74
-rw-r--r--libs/numeric/ublas/IDEs/qtcreator/ublas_develop.pro5
-rw-r--r--libs/numeric/ublas/benchmarks/bench1/bench1.hpp3
-rw-r--r--libs/numeric/ublas/benchmarks/bench1/bench11.cpp2
-rw-r--r--libs/numeric/ublas/benchmarks/bench1/bench12.cpp4
-rw-r--r--libs/numeric/ublas/benchmarks/bench2/bench2.hpp4
-rw-r--r--libs/numeric/ublas/benchmarks/bench2/bench21.cpp2
-rw-r--r--libs/numeric/ublas/benchmarks/bench2/bench22.cpp4
-rw-r--r--libs/numeric/ublas/benchmarks/bench3/bench3.hpp4
-rw-r--r--libs/numeric/ublas/benchmarks/bench3/bench31.cpp2
-rw-r--r--libs/numeric/ublas/benchmarks/bench3/bench32.cpp2
-rw-r--r--libs/numeric/ublas/meta/libraries.json1
-rw-r--r--libs/numeric/ublas/test/begin_end.cpp2
-rw-r--r--libs/numeric/ublas/test/common/testhelper.hpp64
-rw-r--r--libs/numeric/ublas/test/comp_mat_erase.cpp2
-rw-r--r--libs/numeric/ublas/test/num_columns.cpp2
-rw-r--r--libs/numeric/ublas/test/num_rows.cpp2
-rw-r--r--libs/numeric/ublas/test/size.cpp2
-rw-r--r--libs/numeric/ublas/test/test13.cpp4
-rw-r--r--libs/numeric/ublas/test/test_assignment.cpp149
-rw-r--r--libs/numeric/ublas/test/test_banded_storage_layout.cpp12
-rw-r--r--libs/numeric/ublas/test/test_complex_norms.cpp2
-rw-r--r--libs/numeric/ublas/test/test_coordinate_matrix_inplace_merge.cpp22
-rw-r--r--libs/numeric/ublas/test/test_coordinate_matrix_sort.cpp2
-rw-r--r--libs/numeric/ublas/test/test_coordinate_vector_inplace_merge.cpp21
-rw-r--r--libs/numeric/ublas/test/test_fixed_containers.cpp8
-rw-r--r--libs/numeric/ublas/test/test_matrix_vector.cpp58
-rw-r--r--libs/numeric/ublas/test/test_ticket7296.cpp2
-rw-r--r--libs/numeric/ublas/test/test_triangular.cpp10
-rw-r--r--libs/numeric/ublas/test/triangular_access.cpp2
-rw-r--r--libs/numeric/ublas/test/triangular_layout.cpp2
-rw-r--r--libs/numeric/ublas/test/utils.hpp2
83 files changed, 845 insertions, 318 deletions
diff --git a/libs/numeric/ublas/IDEs/qtcreator/benchmarks/bench1/bench1.pro b/libs/numeric/ublas/IDEs/qtcreator/benchmarks/bench1/bench1.pro
index 2dafd7ade..685802b31 100644
--- a/libs/numeric/ublas/IDEs/qtcreator/benchmarks/bench1/bench1.pro
+++ b/libs/numeric/ublas/IDEs/qtcreator/benchmarks/bench1/bench1.pro
@@ -1,3 +1,8 @@
+TEMPLATE = app
+TARGET = bench1
+
+!include (../configuration.pri)
+
OTHER_FILES += \
../../../../benchmarks/bench1/Jamfile.v2
diff --git a/libs/numeric/ublas/IDEs/qtcreator/benchmarks/bench2/bench2.pro b/libs/numeric/ublas/IDEs/qtcreator/benchmarks/bench2/bench2.pro
index 17f5cc7f9..b667a3fd4 100644
--- a/libs/numeric/ublas/IDEs/qtcreator/benchmarks/bench2/bench2.pro
+++ b/libs/numeric/ublas/IDEs/qtcreator/benchmarks/bench2/bench2.pro
@@ -1,3 +1,8 @@
+TEMPLATE = app
+TARGET = bench2
+
+!include (../configuration.pri)
+
OTHER_FILES += \
../../../../benchmarks/bench2/Jamfile.v2
diff --git a/libs/numeric/ublas/IDEs/qtcreator/benchmarks/bench3/bench3.pro b/libs/numeric/ublas/IDEs/qtcreator/benchmarks/bench3/bench3.pro
index c41d261bd..21f561fc6 100644
--- a/libs/numeric/ublas/IDEs/qtcreator/benchmarks/bench3/bench3.pro
+++ b/libs/numeric/ublas/IDEs/qtcreator/benchmarks/bench3/bench3.pro
@@ -1,3 +1,8 @@
+TEMPLATE = app
+TARGET = bench3
+
+!include (../configuration.pri)
+
OTHER_FILES += \
../../../../benchmarks/bench3/Jamfile.v2
diff --git a/libs/numeric/ublas/IDEs/qtcreator/benchmarks/bench4/bench4.pro b/libs/numeric/ublas/IDEs/qtcreator/benchmarks/bench4/bench4.pro
index 578026c1c..354bb478b 100644
--- a/libs/numeric/ublas/IDEs/qtcreator/benchmarks/bench4/bench4.pro
+++ b/libs/numeric/ublas/IDEs/qtcreator/benchmarks/bench4/bench4.pro
@@ -1,3 +1,10 @@
+TEMPLATE = app
+TARGET = bench4
+
+!include (../configuration.pri)
+
+DEFINES += BOOST_UBLAS_USE_INTERVAL
+
OTHER_FILES += \
../../../../benchmarks/bench4/Jamfile.v2
diff --git a/libs/numeric/ublas/IDEs/qtcreator/benchmarks/bench5/bench5.pro b/libs/numeric/ublas/IDEs/qtcreator/benchmarks/bench5/bench5.pro
index 1eddc2b6d..e450911f0 100644
--- a/libs/numeric/ublas/IDEs/qtcreator/benchmarks/bench5/bench5.pro
+++ b/libs/numeric/ublas/IDEs/qtcreator/benchmarks/bench5/bench5.pro
@@ -1,3 +1,10 @@
+TEMPLATE = app
+TARGET = bench5
+
+!include (../configuration.pri)
+
+DEFINES += BOOST_UBLAS_USE_INTERVAL
+
OTHER_FILES += \
../../../../benchmarks/bench5/Jamfile.v2
diff --git a/libs/numeric/ublas/IDEs/qtcreator/benchmarks/configuration.pri b/libs/numeric/ublas/IDEs/qtcreator/benchmarks/configuration.pri
new file mode 100644
index 000000000..07ffcae1c
--- /dev/null
+++ b/libs/numeric/ublas/IDEs/qtcreator/benchmarks/configuration.pri
@@ -0,0 +1,13 @@
+CONFIG -= qt
+CONFIG += depend_includepath
+
+# ublas include directory
+INCLUDEPATH += \
+ ../../../../include
+
+# If ublas tests are build with boost source code then,
+# then boost headers and boost libraries should be used.
+exists(../../../../../../../boost-build.jam) {
+ INCLUDEPATH += ../../../../../../..
+ #LIBS += -L../../../../../../../stage/lib
+}
diff --git a/libs/numeric/ublas/IDEs/qtcreator/include/detail/detail.pri b/libs/numeric/ublas/IDEs/qtcreator/include/detail/detail.pri
new file mode 100644
index 000000000..711972db4
--- /dev/null
+++ b/libs/numeric/ublas/IDEs/qtcreator/include/detail/detail.pri
@@ -0,0 +1,12 @@
+HEADERS += \
+ $${INCLUDE_DIR}/boost/numeric/ublas/detail/vector_assign.hpp \
+ $${INCLUDE_DIR}/boost/numeric/ublas/detail/temporary.hpp \
+ $${INCLUDE_DIR}/boost/numeric/ublas/detail/returntype_deduction.hpp \
+ $${INCLUDE_DIR}/boost/numeric/ublas/detail/raw.hpp \
+ $${INCLUDE_DIR}/boost/numeric/ublas/detail/matrix_assign.hpp \
+ $${INCLUDE_DIR}/boost/numeric/ublas/detail/iterator.hpp \
+ $${INCLUDE_DIR}/boost/numeric/ublas/detail/duff.hpp \
+ $${INCLUDE_DIR}/boost/numeric/ublas/detail/documentation.hpp \
+ $${INCLUDE_DIR}/boost/numeric/ublas/detail/definitions.hpp \
+ $${INCLUDE_DIR}/boost/numeric/ublas/detail/config.hpp \
+ $${INCLUDE_DIR}/boost/numeric/ublas/detail/concepts.hpp
diff --git a/libs/numeric/ublas/IDEs/qtcreator/include/detail/detail.pro b/libs/numeric/ublas/IDEs/qtcreator/include/detail/detail.pro
deleted file mode 100644
index c933c5e56..000000000
--- a/libs/numeric/ublas/IDEs/qtcreator/include/detail/detail.pro
+++ /dev/null
@@ -1,12 +0,0 @@
-HEADERS += \
- ../../../../include/boost/numeric/ublas/detail/vector_assign.hpp \
- ../../../../include/boost/numeric/ublas/detail/temporary.hpp \
- ../../../../include/boost/numeric/ublas/detail/returntype_deduction.hpp \
- ../../../../include/boost/numeric/ublas/detail/raw.hpp \
- ../../../../include/boost/numeric/ublas/detail/matrix_assign.hpp \
- ../../../../include/boost/numeric/ublas/detail/iterator.hpp \
- ../../../../include/boost/numeric/ublas/detail/duff.hpp \
- ../../../../include/boost/numeric/ublas/detail/documentation.hpp \
- ../../../../include/boost/numeric/ublas/detail/definitions.hpp \
- ../../../../include/boost/numeric/ublas/detail/config.hpp \
- ../../../../include/boost/numeric/ublas/detail/concepts.hpp
diff --git a/libs/numeric/ublas/IDEs/qtcreator/include/experimental/experimental.pri b/libs/numeric/ublas/IDEs/qtcreator/include/experimental/experimental.pri
new file mode 100644
index 000000000..41dc6c46b
--- /dev/null
+++ b/libs/numeric/ublas/IDEs/qtcreator/include/experimental/experimental.pri
@@ -0,0 +1,2 @@
+HEADERS += \
+ $${INCLUDE_DIR}/boost/numeric/ublas/experimental/sparse_view.hpp
diff --git a/libs/numeric/ublas/IDEs/qtcreator/include/experimental/experimental.pro b/libs/numeric/ublas/IDEs/qtcreator/include/experimental/experimental.pro
deleted file mode 100644
index 2970a93d4..000000000
--- a/libs/numeric/ublas/IDEs/qtcreator/include/experimental/experimental.pro
+++ /dev/null
@@ -1,2 +0,0 @@
-HEADERS += \
- ../../../../include/boost/numeric/ublas/experimental/sparse_view.hpp
diff --git a/libs/numeric/ublas/IDEs/qtcreator/include/include.pro b/libs/numeric/ublas/IDEs/qtcreator/include/include.pro
index f89656fc2..5815a01fe 100644
--- a/libs/numeric/ublas/IDEs/qtcreator/include/include.pro
+++ b/libs/numeric/ublas/IDEs/qtcreator/include/include.pro
@@ -1,34 +1,47 @@
-TEMPLATE = subdirs
-SUBDIRS = detail experimental operation traits
+TEMPLATE = lib
+TARGET = ublas
+
+CONFIG += \
+ staticlib \
+ depend_includepath
+CONFIG -= qt
+
+INCLUDE_DIR = ../../../include
+
+include(detail/detail.pri)
+include(experimental/experimental.pri)
+include(operation/operation.pri)
+include(traits/traits.pri)
+
HEADERS += \
- ../../../include/boost/numeric/ublas/vector_sparse.hpp \
- ../../../include/boost/numeric/ublas/vector_proxy.hpp \
- ../../../include/boost/numeric/ublas/vector_of_vector.hpp \
- ../../../include/boost/numeric/ublas/vector_expression.hpp \
- ../../../include/boost/numeric/ublas/vector.hpp \
- ../../../include/boost/numeric/ublas/triangular.hpp \
- ../../../include/boost/numeric/ublas/traits.hpp \
- ../../../include/boost/numeric/ublas/tags.hpp \
- ../../../include/boost/numeric/ublas/symmetric.hpp \
- ../../../include/boost/numeric/ublas/storage_sparse.hpp \
- ../../../include/boost/numeric/ublas/storage.hpp \
- ../../../include/boost/numeric/ublas/operation_sparse.hpp \
- ../../../include/boost/numeric/ublas/operations.hpp \
- ../../../include/boost/numeric/ublas/operation_blocked.hpp \
- ../../../include/boost/numeric/ublas/operation.hpp \
- ../../../include/boost/numeric/ublas/matrix_sparse.hpp \
- ../../../include/boost/numeric/ublas/matrix_proxy.hpp \
- ../../../include/boost/numeric/ublas/matrix_expression.hpp \
- ../../../include/boost/numeric/ublas/matrix.hpp \
- ../../../include/boost/numeric/ublas/lu.hpp \
- ../../../include/boost/numeric/ublas/io.hpp \
- ../../../include/boost/numeric/ublas/hermitian.hpp \
- ../../../include/boost/numeric/ublas/fwd.hpp \
- ../../../include/boost/numeric/ublas/functional.hpp \
- ../../../include/boost/numeric/ublas/expression_types.hpp \
- ../../../include/boost/numeric/ublas/exception.hpp \
- ../../../include/boost/numeric/ublas/doxydoc.hpp \
- ../../../include/boost/numeric/ublas/blas.hpp \
- ../../../include/boost/numeric/ublas/banded.hpp \
- ../../../include/boost/numeric/ublas/assignment.hpp \
- ../../../include/boost/numeric/ublas/matrix_vector.hpp
+ $${INCLUDE_DIR}/boost/numeric/ublas/vector_sparse.hpp \
+ $${INCLUDE_DIR}/boost/numeric/ublas/vector_proxy.hpp \
+ $${INCLUDE_DIR}/boost/numeric/ublas/vector_of_vector.hpp \
+ $${INCLUDE_DIR}/boost/numeric/ublas/vector_expression.hpp \
+ $${INCLUDE_DIR}/boost/numeric/ublas/vector.hpp \
+ $${INCLUDE_DIR}/boost/numeric/ublas/triangular.hpp \
+ $${INCLUDE_DIR}/boost/numeric/ublas/traits.hpp \
+ $${INCLUDE_DIR}/boost/numeric/ublas/tags.hpp \
+ $${INCLUDE_DIR}/boost/numeric/ublas/symmetric.hpp \
+ $${INCLUDE_DIR}/boost/numeric/ublas/storage_sparse.hpp \
+ $${INCLUDE_DIR}/boost/numeric/ublas/storage.hpp \
+ $${INCLUDE_DIR}/boost/numeric/ublas/operation_sparse.hpp \
+ $${INCLUDE_DIR}/boost/numeric/ublas/operations.hpp \
+ $${INCLUDE_DIR}/boost/numeric/ublas/operation_blocked.hpp \
+ $${INCLUDE_DIR}/boost/numeric/ublas/operation.hpp \
+ $${INCLUDE_DIR}/boost/numeric/ublas/matrix_sparse.hpp \
+ $${INCLUDE_DIR}/boost/numeric/ublas/matrix_proxy.hpp \
+ $${INCLUDE_DIR}/boost/numeric/ublas/matrix_expression.hpp \
+ $${INCLUDE_DIR}/boost/numeric/ublas/matrix.hpp \
+ $${INCLUDE_DIR}/boost/numeric/ublas/lu.hpp \
+ $${INCLUDE_DIR}/boost/numeric/ublas/io.hpp \
+ $${INCLUDE_DIR}/boost/numeric/ublas/hermitian.hpp \
+ $${INCLUDE_DIR}/boost/numeric/ublas/fwd.hpp \
+ $${INCLUDE_DIR}/boost/numeric/ublas/functional.hpp \
+ $${INCLUDE_DIR}/boost/numeric/ublas/expression_types.hpp \
+ $${INCLUDE_DIR}/boost/numeric/ublas/exception.hpp \
+ $${INCLUDE_DIR}/boost/numeric/ublas/doxydoc.hpp \
+ $${INCLUDE_DIR}/boost/numeric/ublas/blas.hpp \
+ $${INCLUDE_DIR}/boost/numeric/ublas/banded.hpp \
+ $${INCLUDE_DIR}/boost/numeric/ublas/assignment.hpp \
+ $${INCLUDE_DIR}/boost/numeric/ublas/matrix_vector.hpp
diff --git a/libs/numeric/ublas/IDEs/qtcreator/include/operation/operation.pri b/libs/numeric/ublas/IDEs/qtcreator/include/operation/operation.pri
new file mode 100644
index 000000000..519c4f4a6
--- /dev/null
+++ b/libs/numeric/ublas/IDEs/qtcreator/include/operation/operation.pri
@@ -0,0 +1,7 @@
+HEADERS += \
+ $${INCLUDE_DIR}/boost/numeric/ublas/operation/size.hpp \
+ $${INCLUDE_DIR}/boost/numeric/ublas/operation/num_rows.hpp \
+ $${INCLUDE_DIR}/boost/numeric/ublas/operation/num_columns.hpp \
+ $${INCLUDE_DIR}/boost/numeric/ublas/operation/end.hpp \
+ $${INCLUDE_DIR}/boost/numeric/ublas/operation/c_array.hpp \
+ $${INCLUDE_DIR}/boost/numeric/ublas/operation/begin.hpp
diff --git a/libs/numeric/ublas/IDEs/qtcreator/include/operation/operation.pro b/libs/numeric/ublas/IDEs/qtcreator/include/operation/operation.pro
deleted file mode 100644
index 648e57bb4..000000000
--- a/libs/numeric/ublas/IDEs/qtcreator/include/operation/operation.pro
+++ /dev/null
@@ -1,7 +0,0 @@
-HEADERS += \
- ../../../../include/boost/numeric/ublas/operation/size.hpp \
- ../../../../include/boost/numeric/ublas/operation/num_rows.hpp \
- ../../../../include/boost/numeric/ublas/operation/num_columns.hpp \
- ../../../../include/boost/numeric/ublas/operation/end.hpp \
- ../../../../include/boost/numeric/ublas/operation/c_array.hpp \
- ../../../../include/boost/numeric/ublas/operation/begin.hpp
diff --git a/libs/numeric/ublas/IDEs/qtcreator/include/traits/traits.pri b/libs/numeric/ublas/IDEs/qtcreator/include/traits/traits.pri
new file mode 100644
index 000000000..de327dc68
--- /dev/null
+++ b/libs/numeric/ublas/IDEs/qtcreator/include/traits/traits.pri
@@ -0,0 +1,4 @@
+HEADERS += \
+ $${INCLUDE_DIR}/boost/numeric/ublas/traits/iterator_type.hpp \
+ $${INCLUDE_DIR}/boost/numeric/ublas/traits/const_iterator_type.hpp \
+ $${INCLUDE_DIR}/boost/numeric/ublas/traits/c_array.hpp
diff --git a/libs/numeric/ublas/IDEs/qtcreator/include/traits/traits.pro b/libs/numeric/ublas/IDEs/qtcreator/include/traits/traits.pro
deleted file mode 100644
index 15d1bde22..000000000
--- a/libs/numeric/ublas/IDEs/qtcreator/include/traits/traits.pro
+++ /dev/null
@@ -1,4 +0,0 @@
-HEADERS += \
- ../../../../include/boost/numeric/ublas/traits/iterator_type.hpp \
- ../../../../include/boost/numeric/ublas/traits/const_iterator_type.hpp \
- ../../../../include/boost/numeric/ublas/traits/c_array.hpp
diff --git a/libs/numeric/ublas/IDEs/qtcreator/test/begin_end.pro b/libs/numeric/ublas/IDEs/qtcreator/test/begin_end.pro
new file mode 100644
index 000000000..03c4c6276
--- /dev/null
+++ b/libs/numeric/ublas/IDEs/qtcreator/test/begin_end.pro
@@ -0,0 +1,10 @@
+TEMPLATE = app
+TARGET = begin_end
+
+!include (configuration.pri)
+
+HEADERS += \
+ ../../../test/utils.hpp
+
+SOURCES += \
+ ../../../test/begin_end.cpp
diff --git a/libs/numeric/ublas/IDEs/qtcreator/test/comp_mat_erase.pro b/libs/numeric/ublas/IDEs/qtcreator/test/comp_mat_erase.pro
new file mode 100644
index 000000000..63960aefe
--- /dev/null
+++ b/libs/numeric/ublas/IDEs/qtcreator/test/comp_mat_erase.pro
@@ -0,0 +1,7 @@
+TEMPLATE = app
+TARGET = comp_mat_erase
+
+!include (configuration.pri)
+
+SOURCES += \
+ ../../../test/comp_mat_erase.cpp
diff --git a/libs/numeric/ublas/IDEs/qtcreator/test/concepts.pro b/libs/numeric/ublas/IDEs/qtcreator/test/concepts.pro
new file mode 100644
index 000000000..c4c0bca9f
--- /dev/null
+++ b/libs/numeric/ublas/IDEs/qtcreator/test/concepts.pro
@@ -0,0 +1,16 @@
+TEMPLATE = app
+TARGET = concepts
+
+!include (configuration.pri)
+
+DEFINES += \
+ EXTERNAL
+# INTERAL
+# SKIP_BAD
+
+linux: icc: QMAKE_CXXFLAGS += -Xc
+macx: QMAKE_CXXFLAGS += -fabi-version=0
+
+
+SOURCES += \
+ ../../../test/concepts.cpp
diff --git a/libs/numeric/ublas/IDEs/qtcreator/test/configuration.pri b/libs/numeric/ublas/IDEs/qtcreator/test/configuration.pri
new file mode 100644
index 000000000..3fdb4aa52
--- /dev/null
+++ b/libs/numeric/ublas/IDEs/qtcreator/test/configuration.pri
@@ -0,0 +1,51 @@
+CONFIG -= qt
+CONFIG += \
+ depend_includepath \
+ debug
+QMAKE_CXXFLAGS += -fno-inline
+
+# Create a directory for each test.
+DESTDIR = $${TARGET}
+OBJECTS_DIR = $${TARGET}
+
+UBLAS_TESTSET = \
+ USE_DOUBLE USE_STD_COMPLEX \
+ USE_RANGE USE_SLICE \
+ USE_UNBOUNDED_ARRAY USE_STD_VECTOR USE_BOUNDED_VECTOR USE_MATRIX
+
+UBLAS_TESTSET_SPARSE = \
+ USE_DOUBLE USE_STD_COMPLEX \
+ USE_UNBOUNDED_ARRAY \
+ USE_MAP_ARRAY USE_STD_MAP \
+ USE_MAPPED_VECTOR USE_COMPRESSED_VECTOR \
+ USE_MAPPED_MATRIX USE_COMPRESSED_MATRIX
+ # USE_RANGE USE_SLICE # Too complex for regression testing
+
+UBLAS_TESTSET_SPARSE_COO = \
+ USE_DOUBLE USE_STD_COMPLEX \
+ USE_UNBOUNDED_ARRAY \
+ USE_COORDINATE_VECTOR \
+ USE_COORDINATE_MATRIX
+
+DEFINES += BOOST_UBLAS_NO_EXCEPTIONS
+
+#Visual age IBM
+xlc: DEFINES += BOOST_UBLAS_NO_ELEMENT_PROXIES
+
+# ublas include and test directory are included
+INCLUDEPATH += \
+ ../../../include \
+ ../../test
+
+# If ublas tests are build with boost source code then,
+# then boost headers and boost libraries should be used.
+exists(../../../../../../boost-build.jam) {
+ INCLUDEPATH += ../../../../../..
+ LIBS += -L../../../../../../stage/lib
+ QMAKE_RPATHDIR += ../../../../../../stage/lib
+}
+
+# Execute test once compiled.
+win32: QMAKE_POST_LINK = ./$${DESTDIR}/$${TARGET}.exe
+else: QMAKE_POST_LINK = ./$${DESTDIR}/$${TARGET}
+
diff --git a/libs/numeric/ublas/IDEs/qtcreator/test/num_columns.pro b/libs/numeric/ublas/IDEs/qtcreator/test/num_columns.pro
new file mode 100644
index 000000000..8a28199c6
--- /dev/null
+++ b/libs/numeric/ublas/IDEs/qtcreator/test/num_columns.pro
@@ -0,0 +1,10 @@
+TEMPLATE = app
+TARGET = num_columns
+
+!include (configuration.pri)
+
+HEADERS += \
+ ../../../test/utils.hpp
+
+SOURCES += \
+ ../../../test/num_columns.cpp
diff --git a/libs/numeric/ublas/IDEs/qtcreator/test/num_rows.pro b/libs/numeric/ublas/IDEs/qtcreator/test/num_rows.pro
new file mode 100644
index 000000000..dc0a22904
--- /dev/null
+++ b/libs/numeric/ublas/IDEs/qtcreator/test/num_rows.pro
@@ -0,0 +1,10 @@
+TEMPLATE = app
+TARGET = num_rows
+
+!include (configuration.pri)
+
+HEADERS += \
+ ../../../test/utils.hpp
+
+SOURCES += \
+ ../../../test/num_rows.cpp
diff --git a/libs/numeric/ublas/IDEs/qtcreator/test/placement_new.pro b/libs/numeric/ublas/IDEs/qtcreator/test/placement_new.pro
new file mode 100644
index 000000000..d19a74743
--- /dev/null
+++ b/libs/numeric/ublas/IDEs/qtcreator/test/placement_new.pro
@@ -0,0 +1,7 @@
+TEMPLATE = app
+TARGET = placement_new
+
+!include (configuration.pri)
+
+SOURCES += \
+ ../../../test/placement_new.cpp
diff --git a/libs/numeric/ublas/IDEs/qtcreator/test/size.pro b/libs/numeric/ublas/IDEs/qtcreator/test/size.pro
new file mode 100644
index 000000000..59a040334
--- /dev/null
+++ b/libs/numeric/ublas/IDEs/qtcreator/test/size.pro
@@ -0,0 +1,10 @@
+TEMPLATE = app
+TARGET = size
+
+!include (configuration.pri)
+
+HEADERS += \
+ ../../../test/utils.hpp
+
+SOURCES += \
+ ../../../test/size.cpp
diff --git a/libs/numeric/ublas/IDEs/qtcreator/test/sparse_view_test.pro b/libs/numeric/ublas/IDEs/qtcreator/test/sparse_view_test.pro
new file mode 100644
index 000000000..02b3eb089
--- /dev/null
+++ b/libs/numeric/ublas/IDEs/qtcreator/test/sparse_view_test.pro
@@ -0,0 +1,7 @@
+TEMPLATE = app
+TARGET = sparse_view_test
+
+!include (configuration.pri)
+
+SOURCES += \
+ ../../../test/sparse_view_test.cpp
diff --git a/libs/numeric/ublas/IDEs/qtcreator/test/test.pro b/libs/numeric/ublas/IDEs/qtcreator/test/test.pro
deleted file mode 100644
index fb0e4c62c..000000000
--- a/libs/numeric/ublas/IDEs/qtcreator/test/test.pro
+++ /dev/null
@@ -1,64 +0,0 @@
-OTHER_FILES += \
- ../../../test/README \
- ../../../test/Jamfile.v2
-
-HEADERS += \
- ../../../test/utils.hpp \
- ../../../test/test7.hpp \
- ../../../test/test6.hpp \
- ../../../test/test5.hpp \
- ../../../test/test4.hpp \
- ../../../test/test3.hpp \
- ../../../test/test2.hpp \
- ../../../test/test1.hpp \
- ../../../test/common/testhelper.hpp \
- ../../../test/common/init.hpp
-
-SOURCES += \
- ../../../test/triangular_layout.cpp \
- ../../../test/triangular_access.cpp \
- ../../../test/test_triangular.cpp \
- ../../../test/test_ticket7296.cpp \
- ../../../test/test_lu.cpp \
- ../../../test/test_inplace_solve.cpp \
- ../../../test/test_coordinate_vector_inplace_merge.cpp \
- ../../../test/test_coordinate_matrix_sort.cpp \
- ../../../test/test_coordinate_matrix_inplace_merge.cpp \
- ../../../test/test_complex_norms.cpp \
- ../../../test/test_banded_storage_layout.cpp \
- ../../../test/test_assignment.cpp \
- ../../../test/test73.cpp \
- ../../../test/test72.cpp \
- ../../../test/test71.cpp \
- ../../../test/test63.cpp \
- ../../../test/test62.cpp \
- ../../../test/test53.cpp \
- ../../../test/test52.cpp \
- ../../../test/test43.cpp \
- ../../../test/test42.cpp \
- ../../../test/test33.cpp \
- ../../../test/test32.cpp \
- ../../../test/test31.cpp \
- ../../../test/test23.cpp \
- ../../../test/test22.cpp \
- ../../../test/test21.cpp \
- ../../../test/test13.cpp \
- ../../../test/test12.cpp \
- ../../../test/test11.cpp \
- ../../../test/test7.cpp \
- ../../../test/test6.cpp \
- ../../../test/test5.cpp \
- ../../../test/test4.cpp \
- ../../../test/test3.cpp \
- ../../../test/test2.cpp \
- ../../../test/test1.cpp \
- ../../../test/sparse_view_test.cpp \
- ../../../test/size.cpp \
- ../../../test/placement_new.cpp \
- ../../../test/num_rows.cpp \
- ../../../test/num_columns.cpp \
- ../../../test/concepts.cpp \
- ../../../test/comp_mat_erase.cpp \
- ../../../test/begin_end.cpp \
- ../../../test/test_fixed_containers.cpp \
- ../../../test/test_matrix_vector.cpp
diff --git a/libs/numeric/ublas/IDEs/qtcreator/test/test1.pro b/libs/numeric/ublas/IDEs/qtcreator/test/test1.pro
new file mode 100644
index 000000000..d1123c44e
--- /dev/null
+++ b/libs/numeric/ublas/IDEs/qtcreator/test/test1.pro
@@ -0,0 +1,14 @@
+TEMPLATE = app
+TARGET = test1
+
+!include (configuration.pri)
+
+DEFINES += $$UBLAS_TESTSET
+
+HEADERS += ../../../test/test1.hpp
+
+SOURCES += \
+ ../../../test/test13.cpp \
+ ../../../test/test12.cpp \
+ ../../../test/test11.cpp \
+ ../../../test/test1.cpp
diff --git a/libs/numeric/ublas/IDEs/qtcreator/test/test2.pro b/libs/numeric/ublas/IDEs/qtcreator/test/test2.pro
new file mode 100644
index 000000000..00fb53f54
--- /dev/null
+++ b/libs/numeric/ublas/IDEs/qtcreator/test/test2.pro
@@ -0,0 +1,14 @@
+TEMPLATE = app
+TARGET = test2
+
+!include (configuration.pri)
+
+DEFINES += $$UBLAS_TESTSET
+
+HEADERS += ../../../test/test2.hpp
+
+SOURCES += \
+ ../../../test/test23.cpp \
+ ../../../test/test22.cpp \
+ ../../../test/test21.cpp \
+ ../../../test/test2.cpp
diff --git a/libs/numeric/ublas/IDEs/qtcreator/test/test3.pro b/libs/numeric/ublas/IDEs/qtcreator/test/test3.pro
new file mode 100644
index 000000000..f4fd021fa
--- /dev/null
+++ b/libs/numeric/ublas/IDEs/qtcreator/test/test3.pro
@@ -0,0 +1,14 @@
+TEMPLATE = app
+TARGET = test3
+
+!include (configuration.pri)
+
+DEFINES += $$UBLAS_TESTSET_SPARSE
+
+HEADERS += ../../../test/test3.hpp
+
+SOURCES += \
+ ../../../test/test33.cpp \
+ ../../../test/test32.cpp \
+ ../../../test/test31.cpp \
+ ../../../test/test3.cpp
diff --git a/libs/numeric/ublas/IDEs/qtcreator/test/test3_coo.pro b/libs/numeric/ublas/IDEs/qtcreator/test/test3_coo.pro
new file mode 100644
index 000000000..27e3ca384
--- /dev/null
+++ b/libs/numeric/ublas/IDEs/qtcreator/test/test3_coo.pro
@@ -0,0 +1,14 @@
+TEMPLATE = app
+TARGET = test3_coo
+
+!include (configuration.pri)
+
+DEFINES += $$UBLAS_TESTSET_SPARSE_COO
+
+HEADERS += ../../../test/test3.hpp
+
+SOURCES += \
+ ../../../test/test33.cpp \
+ ../../../test/test32.cpp \
+ ../../../test/test31.cpp \
+ ../../../test/test3.cpp
diff --git a/libs/numeric/ublas/IDEs/qtcreator/test/test3_mvov.pro b/libs/numeric/ublas/IDEs/qtcreator/test/test3_mvov.pro
new file mode 100644
index 000000000..f0a46dcd2
--- /dev/null
+++ b/libs/numeric/ublas/IDEs/qtcreator/test/test3_mvov.pro
@@ -0,0 +1,19 @@
+TEMPLATE = app
+TARGET = test3_mvov
+
+!include (configuration.pri)
+
+DEFINES += \
+ USE_FLOAT \
+ USE_DOUBLE \
+ USE_STD_COMPLEX \
+ USE_STD_MAP \
+ USE_MAPPED_VECTOR_OF_MAPPED_VECTOR
+
+HEADERS += ../../../test/test3.hpp
+
+SOURCES += \
+ ../../../test/test33.cpp \
+ ../../../test/test32.cpp \
+ ../../../test/test31.cpp \
+ ../../../test/test3.cpp
diff --git a/libs/numeric/ublas/IDEs/qtcreator/test/test4.pro b/libs/numeric/ublas/IDEs/qtcreator/test/test4.pro
new file mode 100644
index 000000000..19da3f872
--- /dev/null
+++ b/libs/numeric/ublas/IDEs/qtcreator/test/test4.pro
@@ -0,0 +1,13 @@
+TEMPLATE = app
+TARGET = test4
+
+!include (configuration.pri)
+
+DEFINES += $$UBLAS_TESTSET
+
+HEADERS += ../../../test/test4.hpp
+
+SOURCES += \
+ ../../../test/test43.cpp \
+ ../../../test/test42.cpp \
+ ../../../test/test4.cpp
diff --git a/libs/numeric/ublas/IDEs/qtcreator/test/test5.pro b/libs/numeric/ublas/IDEs/qtcreator/test/test5.pro
new file mode 100644
index 000000000..3f27384ec
--- /dev/null
+++ b/libs/numeric/ublas/IDEs/qtcreator/test/test5.pro
@@ -0,0 +1,13 @@
+TEMPLATE = app
+TARGET = test5
+
+!include (configuration.pri)
+
+DEFINES += $$UBLAS_TESTSET
+
+HEADERS += ../../../test/test5.hpp
+
+SOURCES += \
+ ../../../test/test53.cpp \
+ ../../../test/test52.cpp \
+ ../../../test/test5.cpp
diff --git a/libs/numeric/ublas/IDEs/qtcreator/test/test6.pro b/libs/numeric/ublas/IDEs/qtcreator/test/test6.pro
new file mode 100644
index 000000000..0664ce454
--- /dev/null
+++ b/libs/numeric/ublas/IDEs/qtcreator/test/test6.pro
@@ -0,0 +1,13 @@
+TEMPLATE = app
+TARGET = test6
+
+!include (configuration.pri)
+
+DEFINES += $$UBLAS_TESTSET
+
+HEADERS += ../../../test/test6.hpp
+
+SOURCES += \
+ ../../../test/test63.cpp \
+ ../../../test/test62.cpp \
+ ../../../test/test6.cpp
diff --git a/libs/numeric/ublas/IDEs/qtcreator/test/test7.pro b/libs/numeric/ublas/IDEs/qtcreator/test/test7.pro
new file mode 100644
index 000000000..541018492
--- /dev/null
+++ b/libs/numeric/ublas/IDEs/qtcreator/test/test7.pro
@@ -0,0 +1,16 @@
+TEMPLATE = app
+TARGET = test7
+
+!include (configuration.pri)
+
+DEFINES += \
+ BOOST_UBLAS_USE_INTERVAL \
+ $${UBLAS_TESTSET}
+
+HEADERS += ../../../test/test7.hpp
+
+SOURCES += \
+ ../../../test/test73.cpp \
+ ../../../test/test72.cpp \
+ ../../../test/test71.cpp \
+ ../../../test/test7.cpp
diff --git a/libs/numeric/ublas/IDEs/qtcreator/test/test_assignment.pro b/libs/numeric/ublas/IDEs/qtcreator/test/test_assignment.pro
new file mode 100644
index 000000000..1ad6ca391
--- /dev/null
+++ b/libs/numeric/ublas/IDEs/qtcreator/test/test_assignment.pro
@@ -0,0 +1,13 @@
+TEMPLATE = app
+TARGET = test_assignment
+
+!include (configuration.pri)
+
+DEFINES += \
+ BOOST_UBLAS_COO_ALWAYS_DO_FULL_SORT
+
+HEADERS += \
+ ../../../test/utils.hpp
+
+SOURCES += \
+ ../../../test/test_assignment.cpp
diff --git a/libs/numeric/ublas/IDEs/qtcreator/test/test_banded_storage_layout.pro b/libs/numeric/ublas/IDEs/qtcreator/test/test_banded_storage_layout.pro
new file mode 100644
index 000000000..78a96dc42
--- /dev/null
+++ b/libs/numeric/ublas/IDEs/qtcreator/test/test_banded_storage_layout.pro
@@ -0,0 +1,10 @@
+TEMPLATE = app
+TARGET = test_banded_storage_layout
+
+!include (configuration.pri)
+
+HEADERS += \
+ ../../../test/utils.hpp
+
+SOURCES += \
+ ../../../test/test_banded_storage_layout.cpp
diff --git a/libs/numeric/ublas/IDEs/qtcreator/test/test_complex_norms.pro b/libs/numeric/ublas/IDEs/qtcreator/test/test_complex_norms.pro
new file mode 100644
index 000000000..e7c431e4a
--- /dev/null
+++ b/libs/numeric/ublas/IDEs/qtcreator/test/test_complex_norms.pro
@@ -0,0 +1,10 @@
+TEMPLATE = app
+TARGET = test_complex_norms
+
+!include (configuration.pri)
+
+HEADERS += \
+ ../../../test/utils.hpp
+
+SOURCES += \
+ ../../../test/test_complex_norms.cpp
diff --git a/libs/numeric/ublas/IDEs/qtcreator/test/test_coordinate_matrix_always_do_full_sort.pro b/libs/numeric/ublas/IDEs/qtcreator/test/test_coordinate_matrix_always_do_full_sort.pro
new file mode 100644
index 000000000..0c93dd04b
--- /dev/null
+++ b/libs/numeric/ublas/IDEs/qtcreator/test/test_coordinate_matrix_always_do_full_sort.pro
@@ -0,0 +1,13 @@
+TEMPLATE = app
+TARGET = test_coordinate_matrix_always_do_full_sort
+
+!include (configuration.pri)
+
+DEFINES += \
+ BOOST_UBLAS_COO_ALWAYS_DO_FULL_SORT
+
+HEADERS += \
+ ../../../test/utils.hpp
+
+SOURCES += \
+ ../../../test/test_coordinate_matrix_sort.cpp
diff --git a/libs/numeric/ublas/IDEs/qtcreator/test/test_coordinate_matrix_inplace_merge.pro b/libs/numeric/ublas/IDEs/qtcreator/test/test_coordinate_matrix_inplace_merge.pro
new file mode 100644
index 000000000..0dee5eb39
--- /dev/null
+++ b/libs/numeric/ublas/IDEs/qtcreator/test/test_coordinate_matrix_inplace_merge.pro
@@ -0,0 +1,10 @@
+TEMPLATE = app
+TARGET = test_coordinate_matrix_inplace_merge
+
+!include (configuration.pri)
+
+HEADERS += \
+ ../../../test/utils.hpp
+
+SOURCES += \
+ ../../../test/test_coordinate_matrix_inplace_merge.cpp
diff --git a/libs/numeric/ublas/IDEs/qtcreator/test/test_coordinate_matrix_sort.pro b/libs/numeric/ublas/IDEs/qtcreator/test/test_coordinate_matrix_sort.pro
new file mode 100644
index 000000000..ea94561d1
--- /dev/null
+++ b/libs/numeric/ublas/IDEs/qtcreator/test/test_coordinate_matrix_sort.pro
@@ -0,0 +1,10 @@
+TEMPLATE = app
+TARGET = test_coordinate_matrix_sort
+
+!include (configuration.pri)
+
+HEADERS += \
+ ../../../test/utils.hpp
+
+SOURCES += \
+ ../../../test/test_coordinate_matrix_sort.cpp
diff --git a/libs/numeric/ublas/IDEs/qtcreator/test/test_coordinate_vector_inplace_merge.pro b/libs/numeric/ublas/IDEs/qtcreator/test/test_coordinate_vector_inplace_merge.pro
new file mode 100644
index 000000000..a86ce2aeb
--- /dev/null
+++ b/libs/numeric/ublas/IDEs/qtcreator/test/test_coordinate_vector_inplace_merge.pro
@@ -0,0 +1,9 @@
+TEMPLATE = app
+TARGET = test_coordinate_vector_inplace_merge
+
+!include (configuration.pri)
+HEADERS += \
+ ../../../test/utils.hpp
+
+SOURCES += \
+ ../../../test/test_coordinate_vector_inplace_merge.cpp
diff --git a/libs/numeric/ublas/IDEs/qtcreator/test/test_fixed_containers.pro b/libs/numeric/ublas/IDEs/qtcreator/test/test_fixed_containers.pro
new file mode 100644
index 000000000..60127482f
--- /dev/null
+++ b/libs/numeric/ublas/IDEs/qtcreator/test/test_fixed_containers.pro
@@ -0,0 +1,10 @@
+TEMPLATE = app
+TARGET = test_fixed_containers
+
+!include (configuration.pri)
+
+HEADERS += \
+ ../../../test/utils.hpp
+
+SOURCES += \
+ ../../../test/test_fixed_containers.cpp
diff --git a/libs/numeric/ublas/IDEs/qtcreator/test/test_inplace_solve_basic.pro b/libs/numeric/ublas/IDEs/qtcreator/test/test_inplace_solve_basic.pro
new file mode 100644
index 000000000..42bc3db6f
--- /dev/null
+++ b/libs/numeric/ublas/IDEs/qtcreator/test/test_inplace_solve_basic.pro
@@ -0,0 +1,13 @@
+TEMPLATE = app
+TARGET = test_inplace_solve_basic
+
+!include (configuration.pri)
+
+DEFINES += \
+ $$UBLAS_TESTSET
+
+HEADERS += \
+ ../../../test/utils.hpp
+
+SOURCES += \
+ ../../../test/test_inplace_solve.cpp
diff --git a/libs/numeric/ublas/IDEs/qtcreator/test/test_inplace_solve_mvov.pro b/libs/numeric/ublas/IDEs/qtcreator/test/test_inplace_solve_mvov.pro
new file mode 100644
index 000000000..a1d1316d6
--- /dev/null
+++ b/libs/numeric/ublas/IDEs/qtcreator/test/test_inplace_solve_mvov.pro
@@ -0,0 +1,13 @@
+TEMPLATE = app
+TARGET = test_inplace_solve_mvov
+
+!include (configuration.pri)
+
+DEFINES += \
+ USE_MAPPED_VECTOR_OF_MAPPED_VECTOR
+
+HEADERS += \
+ ../../../test/utils.hpp
+
+SOURCES += \
+ ../../../test/test_inplace_solve.cpp
diff --git a/libs/numeric/ublas/IDEs/qtcreator/test/test_inplace_solve_sparse.pro b/libs/numeric/ublas/IDEs/qtcreator/test/test_inplace_solve_sparse.pro
new file mode 100644
index 000000000..9f9a32a09
--- /dev/null
+++ b/libs/numeric/ublas/IDEs/qtcreator/test/test_inplace_solve_sparse.pro
@@ -0,0 +1,14 @@
+TEMPLATE = app
+TARGET = test_inplace_solve_sparse
+
+!include (configuration.pri)
+
+DEFINES += \
+ $$UBLAS_TESTSET_SPARSE \
+ $$UBLAS_TESTSET_SPARSE_COO
+
+HEADERS += \
+ ../../../test/utils.hpp
+
+SOURCES += \
+ ../../../test/test_inplace_solve.cpp
diff --git a/libs/numeric/ublas/IDEs/qtcreator/test/test_lu.pro b/libs/numeric/ublas/IDEs/qtcreator/test/test_lu.pro
new file mode 100644
index 000000000..0f2033971
--- /dev/null
+++ b/libs/numeric/ublas/IDEs/qtcreator/test/test_lu.pro
@@ -0,0 +1,10 @@
+TEMPLATE = app
+TARGET = test_lu
+
+!include (configuration.pri)
+
+HEADERS += \
+ ../../../test/common/testhelper.hpp
+
+SOURCES += \
+ ../../../test/test_lu.cpp
diff --git a/libs/numeric/ublas/IDEs/qtcreator/test/test_matrix_vector.pro b/libs/numeric/ublas/IDEs/qtcreator/test/test_matrix_vector.pro
new file mode 100644
index 000000000..d61b70bfb
--- /dev/null
+++ b/libs/numeric/ublas/IDEs/qtcreator/test/test_matrix_vector.pro
@@ -0,0 +1,13 @@
+TEMPLATE = app
+TARGET = test_matrix_vector
+
+!include (configuration.pri)
+
+HEADERS += \
+ ../../../test/utils.hpp
+
+SOURCES += \
+ ../../../test/test_matrix_vector.cpp
+
+INCLUDEPATH += \
+ ../../../include
diff --git a/libs/numeric/ublas/IDEs/qtcreator/test/test_ticket7296.pro b/libs/numeric/ublas/IDEs/qtcreator/test/test_ticket7296.pro
new file mode 100644
index 000000000..98752cf75
--- /dev/null
+++ b/libs/numeric/ublas/IDEs/qtcreator/test/test_ticket7296.pro
@@ -0,0 +1,10 @@
+TEMPLATE = app
+TARGET = test_ticket7296
+
+!include (configuration.pri)
+
+HEADERS += \
+ ../../../test/utils.hpp
+
+SOURCES += \
+ ../../../test/test_ticket7296.cpp
diff --git a/libs/numeric/ublas/IDEs/qtcreator/test/test_triangular.pro b/libs/numeric/ublas/IDEs/qtcreator/test/test_triangular.pro
new file mode 100644
index 000000000..15c8ce110
--- /dev/null
+++ b/libs/numeric/ublas/IDEs/qtcreator/test/test_triangular.pro
@@ -0,0 +1,16 @@
+TEMPLATE = app
+TARGET = test_triangular
+
+!include (configuration.pri)
+
+DEFINES += \
+ BOOST_CHRONO_DYN_LINK=1 \
+ BOOST_CHRONO_THREAD_DISABLED \
+ BOOST_SYSTEM_DYN_LINK=1 \
+ BOOST_SYSTEM_NO_DEPRECATED \
+ BOOST_TIMER_DYN_LINK=1
+
+SOURCES += \
+ ../../../test/test_triangular.cpp
+
+LIBS += -lboost_timer -lboost_system -lboost_chrono
diff --git a/libs/numeric/ublas/IDEs/qtcreator/test/triangular_access.pro b/libs/numeric/ublas/IDEs/qtcreator/test/triangular_access.pro
new file mode 100644
index 000000000..98a87063b
--- /dev/null
+++ b/libs/numeric/ublas/IDEs/qtcreator/test/triangular_access.pro
@@ -0,0 +1,12 @@
+TEMPLATE = app
+TARGET = triangular_access
+
+!include (configuration.pri)
+
+DEFINES += NOMESSAGES
+
+HEADERS += \
+ ../../../test/common/testhelper.hpp
+
+SOURCES += \
+ ../../../test/triangular_access.cpp
diff --git a/libs/numeric/ublas/IDEs/qtcreator/test/triangular_layout.pro b/libs/numeric/ublas/IDEs/qtcreator/test/triangular_layout.pro
new file mode 100644
index 000000000..dcfd36f6f
--- /dev/null
+++ b/libs/numeric/ublas/IDEs/qtcreator/test/triangular_layout.pro
@@ -0,0 +1,7 @@
+TEMPLATE = app
+TARGET = triangular_layout
+
+!include (configuration.pri)
+
+SOURCES += \
+ ../../../test/triangular_layout.cpp
diff --git a/libs/numeric/ublas/IDEs/qtcreator/tests.pri b/libs/numeric/ublas/IDEs/qtcreator/tests.pri
new file mode 100644
index 000000000..6ece4acd5
--- /dev/null
+++ b/libs/numeric/ublas/IDEs/qtcreator/tests.pri
@@ -0,0 +1,74 @@
+OTHER_FILES += \
+ ../../test/README \
+ ../../test/Jamfile.v2
+
+SUBDIRS += \
+ begin_end \
+ comp_mat_erase \
+ concepts \
+ num_columns \
+ num_rows \
+ placement_new \
+ size \
+ sparse_view_test \
+ test1 \
+ test2 \
+ test3 \
+ test3_coo \
+ test3_mvov \
+ test4 \
+ test5 \
+ test6 \
+ test7 \
+ test_assignment \
+ test_banded_storage_layout \
+ test_complex_norms \
+ test_coordinate_matrix_inplace_merge \
+ test_coordinate_matrix_sort \
+ test_coordinate_matrix_always_do_full_sort \
+ test_coordinate_vector_inplace_merge \
+ test_fixed_containers \
+ test_inplace_solve_basic \
+ test_inplace_solve_sparse \
+ test_inplace_solve_mvov \
+ test_lu \
+ test_matrix_vector \
+ test_ticket7296 \
+ test_triangular \
+ triangular_access \
+ triangular_layout
+
+begin_end.file = test/begin_end.pro
+comp_mat_erase.file = test/comp_mat_erase.pro
+concepts.file = test/concepts.pro
+num_columns.file = test/num_columns.pro
+num_rows.file = test/num_rows.pro
+placement_new.file = test/placement_new.pro
+size.file = test/size.pro
+sparse_view_test.file = test/sparse_view_test.pro
+test1.file = test/test1.pro
+test2.file = test/test2.pro
+test3.file = test/test3.pro
+test3_coo.file = test/test3_coo.pro
+test3_mvov.file = test/test3_mvov.pro
+test4.file = test/test4.pro
+test5.file = test/test5.pro
+test6.file = test/test6.pro
+test7.file = test/test7.pro
+test_assignment.file = test/test_assignment.pro
+test_banded_storage_layout.file = test/test_banded_storage_layout.pro
+test_complex_norms.file = test/test_complex_norms.pro
+test_coordinate_matrix_inplace_merge.file = test/test_coordinate_matrix_inplace_merge.pro
+test_coordinate_matrix_sort.file = test/test_coordinate_matrix_sort.pro
+test_coordinate_matrix_always_do_full_sort.file = test/test_coordinate_matrix_always_do_full_sort.pro
+test_coordinate_vector_inplace_merge.file = test/test_coordinate_vector_inplace_merge.pro
+test_fixed_containers.file = test/test_fixed_containers.pro
+test_inplace_solve_basic.file = test/test_inplace_solve_basic.pro
+test_inplace_solve_sparse.file = test/test_inplace_solve_sparse.pro
+test_inplace_solve_mvov.file = test/test_inplace_solve_mvov.pro
+test_lu.file = test/test_lu.pro
+test_matrix_vector.file = test/test_matrix_vector.pro
+test_ticket7296.file = test/test_ticket7296.pro
+test_triangular.file = test/test_triangular.pro
+triangular_access.file = test/triangular_access.pro
+triangular_layout.file = test/triangular_layout.pro
diff --git a/libs/numeric/ublas/IDEs/qtcreator/ublas_develop.pro b/libs/numeric/ublas/IDEs/qtcreator/ublas_develop.pro
index d793adfcf..7364283a9 100644
--- a/libs/numeric/ublas/IDEs/qtcreator/ublas_develop.pro
+++ b/libs/numeric/ublas/IDEs/qtcreator/ublas_develop.pro
@@ -1,3 +1,6 @@
TEMPLATE = subdirs
-SUBDIRS = include benchmarks test
+CONFIG += ordered
+SUBDIRS = include benchmarks
OTHER_FILES += ../../changelog.txt
+
+include (tests.pri)
diff --git a/libs/numeric/ublas/benchmarks/bench1/bench1.hpp b/libs/numeric/ublas/benchmarks/bench1/bench1.hpp
index 08376c9b1..d799463d4 100644
--- a/libs/numeric/ublas/benchmarks/bench1/bench1.hpp
+++ b/libs/numeric/ublas/benchmarks/bench1/bench1.hpp
@@ -23,6 +23,9 @@
#include <boost/timer.hpp>
+#define BOOST_UBLAS_NOT_USED(x) (void)(x)
+
+
namespace ublas = boost::numeric::ublas;
void header (std::string text);
diff --git a/libs/numeric/ublas/benchmarks/bench1/bench11.cpp b/libs/numeric/ublas/benchmarks/bench1/bench11.cpp
index 633d82729..806a422b0 100644
--- a/libs/numeric/ublas/benchmarks/bench1/bench11.cpp
+++ b/libs/numeric/ublas/benchmarks/bench1/bench11.cpp
@@ -50,6 +50,7 @@ struct bench_my_inner_prod {
static value_type s (0);
s = ublas::inner_prod (v1, v2);
// sink_scalar (s);
+ BOOST_UBLAS_NOT_USED(s);
}
footer<value_type> () (N, N - 1, runs, t.elapsed ());
}
@@ -96,6 +97,7 @@ struct bench_c_vector_add {
v3 [j] = - (v1 [j] + v2 [j]);
}
// sink_c_vector<T, N> () (v3);
+ BOOST_UBLAS_NOT_USED(v3);
}
footer<value_type> () (0, 2 * N, runs, t.elapsed ());
}
diff --git a/libs/numeric/ublas/benchmarks/bench1/bench12.cpp b/libs/numeric/ublas/benchmarks/bench1/bench12.cpp
index 50c57d736..439188f67 100644
--- a/libs/numeric/ublas/benchmarks/bench1/bench12.cpp
+++ b/libs/numeric/ublas/benchmarks/bench1/bench12.cpp
@@ -31,6 +31,8 @@ struct bench_c_outer_prod {
}
// sink_c_matrix<T, N, N> () (m);
}
+ BOOST_UBLAS_NOT_USED(m);
+
footer<value_type> () (N * N, N * N, runs, t.elapsed ());
}
catch (std::exception &e) {
@@ -214,6 +216,8 @@ struct bench_c_matrix_add {
}
// sink_c_matrix<T, N, N> () (m3);
}
+ BOOST_UBLAS_NOT_USED(m3);
+
footer<value_type> () (0, 2 * N * N, runs, t.elapsed ());
}
catch (std::exception &e) {
diff --git a/libs/numeric/ublas/benchmarks/bench2/bench2.hpp b/libs/numeric/ublas/benchmarks/bench2/bench2.hpp
index 713fec5fd..efb20a27a 100644
--- a/libs/numeric/ublas/benchmarks/bench2/bench2.hpp
+++ b/libs/numeric/ublas/benchmarks/bench2/bench2.hpp
@@ -24,6 +24,10 @@
#include <boost/timer.hpp>
+
+#define BOOST_UBLAS_NOT_USED(x) (void)(x)
+
+
namespace ublas = boost::numeric::ublas;
void header (std::string text);
diff --git a/libs/numeric/ublas/benchmarks/bench2/bench21.cpp b/libs/numeric/ublas/benchmarks/bench2/bench21.cpp
index 2cf33326f..50d70a405 100644
--- a/libs/numeric/ublas/benchmarks/bench2/bench21.cpp
+++ b/libs/numeric/ublas/benchmarks/bench2/bench21.cpp
@@ -50,6 +50,7 @@ struct bench_my_inner_prod {
static value_type s (0);
s = ublas::inner_prod (v1, v2);
// sink_scalar (s);
+ BOOST_UBLAS_NOT_USED(s);
}
footer<value_type> () (N, N - 1, runs, t.elapsed ());
}
@@ -96,6 +97,7 @@ struct bench_c_vector_add {
v3 [j] = - (v1 [j] + v2 [j]);
}
// sink_c_vector<T, N> () (v3);
+ BOOST_UBLAS_NOT_USED(v3);
}
footer<value_type> () (0, 2 * N, runs, t.elapsed ());
}
diff --git a/libs/numeric/ublas/benchmarks/bench2/bench22.cpp b/libs/numeric/ublas/benchmarks/bench2/bench22.cpp
index ce054786f..f40df79ae 100644
--- a/libs/numeric/ublas/benchmarks/bench2/bench22.cpp
+++ b/libs/numeric/ublas/benchmarks/bench2/bench22.cpp
@@ -30,6 +30,7 @@ struct bench_c_outer_prod {
}
}
// sink_c_matrix<T, N, N> () (m);
+ BOOST_UBLAS_NOT_USED(m);
}
footer<value_type> () (N * N, N * N, runs, t.elapsed ());
}
@@ -52,6 +53,7 @@ struct bench_my_outer_prod {
for (int i = 0; i < runs; ++ i) {
m = - ublas::outer_prod (v1, v2);
// sink_matrix (m);
+ BOOST_UBLAS_NOT_USED(m);
}
footer<value_type> () (N * N, N * N, runs, t.elapsed ());
}
@@ -69,6 +71,7 @@ struct bench_my_outer_prod {
for (int i = 0; i < runs; ++ i) {
m.assign (- ublas::outer_prod (v1, v2));
// sink_matrix (m);
+ BOOST_UBLAS_NOT_USED(m);
}
footer<value_type> () (N * N, N * N, runs, t.elapsed ());
}
@@ -213,6 +216,7 @@ struct bench_c_matrix_add {
}
}
// sink_c_matrix<T, N, N> () (m3);
+ BOOST_UBLAS_NOT_USED(m3);
}
footer<value_type> () (0, 2 * N * N, runs, t.elapsed ());
}
diff --git a/libs/numeric/ublas/benchmarks/bench3/bench3.hpp b/libs/numeric/ublas/benchmarks/bench3/bench3.hpp
index 4959348a6..5b64b59af 100644
--- a/libs/numeric/ublas/benchmarks/bench3/bench3.hpp
+++ b/libs/numeric/ublas/benchmarks/bench3/bench3.hpp
@@ -24,6 +24,10 @@
#include <boost/timer.hpp>
+
+#define BOOST_UBLAS_NOT_USED(x) (void)(x)
+
+
namespace ublas = boost::numeric::ublas;
void header (std::string text);
diff --git a/libs/numeric/ublas/benchmarks/bench3/bench31.cpp b/libs/numeric/ublas/benchmarks/bench3/bench31.cpp
index 66ca78026..9181eb1cf 100644
--- a/libs/numeric/ublas/benchmarks/bench3/bench31.cpp
+++ b/libs/numeric/ublas/benchmarks/bench3/bench31.cpp
@@ -52,6 +52,7 @@ struct bench_my_inner_prod {
static value_type s (0);
s = ublas::inner_prod (vr1, vr2);
// sink_scalar (s);
+ BOOST_UBLAS_NOT_USED(s);
}
footer<value_type> () (N, N - 1, runs, t.elapsed ());
}
@@ -98,6 +99,7 @@ struct bench_c_vector_add {
v3 [j] = - (v1 [j] + v2 [j]);
}
// sink_c_vector<T, N> () (v3);
+ BOOST_UBLAS_NOT_USED(v3);
}
footer<value_type> () (0, 2 * N, runs, t.elapsed ());
}
diff --git a/libs/numeric/ublas/benchmarks/bench3/bench32.cpp b/libs/numeric/ublas/benchmarks/bench3/bench32.cpp
index 4c1b2bc3a..3819090bb 100644
--- a/libs/numeric/ublas/benchmarks/bench3/bench32.cpp
+++ b/libs/numeric/ublas/benchmarks/bench3/bench32.cpp
@@ -30,6 +30,7 @@ struct bench_c_outer_prod {
}
}
// sink_c_matrix<T, N, N> () (m);
+ BOOST_UBLAS_NOT_USED(m);
}
footer<value_type> () (N * N, N * N, runs, t.elapsed ());
}
@@ -225,6 +226,7 @@ struct bench_c_matrix_add {
}
}
// sink_c_matrix<T, N, N> () (m3);
+ BOOST_UBLAS_NOT_USED(m3);
}
footer<value_type> () (0, 2 * N * N, runs, t.elapsed ());
}
diff --git a/libs/numeric/ublas/meta/libraries.json b/libs/numeric/ublas/meta/libraries.json
index f1a3ddcc1..68be73760 100644
--- a/libs/numeric/ublas/meta/libraries.json
+++ b/libs/numeric/ublas/meta/libraries.json
@@ -6,7 +6,6 @@
"Mathias Koch"
],
"description": "uBLAS provides matrix and vector classes as well as basic linear algebra routines. Several dense, packed and sparse storage schemes are supported.",
- "documentation": "doc/index.htm",
"category": [
"Math"
],
diff --git a/libs/numeric/ublas/test/begin_end.cpp b/libs/numeric/ublas/test/begin_end.cpp
index 270aa4a81..769a51faf 100644
--- a/libs/numeric/ublas/test/begin_end.cpp
+++ b/libs/numeric/ublas/test/begin_end.cpp
@@ -17,7 +17,7 @@
#include <boost/numeric/ublas/vector.hpp>
#include <boost/numeric/ublas/vector_expression.hpp>
#include <iostream>
-#include "libs/numeric/ublas/test/utils.hpp"
+#include "utils.hpp"
static const double TOL(1.0e-5); ///< Used for comparing two real numbers.
diff --git a/libs/numeric/ublas/test/common/testhelper.hpp b/libs/numeric/ublas/test/common/testhelper.hpp
index c4a2fb060..b554511fa 100644
--- a/libs/numeric/ublas/test/common/testhelper.hpp
+++ b/libs/numeric/ublas/test/common/testhelper.hpp
@@ -54,8 +54,13 @@ std::pair<unsigned, unsigned> getResults() {
template < class M1, class M2 >
bool compare( const boost::numeric::ublas::matrix_expression<M1> & m1,
const boost::numeric::ublas::matrix_expression<M2> & m2 ) {
- size_t size1 = (std::min)(m1().size1(), m2().size1());
- size_t size2 = (std::min)(m1().size2(), m2().size2());
+ if ((m1().size1() != m2().size1()) ||
+ (m1().size2() != m2().size2())) {
+ return false;
+ }
+
+ size_t size1 = m1().size1();
+ size_t size2 = m1().size2();
for (size_t i=0; i < size1; ++i) {
for (size_t j=0; j < size2; ++j) {
if ( m1()(i,j) != m2()(i,j) ) return false;
@@ -67,11 +72,64 @@ bool compare( const boost::numeric::ublas::matrix_expression<M1> & m1,
template < class M1, class M2 >
bool compare( const boost::numeric::ublas::vector_expression<M1> & m1,
const boost::numeric::ublas::vector_expression<M2> & m2 ) {
- size_t size = (std::min)(m1().size(), m2().size());
+ if (m1().size() != m2().size()) {
+ return false;
+ }
+
+ size_t size = m1().size();
for (size_t i=0; i < size; ++i) {
if ( m1()(i) != m2()(i) ) return false;
}
return true;
}
+// Compare if two matrices or vectors are equals based on distance.
+
+template <class AE>
+typename AE::value_type mean_square(const boost::numeric::ublas::matrix_expression<AE> &me) {
+ typename AE::value_type s(0);
+ typename AE::size_type i, j;
+ for (i=0; i!= me().size1(); i++) {
+ for (j=0; j!= me().size2(); j++) {
+ s += boost::numeric::ublas::scalar_traits<typename AE::value_type>::type_abs(me()(i,j));
+ }
+ }
+ return s / (me().size1() * me().size2());
+}
+
+template <class AE>
+typename AE::value_type mean_square(const boost::numeric::ublas::vector_expression<AE> &ve) {
+ // We could have use norm2 here, but ublas' ABS does not support unsigned types.
+ typename AE::value_type s(0);
+ typename AE::size_type i;
+ for (i=0; i!= ve().size(); i++) {
+ s += boost::numeric::ublas::scalar_traits<typename AE::value_type>::type_abs(ve()(i));
+ }
+ return s / ve().size();
+}
+
+template < class M1, class M2 >
+bool compare_to( const boost::numeric::ublas::matrix_expression<M1> & m1,
+ const boost::numeric::ublas::matrix_expression<M2> & m2,
+ double tolerance = 0.0 ) {
+ if ((m1().size1() != m2().size1()) ||
+ (m1().size2() != m2().size2())) {
+ return false;
+ }
+
+ return mean_square(m2() - m1()) <= tolerance;
+}
+
+template < class M1, class M2 >
+bool compare_to( const boost::numeric::ublas::vector_expression<M1> & m1,
+ const boost::numeric::ublas::vector_expression<M2> & m2,
+ double tolerance = 0.0 ) {
+ if (m1().size() != m2().size()) {
+ return false;
+ }
+
+ return mean_square(m2() - m1()) <= tolerance;
+}
+
+
#endif
diff --git a/libs/numeric/ublas/test/comp_mat_erase.cpp b/libs/numeric/ublas/test/comp_mat_erase.cpp
index fb456c6ec..70018908d 100644
--- a/libs/numeric/ublas/test/comp_mat_erase.cpp
+++ b/libs/numeric/ublas/test/comp_mat_erase.cpp
@@ -4,7 +4,7 @@
// accompanying file LICENSE_1_0.txt or copy at
// http://www.boost.org/LICENSE_1_0.txt)
-#include "boost/numeric/ublas/matrix_sparse.hpp"
+#include <boost/numeric/ublas/matrix_sparse.hpp>
#define BOOST_TEST_MODULE SparseMatrixErasureTest
#include <boost/test/included/unit_test.hpp>
diff --git a/libs/numeric/ublas/test/num_columns.cpp b/libs/numeric/ublas/test/num_columns.cpp
index 568d4f2e1..68c9770af 100644
--- a/libs/numeric/ublas/test/num_columns.cpp
+++ b/libs/numeric/ublas/test/num_columns.cpp
@@ -9,7 +9,7 @@
#include <boost/numeric/ublas/matrix_expression.hpp>
#include <boost/numeric/ublas/operation/num_columns.hpp>
#include <iostream>
-#include "libs/numeric/ublas/test/utils.hpp"
+#include "utils.hpp"
BOOST_UBLAS_TEST_DEF( test_row_major_matrix_container )
diff --git a/libs/numeric/ublas/test/num_rows.cpp b/libs/numeric/ublas/test/num_rows.cpp
index 4a96bd2f9..1e3a1e70a 100644
--- a/libs/numeric/ublas/test/num_rows.cpp
+++ b/libs/numeric/ublas/test/num_rows.cpp
@@ -9,7 +9,7 @@
#include <boost/numeric/ublas/matrix_expression.hpp>
#include <boost/numeric/ublas/operation/num_rows.hpp>
#include <iostream>
-#include "libs/numeric/ublas/test/utils.hpp"
+#include "utils.hpp"
BOOST_UBLAS_TEST_DEF( test_row_major_matrix_container )
diff --git a/libs/numeric/ublas/test/size.cpp b/libs/numeric/ublas/test/size.cpp
index 5976caab8..1fd2f9de6 100644
--- a/libs/numeric/ublas/test/size.cpp
+++ b/libs/numeric/ublas/test/size.cpp
@@ -12,7 +12,7 @@
#include <boost/numeric/ublas/vector.hpp>
#include <boost/numeric/ublas/vector_expression.hpp>
#include <iostream>
-#include "libs/numeric/ublas/test/utils.hpp"
+#include "utils.hpp"
BOOST_UBLAS_TEST_DEF( test_vector_container )
diff --git a/libs/numeric/ublas/test/test13.cpp b/libs/numeric/ublas/test/test13.cpp
index ecb8eeb72..d84f321fe 100644
--- a/libs/numeric/ublas/test/test13.cpp
+++ b/libs/numeric/ublas/test/test13.cpp
@@ -88,6 +88,10 @@ struct test_my_matrix {
std::cout << "m1 * 1. = " << m2 << std::endl;
m2 = m1 * t;
std::cout << "m1 * N = " << m2 << std::endl;
+ m2 = m1 / value_type (2.);
+ std::cout << "m1 / 2. = " << m2 << std::endl;
+ m2 = m1 / t;
+ std::cout << "m1 / N = " << m2 << std::endl;
// Some assignments
initialize_matrix (m1);
diff --git a/libs/numeric/ublas/test/test_assignment.cpp b/libs/numeric/ublas/test/test_assignment.cpp
index 894f4512d..c402ac2f8 100644
--- a/libs/numeric/ublas/test/test_assignment.cpp
+++ b/libs/numeric/ublas/test/test_assignment.cpp
@@ -13,77 +13,49 @@
#include <boost/numeric/ublas/matrix_sparse.hpp>
#include <boost/numeric/ublas/io.hpp>
#include <boost/numeric/ublas/matrix.hpp>
-#include "libs/numeric/ublas/test/utils.hpp"
#include <boost/timer.hpp>
#include <ctime>
+#include "common/testhelper.hpp"
+#include "utils.hpp"
using namespace boost::numeric::ublas;
-namespace tans {
-template <class AE>
-typename AE::value_type mean_square(const matrix_expression<AE> &me) {
- typename AE::value_type s(0);
- typename AE::size_type i, j;
- for (i=0; i!= me().size1(); i++) {
- for (j=0; j!= me().size2(); j++) {
- s+= scalar_traits<typename AE::value_type>::type_abs(me()(i,j));
- }
- }
- return s/me().size1()*me().size2();
-}
-
-
-template <class AE>
-typename AE::value_type mean_square(const vector_expression<AE> &ve) {
- // We could have use norm2 here, but ublas' ABS does not support unsigned types.
- typename AE::value_type s(0);
- typename AE::size_type i;
- for (i=0; i!= ve().size(); i++) {
- s+=scalar_traits<typename AE::value_type>::type_abs(ve()(i));
- }
- return s/ve().size();
-}
-const double TOL=0.0;
-
-}
-
template <class V>
bool test_vector() {
bool pass = true;
- using namespace tans;
V a(3), ra(3);
a <<= 1, 2, 3;
ra(0) = 1; ra(1) = 2; ra(2) = 3;
- pass &= (mean_square(a-ra)<=TOL);
+ pass &= compare_to(a, ra);
V b(7), rb(7);
b<<= a, 10, a;
rb(0) = 1; rb(1) = 2; rb(2) = 3; rb(3)=10, rb(4)= 1; rb(5)=2; rb(6)=3;
- pass &= (mean_square(b-rb)<=TOL);
+ pass &= compare_to(b, rb);
{
V c(6), rc(6);
c <<= 1, move(2), 3 ,4, 5, move(-5), 10, 10;
rc(0) = 1; rc(1) = 10; rc(2) = 10; rc(3) = 3; rc(4) = 4; rc(5) = 5;
- pass &= (mean_square(c-rc)<=TOL);
+ pass &= compare_to(c, rc);
V d(6), rd(6);
d <<= 1, move_to(3), 3 ,4, 5, move_to(1), 10, 10;
rd(0) = 1; rd(1) = 10; rd(2) = 10; rd(3) = 3; rd(4) = 4; rd(5) = 5;
- pass &= (mean_square(d-rd)<=TOL);
+ pass &= compare_to(d, rd);
}
{
V c(6), rc(6);
c <<= 1, move<2>(), 3 ,4, 5, move<-5>(), 10, 10;
rc(0) = 1; rc(1) = 10; rc(2) = 10; rc(3) = 3; rc(4) = 4; rc(5) = 5;
- pass &= (mean_square(c-rc)<=TOL);
+ pass &= compare_to(c, rc);
V d(6), rd(6);
d <<= 1, move_to<3>(), 3 ,4, 5, move_to<1>(), 10, 10;
rd(0) = 1; rd(1) = 10; rd(2) = 10; rd(3) = 3; rd(4) = 4; rd(5) = 5;
- pass &= (mean_square(d-rd)<=TOL);
+ pass &= compare_to(d, rd);
}
@@ -93,7 +65,7 @@ bool test_vector() {
V fa(3); fa<<= 1, 2, 3;
f <<= fill_policy::index_plus_assign(), fa;
rf <<= 6,7,8, 5, 5, 5;
- pass &= (mean_square(f-rf)<=TOL);
+ pass &= compare_to(f, rf);
}
{
@@ -102,7 +74,7 @@ bool test_vector() {
V fa(3); fa<<= 1, 2, 3;
f <<= fill_policy::index_minus_assign(), fa;
rf <<= 4,3,2, 5, 5, 5;
- pass &= (mean_square(f-rf)<=TOL);
+ pass &= compare_to(f, rf);
}
return pass;
@@ -111,32 +83,31 @@ bool test_vector() {
template <class V>
bool test_vector_sparse_push_back() {
bool pass = true;
- using namespace tans;
V a(3), ra(3);
a <<= fill_policy::sparse_push_back(), 1, 2, 3;
ra(0) = 1; ra(1) = 2; ra(2) = 3;
- pass &= (mean_square(a-ra)<=TOL);
+ pass &= compare_to(a, ra);
V b(7), rb(7);
b<<= fill_policy::sparse_push_back(), a, 10, a;
rb(0) = 1; rb(1) = 2; rb(2) = 3; rb(3)=10, rb(4)= 1; rb(5)=2; rb(6)=3;
- pass &= (mean_square(b-rb)<=TOL);
+ pass &= compare_to(b, rb);
V c(6), rc(6);
c <<= fill_policy::sparse_push_back(), 1, move(2), 3 ,4, 5; // Move back (i.e. negative is dangerous for push_back)
rc(0) = 1; rc(1) = 0; rc(2) = 0; rc(3) = 3; rc(4) = 4; rc(5) = 5;
- pass &= (mean_square(c-rc)<=TOL);
+ pass &= compare_to(c, rc);
V d(6), rd(6);
d <<= fill_policy::sparse_push_back(), 1, move_to(3), 3 ,4, 5; // Move back (i.e. before current index is dangerous for push_back)
rd(0) = 1; rd(1) = 0; rd(2) = 0; rd(3) = 3; rd(4) = 4; rd(5) = 5;
- pass &= (mean_square(d-rd)<=TOL);
+ pass &= compare_to(d, rd);
V e(6), re(6);
e <<= fill_policy::sparse_push_back(), 1, move_to(3), 3 ,4, 5, fill_policy::sparse_insert(), move_to(1), 10, 10; // If you want to move back, use this
re(0) = 1; re(1) = 10; re(2) = 10; re(3) = 3; re(4) = 4; re(5) = 5;
- pass &= (mean_square(e-re)<=TOL);
+ pass &= compare_to(e, re);
return pass;
}
@@ -145,28 +116,27 @@ bool test_vector_sparse_push_back() {
template <class V>
bool test_vector_sparse_insert() {
bool pass = true;
- using namespace tans;
V a(3), ra(3);
a <<= fill_policy::sparse_insert(), 1, 2, 3;
ra(0) = 1; ra(1) = 2; ra(2) = 3;
- pass &= (mean_square(a-ra)<=TOL);
+ pass &= compare_to(a, ra);
V b(7), rb(7);
b<<= fill_policy::sparse_insert(), a, 10, a;
rb(0) = 1; rb(1) = 2; rb(2) = 3; rb(3)=10, rb(4)= 1; rb(5)=2; rb(6)=3;
- pass &= (mean_square(b-rb)<=TOL);
+ pass &= compare_to(b, rb);
V c(6), rc(6);
c <<= fill_policy::sparse_insert(), 1, move(2), 3 ,4, 5, move(-5), 10, 10; // Move back (i.e. negative is dangerous for sparse)
rc(0) = 1; rc(1) = 10; rc(2) = 10; rc(3) = 3; rc(4) = 4; rc(5) = 5;
- pass &= (mean_square(c-rc)<=TOL);
+ pass &= compare_to(c, rc);
V d(6), rd(6);
d <<= fill_policy::sparse_insert(), 1, move_to(3), 3 ,4, 5, move_to(1), 10, 10; // Move back (i.e.before is dangerous for sparse)
rd(0) = 1; rd(1) = 10; rd(2) = 10; rd(3) = 3; rd(4) = 4; rd(5) = 5;
- pass &= (mean_square(d-rd)<=TOL);
+ pass &= compare_to(d, rd);
return pass;
@@ -176,14 +146,13 @@ bool test_vector_sparse_insert() {
template <class V>
bool test_matrix() {
bool pass = true;
- using namespace tans;
V A(3,3), RA(3,3);
A <<= 1, 2, 3, 4, 5, 6, 7, 8, 9;
RA(0,0)= 1; RA(0,1)=2; RA(0,2)=3;
RA(1,0)= 4; RA(1,1)=5; RA(1,2)=6;
RA(2,0)= 7; RA(2,1)=8; RA(2,2)=9;
- pass &= (mean_square(A-RA)<=TOL);
+ pass &= compare_to(A, RA);
{
V B(3,3), RB(3,3);
@@ -191,7 +160,7 @@ bool test_matrix() {
b<<= 4,5,6;
B<<= 1, 2, 3, b, 7, project(b, range(1,3));
RB<<=1, 2, 3, 4, 5, 6, 7, 5, 6; // If the first worked we can now probably use it.
- pass &= (mean_square(B-RB)<=TOL);
+ pass &= compare_to(B, RB);
}
{
@@ -200,7 +169,7 @@ bool test_matrix() {
b<<= 4,5,6;
B<<= move(1,0), b, move_to(0,0), 1, 2, 3, move(1,0), 7, project(b, range(1,3));
RB<<=1, 2, 3, 4, 5, 6, 7, 5, 6;
- pass &= (mean_square(B-RB)<=TOL);
+ pass &= compare_to(B, RB);
}
{
@@ -209,7 +178,7 @@ bool test_matrix() {
b<<= 1, 2, 3, 4, 5, 6, 7, 8, 9;
B<<=b;
RB<<=1, 2, 3, 4, 5, 6, 7, 8, 9;
- pass &= (mean_square(B-RB)<=TOL);
+ pass &= compare_to(B, RB);
}
{
@@ -223,7 +192,7 @@ bool test_matrix() {
4,5,4,5,
2,3,2,3,
4,5,4,5;
- pass &= (mean_square(B-RB)<=TOL);
+ pass &= compare_to(B, RB);
}
{
@@ -236,7 +205,7 @@ bool test_matrix() {
4,5,0,0,
0,0,2,3,
0,0,4,5;
- pass &= (mean_square(B-RB)<=TOL);
+ pass &= compare_to(B, RB);
}
{
@@ -249,7 +218,7 @@ bool test_matrix() {
4,5,0,0,
0,0,2,3,
0,0,4,5;
- pass &= (mean_square(B-RB)<=TOL);
+ pass &= compare_to(B, RB);
}
{
@@ -262,7 +231,7 @@ bool test_matrix() {
0,2,3,0,
0,4,5,0,
0,0,0,0;
- pass &= (mean_square(B-RB)<=TOL);
+ pass &= compare_to(B, RB);
}
{
@@ -273,7 +242,7 @@ bool test_matrix() {
1,2,0,0,
4,5,0,0,
0,0,0,0;
- pass &= (mean_square(B-RB)<=TOL);
+ pass &= compare_to(B, RB);
}
{
@@ -284,7 +253,7 @@ bool test_matrix() {
0,3,5,0,
0,6,0,0,
0,0,0,0;
- pass &= (mean_square(B-RB)<=TOL);
+ pass &= compare_to(B, RB);
}
{
@@ -295,7 +264,7 @@ bool test_matrix() {
0,3,0,0,
0,0,0,0,
4,5,0,0;
- pass &= (mean_square(B-RB)<=TOL);
+ pass &= compare_to(B, RB);
}
{
@@ -306,7 +275,7 @@ bool test_matrix() {
0,3,0,0,
4,5,6,7,
8,0,0,0;
- pass &= (mean_square(B-RB)<=TOL);
+ pass &= compare_to(B, RB);
}
{
@@ -317,7 +286,7 @@ bool test_matrix() {
0,3,0,0,
4,5,6,7,
8,9,0,0;
- pass &= (mean_square(B-RB)<=TOL);
+ pass &= compare_to(B, RB);
}
{
@@ -330,7 +299,7 @@ bool test_matrix() {
1,2,3,1,
1,4,5,1,
1,1,1,1;
- pass &= (mean_square(B-RB)<=TOL);
+ pass &= compare_to(B, RB);
}
{
@@ -343,7 +312,7 @@ bool test_matrix() {
5,4,3,5,
5,2,1,5,
5,5,5,5;
- pass &= (mean_square(B-RB)<=TOL);
+ pass &= compare_to(B, RB);
}
@@ -353,14 +322,13 @@ bool test_matrix() {
template <class V>
bool test_matrix_sparse_push_back() {
bool pass = true;
- using namespace tans;
V A(3,3), RA(3,3);
A <<= fill_policy::sparse_push_back(), 1, 2, 3, 4, 5, 6, 7, 8, 9;
RA(0,0)= 1; RA(0,1)=2; RA(0,2)=3;
RA(1,0)= 4; RA(1,1)=5; RA(1,2)=6;
RA(2,0)= 7; RA(2,1)=8; RA(2,2)=9;
- pass &= (mean_square(A-RA)<=TOL);
+ pass &= compare_to(A, RA);
{
V B(3,3), RB(3,3);
@@ -368,7 +336,7 @@ bool test_matrix_sparse_push_back() {
b<<= 4,5,6;
B<<=fill_policy::sparse_push_back(), 1, 2, 3, b, 7, project(b, range(1,3));
RB<<= 1, 2, 3, 4, 5, 6, 7, 5, 6; // If the first worked we can now probably use it.
- pass &= (mean_square(B-RB)<=TOL);
+ pass &= compare_to(B, RB);
}
{
@@ -377,7 +345,7 @@ bool test_matrix_sparse_push_back() {
b<<= 4,5,6;
B<<=fill_policy::sparse_push_back(), move(1,0), b, fill_policy::sparse_insert(), move_to(0,0), 1, 2, 3, move(1,0), 7, project(b, range(1,3));
RB<<=1, 2, 3, 4, 5, 6, 7, 5, 6;
- pass &= (mean_square(B-RB)<=TOL);
+ pass &= compare_to(B, RB);
}
{
@@ -386,7 +354,7 @@ bool test_matrix_sparse_push_back() {
b<<= 1, 2, 3, 4, 5, 6, 7, 8, 9;
B<<=b;
RB<<=1, 2, 3, 4, 5, 6, 7, 8, 9;
- pass &= (mean_square(B-RB)<=TOL);
+ pass &= compare_to(B, RB);
}
@@ -401,7 +369,7 @@ bool test_matrix_sparse_push_back() {
4,5,4,5,
2,3,2,3,
4,5,4,5;
- pass &= (mean_square(B-RB)<=TOL);
+ pass &= compare_to(B, RB);
}
@@ -414,7 +382,7 @@ bool test_matrix_sparse_push_back() {
4,5,0,0,
0,0,2,3,
0,0,4,5;
- pass &= (mean_square(B-RB)<=TOL);
+ pass &= compare_to(B, RB);
}
{
@@ -426,7 +394,7 @@ bool test_matrix_sparse_push_back() {
0,2,3,0,
0,4,5,0,
0,0,0,0;
- pass &= (mean_square(B-RB)<=TOL);
+ pass &= compare_to(B, RB);
}
{
@@ -437,7 +405,7 @@ bool test_matrix_sparse_push_back() {
1,2,0,0,
4,5,0,0,
0,0,0,0;
- pass &= (mean_square(B-RB)<=TOL);
+ pass &= compare_to(B, RB);
}
// The next will not work with sparse push_back because elements that are prior to the ones already in are attempted to be added
/*
@@ -449,7 +417,7 @@ bool test_matrix_sparse_push_back() {
0,3,5,0,
0,6,0,0,
0,0,0,0;
- pass &= (mean_square(B-RB)<=TOL);
+ pass &= compare_to(B, RB);
}
*/
{
@@ -460,7 +428,7 @@ bool test_matrix_sparse_push_back() {
0,3,0,0,
0,0,0,0,
4,5,0,0;
- pass &= (mean_square(B-RB)<=TOL);
+ pass &= compare_to(B, RB);
}
{
@@ -471,7 +439,7 @@ bool test_matrix_sparse_push_back() {
0,3,0,0,
4,5,6,7,
8,0,0,0;
- pass &= (mean_square(B-RB)<=TOL);
+ pass &= compare_to(B, RB);
}
// The next will not work with sparse push_back because elements that are prior to the ones already in are attempted to be added
@@ -484,7 +452,7 @@ bool test_matrix_sparse_push_back() {
0,3,0,0,
4,5,6,7,
8,9,0,0;
- pass &= (mean_square(B-RB)<=TOL);
+ pass &= compare_to(B, RB);
}
*/
return pass;
@@ -493,14 +461,13 @@ bool test_matrix_sparse_push_back() {
template <class V>
bool test_matrix_sparse_insert() {
bool pass = true;
- using namespace tans;
V A(3,3), RA(3,3);
A <<= fill_policy::sparse_insert(), 1, 2, 3, 4, 5, 6, 7, 8, 9;
RA(0,0)= 1; RA(0,1)=2; RA(0,2)=3;
RA(1,0)= 4; RA(1,1)=5; RA(1,2)=6;
RA(2,0)= 7; RA(2,1)=8; RA(2,2)=9;
- pass &= (mean_square(A-RA)<=TOL);
+ pass &= compare_to(A, RA);
{
V B(3,3), RB(3,3);
@@ -508,7 +475,7 @@ bool test_matrix_sparse_insert() {
b<<= 4,5,6;
B<<=fill_policy::sparse_insert(), 1, 2, 3, b, 7, project(b, range(1,3));
RB<<=1, 2, 3, 4, 5, 6, 7, 5, 6; // If the first worked we can now probably use it.
- pass &= (mean_square(B-RB)<=TOL);
+ pass &= compare_to(B, RB);
}
{
@@ -517,7 +484,7 @@ bool test_matrix_sparse_insert() {
b<<= 4,5,6;
B<<=fill_policy::sparse_insert(), move(1,0), b, fill_policy::sparse_insert(), move_to(0,0), 1, 2, 3, move(1,0), 7, project(b, range(1,3));
RB<<=1, 2, 3, 4, 5, 6, 7, 5, 6;
- pass &= (mean_square(B-RB)<=TOL);
+ pass &= compare_to(B, RB);
}
{
@@ -526,7 +493,7 @@ bool test_matrix_sparse_insert() {
b<<= 1, 2, 3, 4, 5, 6, 7, 8, 9;
B<<=b;
RB<<=1, 2, 3, 4, 5, 6, 7, 8, 9;
- pass &= (mean_square(B-RB)<=TOL);
+ pass &= compare_to(B, RB);
}
@@ -540,7 +507,7 @@ bool test_matrix_sparse_insert() {
4,5,4,5,
2,3,2,3,
4,5,4,5;
- pass &= (mean_square(B-RB)<=TOL);
+ pass &= compare_to(B, RB);
}
@@ -553,7 +520,7 @@ bool test_matrix_sparse_insert() {
4,5,0,0,
0,0,2,3,
0,0,4,5;
- pass &= (mean_square(B-RB)<=TOL);
+ pass &= compare_to(B, RB);
}
{
@@ -565,7 +532,7 @@ bool test_matrix_sparse_insert() {
0,2,3,0,
0,4,5,0,
0,0,0,0;
- pass &= (mean_square(B-RB)<=TOL);
+ pass &= compare_to(B, RB);
}
{
@@ -576,7 +543,7 @@ bool test_matrix_sparse_insert() {
1,2,0,0,
4,5,0,0,
0,0,0,0;
- pass &= (mean_square(B-RB)<=TOL);
+ pass &= compare_to(B, RB);
}
{
@@ -587,7 +554,7 @@ bool test_matrix_sparse_insert() {
0,3,5,0,
0,6,0,0,
0,0,0,0;
- pass &= (mean_square(B-RB)<=TOL);
+ pass &= compare_to(B, RB);
}
{
@@ -598,7 +565,7 @@ bool test_matrix_sparse_insert() {
0,3,0,0,
0,0,0,0,
4,5,0,0;
- pass &= (mean_square(B-RB)<=TOL);
+ pass &= compare_to(B, RB);
}
{
@@ -609,7 +576,7 @@ bool test_matrix_sparse_insert() {
0,3,0,0,
4,5,6,7,
8,0,0,0;
- pass &= (mean_square(B-RB)<=TOL);
+ pass &= compare_to(B, RB);
}
{
@@ -620,7 +587,7 @@ bool test_matrix_sparse_insert() {
0,3,0,0,
4,5,6,7,
8,9,0,0;
- pass &= (mean_square(B-RB)<=TOL);
+ pass &= compare_to(B, RB);
}
return pass;
diff --git a/libs/numeric/ublas/test/test_banded_storage_layout.cpp b/libs/numeric/ublas/test/test_banded_storage_layout.cpp
index f2d33f99a..6b4e68a7a 100644
--- a/libs/numeric/ublas/test/test_banded_storage_layout.cpp
+++ b/libs/numeric/ublas/test/test_banded_storage_layout.cpp
@@ -9,7 +9,7 @@
using namespace boost::numeric::ublas;
-int expected_index( int index, column_major tag ) {
+int expected_index( int index, column_major ) {
// this is the data shown on http://www.netlib.org/lapack/lug/node124.html
// read column-by-column, aka column_major
int mapping[] = { 0, 11, 21, 31, 12, 22, 32, 42, 23, 33, 43, 53, 34, 44, 54, 0, 45, 55, 0, 0 };
@@ -17,32 +17,32 @@ int expected_index( int index, column_major tag ) {
}
-int expected_index( int index, row_major tag ) {
+int expected_index( int index, row_major ) {
// this is the data shown on http://www.netlib.org/lapack/lug/node124.html
// read row-by-row, aka row_major
int mapping[] = { 0, 0, 11, 12, 0, 21, 22, 23, 31, 32, 33, 34, 42, 43, 44, 45, 53, 54, 55, 0 };
return mapping[ index ];
}
-int expected_index_6_by_5( int index, column_major tag ) {
+int expected_index_6_by_5( int index, column_major ) {
// read column-by-column, aka column_major
int mapping[] = { 0, 11, 21, 31, 12, 22, 32, 42, 23, 33, 43, 53, 34, 44, 54, 64, 45, 55, 65, 0 };
return mapping[ index ];
}
-int expected_index_6_by_5( int index, row_major tag ) {
+int expected_index_6_by_5( int index, row_major ) {
// read row-by-row, aka row_major
int mapping[] = { 0, 0, 11, 12, 0, 21, 22, 23, 31, 32, 33, 34, 42, 43, 44, 45, 53, 54, 55, 0, 64, 65, 0, 0 };
return mapping[ index ];
}
-int expected_index_5_by_6( int index, column_major tag ) {
+int expected_index_5_by_6( int index, column_major ) {
// read column-by-column, aka column_major
int mapping[] = { 0, 11, 21, 31, 12, 22, 32, 42, 23, 33, 43, 53, 34, 44, 54, 0, 45, 55, 0, 0, 56, 0, 0, 0 };
return mapping[ index ];
}
-int expected_index_5_by_6( int index, row_major tag ) {
+int expected_index_5_by_6( int index, row_major ) {
// read row-by-row, aka row_major
int mapping[] = { 0, 0, 11, 12, 0, 21, 22, 23, 31, 32, 33, 34, 42, 43, 44, 45, 53, 54, 55, 56};
return mapping[ index ];
diff --git a/libs/numeric/ublas/test/test_complex_norms.cpp b/libs/numeric/ublas/test/test_complex_norms.cpp
index dcd37e58d..e923d7087 100644
--- a/libs/numeric/ublas/test/test_complex_norms.cpp
+++ b/libs/numeric/ublas/test/test_complex_norms.cpp
@@ -8,7 +8,7 @@
#include <boost/numeric/ublas/matrix.hpp>
#include <complex>
-#include "libs/numeric/ublas/test/utils.hpp"
+#include "utils.hpp"
using namespace boost::numeric::ublas;
diff --git a/libs/numeric/ublas/test/test_coordinate_matrix_inplace_merge.cpp b/libs/numeric/ublas/test/test_coordinate_matrix_inplace_merge.cpp
index 9a2f8a11f..75d1f708a 100644
--- a/libs/numeric/ublas/test/test_coordinate_matrix_inplace_merge.cpp
+++ b/libs/numeric/ublas/test/test_coordinate_matrix_inplace_merge.cpp
@@ -13,26 +13,14 @@
#include <boost/numeric/ublas/matrix_sparse.hpp>
#include <boost/numeric/ublas/matrix_expression.hpp>
#include <boost/numeric/ublas/io.hpp>
-
-#include "libs/numeric/ublas/test/utils.hpp"
+#include "common/testhelper.hpp"
+#include "utils.hpp"
using std::cout;
using std::endl;
const double TOL = 1e-15;
-template <class AE>
-typename AE::value_type mean_square(const boost::numeric::ublas::matrix_expression<AE> &me) {
- typename AE::value_type s(0);
- typename AE::size_type i, j;
- for (i=0; i!= me().size1(); i++) {
- for (j=0; j!= me().size2(); j++) {
- s += boost::numeric::ublas::scalar_traits<typename AE::value_type>::type_abs(me()(i,j));
- }
- }
- return s/me().size1()*me().size2();
-}
-
template<typename T>
bool check_sortedness(const boost::numeric::ublas::coordinate_matrix<T>& matrix) {
bool result = true;
@@ -90,12 +78,12 @@ BOOST_UBLAS_TEST_DEF( test_coordinate_matrix_inplace_merge_random )
{
bool sorted = check_sortedness(matrix_coord);
- bool identical = mean_square(matrix_coord - matrix_dense) < TOL;
+ bool identical = compare_to(matrix_coord, matrix_dense, TOL);
if (!(sorted && identical)) {
print_entries(size_x, size_y, entries);
}
BOOST_UBLAS_TEST_CHECK( check_sortedness(matrix_coord) );
- BOOST_UBLAS_TEST_CHECK( mean_square(matrix_coord - matrix_dense) < TOL);
+ BOOST_UBLAS_TEST_CHECK( compare_to(matrix_coord, matrix_dense, TOL) );
}
for (size_t entry = 0; entry < nr_entries; ++ entry) {
@@ -109,7 +97,7 @@ BOOST_UBLAS_TEST_DEF( test_coordinate_matrix_inplace_merge_random )
{
bool sorted = check_sortedness(matrix_coord);
- bool identical = mean_square(matrix_coord - matrix_dense) < TOL;
+ bool identical = compare_to(matrix_coord, matrix_dense, TOL);
if (!(sorted && identical)) {
print_entries(size_x, size_y, entries);
}
diff --git a/libs/numeric/ublas/test/test_coordinate_matrix_sort.cpp b/libs/numeric/ublas/test/test_coordinate_matrix_sort.cpp
index bf927fc51..d07abb3b1 100644
--- a/libs/numeric/ublas/test/test_coordinate_matrix_sort.cpp
+++ b/libs/numeric/ublas/test/test_coordinate_matrix_sort.cpp
@@ -11,7 +11,7 @@
#include<boost/numeric/ublas/matrix_sparse.hpp>
#include<boost/numeric/ublas/io.hpp>
-#include "libs/numeric/ublas/test/utils.hpp"
+#include "utils.hpp"
using std::cout;
using std::endl;
diff --git a/libs/numeric/ublas/test/test_coordinate_vector_inplace_merge.cpp b/libs/numeric/ublas/test/test_coordinate_vector_inplace_merge.cpp
index ae0190311..9994e86ef 100644
--- a/libs/numeric/ublas/test/test_coordinate_vector_inplace_merge.cpp
+++ b/libs/numeric/ublas/test/test_coordinate_vector_inplace_merge.cpp
@@ -13,22 +13,11 @@
#include <boost/numeric/ublas/vector_sparse.hpp>
#include <boost/numeric/ublas/vector_expression.hpp>
#include <boost/numeric/ublas/io.hpp>
-
-#include "libs/numeric/ublas/test/utils.hpp"
+#include "common/testhelper.hpp"
+#include "utils.hpp"
const double TOL = 1e-15;
-
-template <class AE>
-typename AE::value_type mean_square(const boost::numeric::ublas::vector_expression<AE> &me) {
- typename AE::value_type s(0);
- typename AE::size_type i;
- for (i=0; i!= me().size(); i++) {
- s += boost::numeric::ublas::scalar_traits<typename AE::value_type>::type_abs(me()(i));
- }
- return s/me().size();
-}
-
template<typename T>
bool check_sortedness(const boost::numeric::ublas::coordinate_vector<T>& vector) {
bool result = true;
@@ -79,12 +68,12 @@ BOOST_UBLAS_TEST_DEF( test_coordinate_vector_inplace_merge_random )
{
bool sorted = check_sortedness(vector_coord);
- bool identical = mean_square(vector_coord - vector_dense) < TOL;
+ bool identical = compare_to(vector_coord, vector_dense, TOL);
if (!(sorted && identical)) {
print_entries(size_vec, entries);
}
BOOST_UBLAS_TEST_CHECK( check_sortedness(vector_coord) );
- BOOST_UBLAS_TEST_CHECK( mean_square(vector_coord - vector_dense) < TOL);
+ BOOST_UBLAS_TEST_CHECK( compare_to(vector_coord, vector_dense, TOL) );
}
for (size_t entry = 0; entry < nr_entries; ++ entry) {
@@ -97,7 +86,7 @@ BOOST_UBLAS_TEST_DEF( test_coordinate_vector_inplace_merge_random )
{
bool sorted = check_sortedness(vector_coord);
- bool identical = mean_square(vector_coord - vector_dense) < TOL;
+ bool identical = compare_to(vector_coord, vector_dense, TOL);
if (!(sorted && identical)) {
print_entries(size_vec, entries);
}
diff --git a/libs/numeric/ublas/test/test_fixed_containers.cpp b/libs/numeric/ublas/test/test_fixed_containers.cpp
index bb5cba897..23a63827e 100644
--- a/libs/numeric/ublas/test/test_fixed_containers.cpp
+++ b/libs/numeric/ublas/test/test_fixed_containers.cpp
@@ -108,8 +108,8 @@ bool test_vector( std::string type_name)
for ( std::size_t i = 0; i!= v1.size(); i++)
{
- v1( i ) = 3.14159*i*i;
- v ( i ) = 3.14159*i*i;
+ v1( i ) = 3.14159*i;
+ v ( i ) = 3.14159*i;
}
pass &= compare( v1, v );
@@ -140,7 +140,7 @@ bool test_vector( std::string type_name)
try {
T a;
a=v1( 100 );
- (void) a ;
+ BOOST_UBLAS_NOT_USED( a );
} catch ( bad_index &e) {
std::cout << " Caught (GOOD): " << e.what() << endl;
@@ -250,7 +250,7 @@ bool test_matrix( std::string type_name)
try {
T a;
a=m1( 100, 100 );
- (void) a ;
+ BOOST_UBLAS_NOT_USED( a );
} catch ( bad_index &e) {
std::cout << " Caught (GOOD): " << e.what() << endl;
diff --git a/libs/numeric/ublas/test/test_matrix_vector.cpp b/libs/numeric/ublas/test/test_matrix_vector.cpp
index 8b9a11775..a7e8796cd 100644
--- a/libs/numeric/ublas/test/test_matrix_vector.cpp
+++ b/libs/numeric/ublas/test/test_matrix_vector.cpp
@@ -10,37 +10,11 @@
#include <boost/numeric/ublas/matrix_sparse.hpp>
#include <boost/numeric/ublas/matrix.hpp>
#include <boost/numeric/ublas/matrix_vector.hpp>
-
+#include "common/testhelper.hpp"
#include "utils.hpp"
using namespace boost::numeric::ublas;
-namespace tans {
-template <class AE>
-typename AE::value_type mean_square(const matrix_expression<AE> &me) {
- typename AE::value_type s(0);
- typename AE::size_type i, j;
- for (i=0; i!= me().size1(); i++) {
- for (j=0; j!= me().size2(); j++) {
- s+= scalar_traits<typename AE::value_type>::type_abs(me()(i,j));
- }
- }
- return s/me().size1()*me().size2();
-}
-
-template <class AE>
-typename AE::value_type mean_square(const vector_expression<AE> &ve) {
- // We could have use norm2 here, but ublas' ABS does not support unsigned types.
- typename AE::value_type s(0);
- typename AE::size_type i;
- for (i=0; i!= ve().size(); i++) {
- s+=scalar_traits<typename AE::value_type>::type_abs(ve()(i));
- }
- return s/ve().size();
-}
-const double TOL=0.0;
-
-}
template <class Vector, class StorageCategory>
void guardSparsePreserveResize( Vector &vec, typename Vector::size_type new_size, StorageCategory) // Because sparse matrices don't have preserve data implemented
@@ -58,7 +32,6 @@ void guardSparsePreserveResize( Vector &vec, typename Vector::size_type new_size
template <class Matrix>
bool test_matrix_row_facade() {
bool pass = true;
- using namespace tans;
typedef matrix_row_vector<Matrix> RowVector;
@@ -97,7 +70,7 @@ bool test_matrix_row_facade() {
rows(i) = matrix_row<Matrix>(RA, i);
}
- pass &= (mean_square(A-RA)<=TOL);
+ pass &= compare_to(A, RA);
}
{ // Testing operator[]
@@ -114,7 +87,7 @@ bool test_matrix_row_facade() {
rows[i] = matrix_row<Matrix>(RA, i);
}
- pass &= (mean_square(A-RA)<=TOL);
+ pass &= compare_to(A, RA);
}
{ // Testing operator[] const
@@ -128,7 +101,7 @@ bool test_matrix_row_facade() {
7, 8, 9;
for(typename Matrix::size_type i = 0; i < RA.size1(); i++) {
- pass &= (mean_square(rows[i]-matrix_row<Matrix>(RA, i))<=TOL);
+ pass &= compare_to(rows[i], matrix_row<Matrix>(RA, i));
}
}
@@ -146,7 +119,7 @@ bool test_matrix_row_facade() {
for(typename RowVector::const_iterator iter = rows.begin();
iter != rows.end();
iter++) {
- pass &= (mean_square(*iter-matrix_row<Matrix>(RA, i++))<=TOL);
+ pass &= compare_to(*iter, matrix_row<Matrix>(RA, i++));
}
}
@@ -167,7 +140,7 @@ bool test_matrix_row_facade() {
*iter = matrix_row<Matrix>(RA, i++);
}
- pass &= (mean_square(A-RA)<=TOL);
+ pass &= compare_to(A, RA);
}
{ // Testing reserse iterator
@@ -187,7 +160,7 @@ bool test_matrix_row_facade() {
*iter = matrix_row<Matrix>(RA, --i);
}
- pass &= (mean_square(A-RA)<=TOL);
+ pass &= compare_to(A, RA);
}
{ // Testing const reverse iterator
@@ -204,7 +177,7 @@ bool test_matrix_row_facade() {
for(typename RowVector::const_reverse_iterator iter = rows.rbegin();
iter != rows.rend();
iter++) {
- pass &= (mean_square(*iter-matrix_row<Matrix>(RA, --i))<=TOL);
+ pass &= compare_to(*iter, matrix_row<Matrix>(RA, --i));
}
}
@@ -215,7 +188,6 @@ bool test_matrix_row_facade() {
template <class Matrix>
bool test_matrix_column_facade() {
bool pass = true;
- using namespace tans;
typedef matrix_column_vector<Matrix> ColumnVector;
@@ -252,7 +224,7 @@ bool test_matrix_column_facade() {
columns(i) = matrix_column<Matrix>(RA, i);
}
- pass &= (mean_square(A-RA)<=TOL);
+ pass &= compare_to(A, RA);
}
{ // Testing operator[]
@@ -269,7 +241,7 @@ bool test_matrix_column_facade() {
columns[i] = matrix_column<Matrix>(RA, i);
}
- pass &= (mean_square(A-RA)<=TOL);
+ pass &= compare_to(A, RA);
}
{ // Testing operator[] const
@@ -283,7 +255,7 @@ bool test_matrix_column_facade() {
7, 8, 9;
for(typename Matrix::size_type i = 0; i < RA.size2(); i++) {
- pass &= (mean_square(columns[i]-matrix_column<Matrix>(RA, i))<=TOL);
+ pass &= compare_to(columns[i], matrix_column<Matrix>(RA, i));
}
}
@@ -304,7 +276,7 @@ bool test_matrix_column_facade() {
*iter = matrix_column<Matrix>(RA, i++);
}
- pass &= (mean_square(A-RA)<=TOL);
+ pass &= compare_to(A, RA);
}
{ // Testing const iterator
@@ -321,7 +293,7 @@ bool test_matrix_column_facade() {
for(typename ColumnVector::const_iterator iter = columns.begin();
iter != columns.end();
iter++) {
- pass &= (mean_square(*iter-matrix_column<Matrix>(RA, i++))<=TOL);
+ pass &= compare_to(*iter, matrix_column<Matrix>(RA, i++));
}
}
@@ -342,7 +314,7 @@ bool test_matrix_column_facade() {
*iter = matrix_column<Matrix>(RA, --i);
}
- pass &= (mean_square(A-RA)<=TOL);
+ pass &= compare_to(A, RA);
}
{ // Testing const reverse iterator
@@ -359,7 +331,7 @@ bool test_matrix_column_facade() {
for(typename ColumnVector::const_reverse_iterator iter = columns.rbegin();
iter != columns.rend();
iter++) {
- pass &= (mean_square(*iter-matrix_column<Matrix>(RA, --i))<=TOL);
+ pass &= compare_to(*iter, matrix_column<Matrix>(RA, --i));
}
}
diff --git a/libs/numeric/ublas/test/test_ticket7296.cpp b/libs/numeric/ublas/test/test_ticket7296.cpp
index 05c042b6b..65fdb4ba6 100644
--- a/libs/numeric/ublas/test/test_ticket7296.cpp
+++ b/libs/numeric/ublas/test/test_ticket7296.cpp
@@ -17,7 +17,7 @@
#include <boost/numeric/ublas/vector.hpp>
#include <complex>
#include <cstddef>
-#include <libs/numeric/ublas/test/utils.hpp>
+#include "utils.hpp"
namespace ublas = boost::numeric::ublas;
diff --git a/libs/numeric/ublas/test/test_triangular.cpp b/libs/numeric/ublas/test/test_triangular.cpp
index 9a9bf48a1..c6cba9134 100644
--- a/libs/numeric/ublas/test/test_triangular.cpp
+++ b/libs/numeric/ublas/test/test_triangular.cpp
@@ -1,4 +1,6 @@
#include <iostream>
+#include <stdlib.h>
+#include <cmath>
#include <boost/numeric/ublas/vector.hpp>
#include <boost/numeric/ublas/matrix.hpp>
@@ -17,7 +19,7 @@ double diff(const mat& A, const vec& x, const vec& b) {
for (typename vec::size_type i=0; i<temp.size(); ++i) {
result += temp(i)*temp(i);
}
- return sqrt(result);
+ return std::sqrt(result);
}
template<class mat, class vec>
@@ -45,10 +47,10 @@ int main() {
std::cerr << "Constructing..." << std::endl;
for (int i=0; i<n; ++i) {
- b(i) = rand() % 10;
- double main = -10 + rand() % 20 ;
+ b(i) = std::rand() % 10;
+ double main = -10 + std::rand() % 20 ;
if (main == 0) main+=1;
- double side = -10 + rand() % 20 ;
+ double side = -10 + std::rand() % 20 ;
if (i-1>=0) {
mat_row_low(i, i-1) = side;
}
diff --git a/libs/numeric/ublas/test/triangular_access.cpp b/libs/numeric/ublas/test/triangular_access.cpp
index 9777632be..c2c9b7733 100644
--- a/libs/numeric/ublas/test/triangular_access.cpp
+++ b/libs/numeric/ublas/test/triangular_access.cpp
@@ -117,7 +117,7 @@ test_iterator3( const MAT & A ) {
}
-int main (int argc, char * argv[]) {
+int main () {
using namespace boost::numeric::ublas;
typedef double VALUE_TYPE;
diff --git a/libs/numeric/ublas/test/triangular_layout.cpp b/libs/numeric/ublas/test/triangular_layout.cpp
index 8bd27faa2..815643d37 100644
--- a/libs/numeric/ublas/test/triangular_layout.cpp
+++ b/libs/numeric/ublas/test/triangular_layout.cpp
@@ -12,7 +12,7 @@
using namespace std;
namespace ublas = boost::numeric::ublas;
-int main(int argc, char* argv[])
+int main()
{
int sz = 4;
ublas::symmetric_matrix<int, ublas::upper, ublas::column_major> UpCol (sz, sz);
diff --git a/libs/numeric/ublas/test/utils.hpp b/libs/numeric/ublas/test/utils.hpp
index 6eb52b029..c1b69b92a 100644
--- a/libs/numeric/ublas/test/utils.hpp
+++ b/libs/numeric/ublas/test/utils.hpp
@@ -64,6 +64,8 @@
#include <limits>
#include <stdexcept>
+#define BOOST_UBLAS_NOT_USED(x) (void)(x)
+
namespace boost { namespace numeric { namespace ublas { namespace test { namespace detail { namespace /*<unnamed>*/ {
using ::std::abs;