From 8132ee39089a47efa477599b81eaf571f4af3c45 Mon Sep 17 00:00:00 2001 From: Benoit Jacob Date: Thu, 12 Nov 2009 12:39:22 -0500 Subject: * add non-default option to initialize matrices by 0 (useful for porting) * maketests really has to be in test/ --- Eigen/src/Core/Matrix.h | 11 ++++++++++- scripts/CMakeLists.txt | 1 - scripts/maketests.in | 21 --------------------- test/CMakeLists.txt | 2 ++ test/maketests.in | 21 +++++++++++++++++++++ 5 files changed, 33 insertions(+), 23 deletions(-) delete mode 100755 scripts/maketests.in create mode 100755 test/maketests.in diff --git a/Eigen/src/Core/Matrix.h b/Eigen/src/Core/Matrix.h index 17d2f2836..3cd7edfd6 100644 --- a/Eigen/src/Core/Matrix.h +++ b/Eigen/src/Core/Matrix.h @@ -25,6 +25,12 @@ #ifndef EIGEN_MATRIX_H #define EIGEN_MATRIX_H +#ifdef EIGEN_INITIALIZE_MATRICES_BY_ZERO +# define EIGEN_INITIALIZE_BY_ZERO_IF_THAT_OPTION_IS_ENABLED setZero(); +#else +# define EIGEN_INITIALIZE_BY_ZERO_IF_THAT_OPTION_IS_ENABLED +#endif + template (Derived::IsVectorAtCompileTime)> struct ei_conservative_resize_like_impl; /** \class Matrix @@ -427,13 +433,14 @@ class Matrix EIGEN_STRONG_INLINE explicit Matrix() : m_storage() { _check_template_params(); + EIGEN_INITIALIZE_BY_ZERO_IF_THAT_OPTION_IS_ENABLED } #ifndef EIGEN_PARSED_BY_DOXYGEN /** \internal */ Matrix(ei_constructor_without_unaligned_array_assert) : m_storage(ei_constructor_without_unaligned_array_assert()) - { _check_template_params(); } + { _check_template_params(); EIGEN_INITIALIZE_BY_ZERO_IF_THAT_OPTION_IS_ENABLED } #endif /** Constructs a vector or row-vector with given dimension. \only_for_vectors @@ -449,6 +456,7 @@ class Matrix EIGEN_STATIC_ASSERT_VECTOR_ONLY(Matrix) ei_assert(dim > 0); ei_assert(SizeAtCompileTime == Dynamic || SizeAtCompileTime == dim); + EIGEN_INITIALIZE_BY_ZERO_IF_THAT_OPTION_IS_ENABLED } #ifndef EIGEN_PARSED_BY_DOXYGEN @@ -692,6 +700,7 @@ class Matrix ei_assert(rows > 0 && (RowsAtCompileTime == Dynamic || RowsAtCompileTime == rows) && cols > 0 && (ColsAtCompileTime == Dynamic || ColsAtCompileTime == cols)); m_storage.resize(rows*cols,rows,cols); + EIGEN_INITIALIZE_BY_ZERO_IF_THAT_OPTION_IS_ENABLED } template EIGEN_STRONG_INLINE void _init2(const Scalar& x, const Scalar& y, typename ei_enable_if::type* = 0) diff --git a/scripts/CMakeLists.txt b/scripts/CMakeLists.txt index e373d3188..2d40e32ae 100644 --- a/scripts/CMakeLists.txt +++ b/scripts/CMakeLists.txt @@ -1,4 +1,3 @@ -configure_file(maketests.in ${CMAKE_BINARY_DIR}/maketests) configure_file(mctestr.in ${CMAKE_BINARY_DIR}/mctestr) configure_file(debug.in ${CMAKE_BINARY_DIR}/debug) configure_file(release.in ${CMAKE_BINARY_DIR}/release) diff --git a/scripts/maketests.in b/scripts/maketests.in deleted file mode 100755 index f9cafed26..000000000 --- a/scripts/maketests.in +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/bash - -if [ $# == 0 -o $# -ge 3 ] -then - echo "usage: ./maketests regexp [jobs]" - echo " makes tests matching the regexp, with concurrent make jobs" - exit 0 -fi - -TESTSLIST="${cmake_tests_list}" -targets_to_make=`echo "$TESTSLIST" | grep "$1" | sed s/^/test_/g | xargs` - -if [ $# == 1 ] -then - make $targets_to_make -fi - -if [ $# == 2 ] -then - make -j $2 $targets_to_make -fi diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index d0938302f..5cea1a582 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -162,3 +162,5 @@ if(CMAKE_COMPILER_IS_GNUCXX) endif(CMAKE_COMPILER_IS_GNUCXX) ei_add_property(EIGEN_TESTING_SUMMARY "CXX_FLAGS: ${CMAKE_CXX_FLAGS}\n") ei_add_property(EIGEN_TESTING_SUMMARY "Sparse lib flags: ${SPARSE_LIBS}\n") + +configure_file(maketests.in ${CMAKE_BINARY_DIR}/maketests) diff --git a/test/maketests.in b/test/maketests.in new file mode 100755 index 000000000..f9cafed26 --- /dev/null +++ b/test/maketests.in @@ -0,0 +1,21 @@ +#!/bin/bash + +if [ $# == 0 -o $# -ge 3 ] +then + echo "usage: ./maketests regexp [jobs]" + echo " makes tests matching the regexp, with concurrent make jobs" + exit 0 +fi + +TESTSLIST="${cmake_tests_list}" +targets_to_make=`echo "$TESTSLIST" | grep "$1" | sed s/^/test_/g | xargs` + +if [ $# == 1 ] +then + make $targets_to_make +fi + +if [ $# == 2 ] +then + make -j $2 $targets_to_make +fi -- cgit v1.2.3