Fixed the thread pool test

This commit is contained in:
Benoit Steiner 2014-10-10 15:20:37 -07:00
parent 498b7eed25
commit a991f94c0e
4 changed files with 8 additions and 8 deletions

View File

@ -47,8 +47,8 @@
// protected by parenthesis against macro expansion, the min()/max() macros
// are defined here and any not-parenthesized min/max call will cause a
// compiler error.
#define min(A,B) please_protect_your_min_with_parentheses
#define max(A,B) please_protect_your_max_with_parentheses
//#define min(A,B) please_protect_your_min_with_parentheses
//#define max(A,B) please_protect_your_max_with_parentheses
#define FORBIDDEN_IDENTIFIER (this_identifier_is_forbidden_to_avoid_clashes) this_identifier_is_forbidden_to_avoid_clashes
// B0 is defined in POSIX header termios.h

View File

@ -131,7 +131,7 @@ class TensorExecutor<Expression, ThreadPoolDevice, Vectorizable>
const Index numblocks = size / blocksize;
Index i = 0;
vector<std::future<void> > results;
std::vector<std::future<void> > results;
results.reserve(numblocks);
for (int i = 0; i < numblocks; ++i) {
results.push_back(std::async(std::launch::async, &EvalRange<Evaluator, Index>::run, &evaluator, i*blocksize, (i+1)*blocksize));

View File

@ -122,5 +122,5 @@ if(EIGEN_TEST_CXX11)
# ei_add_test(cxx11_tensor_shuffling "-std=c++0x")
ei_add_test(cxx11_tensor_striding "-std=c++0x")
# ei_add_test(cxx11_tensor_device "-std=c++0x")
# ei_add_test(cxx11_tensor_thread_pool "-std=c++0x")
ei_add_test(cxx11_tensor_thread_pool "-std=c++0x")
endif()

View File

@ -17,9 +17,9 @@ using Eigen::Tensor;
void test_cxx11_tensor_thread_pool()
{
Eigen::Tensor<float, 3> in1(Eigen::array<ptrdiff_t, 3>(2,3,7));
Eigen::Tensor<float, 3> in2(Eigen::array<ptrdiff_t, 3>(2,3,7));
Eigen::Tensor<float, 3> out(Eigen::array<ptrdiff_t, 3>(2,3,7));
Eigen::Tensor<float, 3> in1(2,3,7);
Eigen::Tensor<float, 3> in2(2,3,7);
Eigen::Tensor<float, 3> out(2,3,7);
in1.setRandom();
in2.setRandom();
@ -30,7 +30,7 @@ void test_cxx11_tensor_thread_pool()
for (int i = 0; i < 2; ++i) {
for (int j = 0; j < 3; ++j) {
for (int k = 0; k < 7; ++k) {
VERIFY_IS_APPROX(out(Eigen::array<ptrdiff_t, 3>(i,j,k)), in1(Eigen::array<ptrdiff_t, 3>(i,j,k)) + in2(Eigen::array<ptrdiff_t, 3>(i,j,k)) * 3.14f);
VERIFY_IS_APPROX(out(i,j,k), in1(i,j,k) + in2(i,j,k) * 3.14f);
}
}
}