diff --git a/unsupported/Eigen/CXX11/src/Tensor/TensorReduction.h b/unsupported/Eigen/CXX11/src/Tensor/TensorReduction.h index 9875601ba..00f870328 100644 --- a/unsupported/Eigen/CXX11/src/Tensor/TensorReduction.h +++ b/unsupported/Eigen/CXX11/src/Tensor/TensorReduction.h @@ -254,7 +254,7 @@ struct FullReducer { } else { const Index blocksize = std::floor(static_cast(num_coeffs) / num_threads); const unsigned int numblocks = blocksize > 0 ? static_cast(num_coeffs / blocksize) : 0; - eigen_assert(num_coeffs >= numblocks * blocksize); + eigen_assert(num_coeffs >= static_cast(numblocks) * blocksize); Barrier barrier(numblocks); MaxSizeVector shards(numblocks, reducer.initialize()); @@ -264,7 +264,7 @@ struct FullReducer { } typename Self::CoeffReturnType finalShard; - if (numblocks * blocksize < num_coeffs) { + if (static_cast(numblocks) * blocksize < num_coeffs) { finalShard = InnerMostDimReducer::reduce( self, numblocks * blocksize, num_coeffs - numblocks * blocksize, reducer); } else { @@ -301,7 +301,7 @@ struct FullReducer { } const Index blocksize = std::floor(static_cast(num_coeffs) / num_threads); const unsigned int numblocks = blocksize > 0 ? static_cast(num_coeffs / blocksize) : 0; - eigen_assert(num_coeffs >= numblocks * blocksize); + eigen_assert(num_coeffs >= static_cast(numblocks) * blocksize); Barrier barrier(numblocks); MaxSizeVector shards(numblocks, reducer.initialize()); @@ -311,7 +311,7 @@ struct FullReducer { &shards[i]); } typename Self::CoeffReturnType finalShard; - if (numblocks * blocksize < num_coeffs) { + if (static_cast(numblocks) * blocksize < num_coeffs) { finalShard = InnerMostDimReducer::reduce( self, numblocks * blocksize, num_coeffs - numblocks * blocksize, reducer); } else {