aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar Rasmus Munk Larsen <rmlarsen@google.com>2016-11-01 15:37:00 -0700
committerGravatar Rasmus Munk Larsen <rmlarsen@google.com>2016-11-01 15:37:00 -0700
commit0a6ae4155597c9df28cac36b6fdfdcf70d70bf00 (patch)
treea864ee62e11b7b8ee163321aef4705926ddd20ce
parentb730952414b19b988abae2a2ba2be86fb13cff88 (diff)
parent7a0e96b80dc622e3802ec158a12c63b728d7fce9 (diff)
Merged eigen/eigen into default
-rw-r--r--Eigen/src/Core/arch/CUDA/PacketMathHalf.h2
-rw-r--r--unsupported/Eigen/CXX11/src/Tensor/TensorEvalTo.h4
-rw-r--r--unsupported/Eigen/CXX11/src/Tensor/TensorForcedEval.h7
-rw-r--r--unsupported/Eigen/CXX11/src/Tensor/TensorTraits.h28
-rw-r--r--unsupported/test/cxx11_tensor_contract_cuda.cu2
-rw-r--r--unsupported/test/cxx11_tensor_cuda.cu4
-rw-r--r--unsupported/test/cxx11_tensor_image_patch.cpp24
-rw-r--r--unsupported/test/cxx11_tensor_scan_cuda.cu2
8 files changed, 38 insertions, 35 deletions
diff --git a/Eigen/src/Core/arch/CUDA/PacketMathHalf.h b/Eigen/src/Core/arch/CUDA/PacketMathHalf.h
index 9dd89e07f..de905bbf4 100644
--- a/Eigen/src/Core/arch/CUDA/PacketMathHalf.h
+++ b/Eigen/src/Core/arch/CUDA/PacketMathHalf.h
@@ -15,7 +15,7 @@ namespace Eigen {
namespace internal {
// Most of the following operations require arch >= 3.0
-#if defined(EIGEN_HAS_CUDA_FP16) && defined(__CUDA_ARCH__) && __CUDA_ARCH__ >= 300
+#if defined(EIGEN_HAS_CUDA_FP16) && defined(__CUDACC__) && defined(__CUDA_ARCH__) && __CUDA_ARCH__ >= 300
template<> struct is_arithmetic<half2> { enum { value = true }; };
diff --git a/unsupported/Eigen/CXX11/src/Tensor/TensorEvalTo.h b/unsupported/Eigen/CXX11/src/Tensor/TensorEvalTo.h
index 9d5cf1a8c..68d14a7e5 100644
--- a/unsupported/Eigen/CXX11/src/Tensor/TensorEvalTo.h
+++ b/unsupported/Eigen/CXX11/src/Tensor/TensorEvalTo.h
@@ -38,7 +38,9 @@ struct traits<TensorEvalToOp<XprType, MakePointer_> >
};
template <class T>
struct MakePointer {
- typedef typename MakePointer_<T>::Type Type;
+ // Intermediate typedef to workaround MSVC issue.
+ typedef MakePointer_<T> MakePointerT;
+ typedef typename MakePointerT::Type Type;
};
};
diff --git a/unsupported/Eigen/CXX11/src/Tensor/TensorForcedEval.h b/unsupported/Eigen/CXX11/src/Tensor/TensorForcedEval.h
index 9cf4a07e5..bbd5eb374 100644
--- a/unsupported/Eigen/CXX11/src/Tensor/TensorForcedEval.h
+++ b/unsupported/Eigen/CXX11/src/Tensor/TensorForcedEval.h
@@ -42,9 +42,10 @@ struct traits<TensorForcedEvalOp<XprType, MakePointer_> >
enum {
Flags = 0
};
- template <class T>
- struct MakePointer {
- typedef typename MakePointer_<T>::Type Type;
+ template <class T> struct MakePointer {
+ // Intermediate typedef to workaround MSVC issue.
+ typedef MakePointer_<T> MakePointerT;
+ typedef typename MakePointerT::Type Type;
};
};
diff --git a/unsupported/Eigen/CXX11/src/Tensor/TensorTraits.h b/unsupported/Eigen/CXX11/src/Tensor/TensorTraits.h
index 428d32d41..ffcf8b00f 100644
--- a/unsupported/Eigen/CXX11/src/Tensor/TensorTraits.h
+++ b/unsupported/Eigen/CXX11/src/Tensor/TensorTraits.h
@@ -80,8 +80,8 @@ struct traits<TensorFixedSize<Scalar_, Dimensions, Options_, IndexType_> >
};
-template<typename PlainObjectType, int Options_ , template <class> class MakePointer_>
-struct traits<TensorMap<PlainObjectType, Options_ , MakePointer_> >
+template<typename PlainObjectType, int Options_, template <class> class MakePointer_>
+struct traits<TensorMap<PlainObjectType, Options_, MakePointer_> >
: public traits<PlainObjectType>
{
typedef traits<PlainObjectType> BaseTraits;
@@ -142,16 +142,16 @@ struct eval<const TensorFixedSize<Scalar_, Dimensions, Options, IndexType_>, Eig
typedef const TensorFixedSize<Scalar_, Dimensions, Options, IndexType_>& type;
};
-template<typename PlainObjectType, int Options>
-struct eval<TensorMap<PlainObjectType, Options>, Eigen::Dense>
+template<typename PlainObjectType, int Options, template <class> class MakePointer>
+struct eval<TensorMap<PlainObjectType, Options, MakePointer>, Eigen::Dense>
{
- typedef const TensorMap<PlainObjectType, Options>& type;
+ typedef const TensorMap<PlainObjectType, Options, MakePointer>& type;
};
-template<typename PlainObjectType, int Options>
-struct eval<const TensorMap<PlainObjectType, Options>, Eigen::Dense>
+template<typename PlainObjectType, int Options, template <class> class MakePointer>
+struct eval<const TensorMap<PlainObjectType, Options, MakePointer>, Eigen::Dense>
{
- typedef const TensorMap<PlainObjectType, Options>& type;
+ typedef const TensorMap<PlainObjectType, Options, MakePointer>& type;
};
template<typename PlainObjectType>
@@ -197,16 +197,16 @@ struct nested<const TensorFixedSize<Scalar_, Dimensions, Options, IndexType_> >
};
-template <typename PlainObjectType, int Options>
-struct nested<TensorMap<PlainObjectType, Options> >
+template <typename PlainObjectType, int Options, template <class> class MakePointer>
+struct nested<TensorMap<PlainObjectType, Options, MakePointer> >
{
- typedef const TensorMap<PlainObjectType, Options>& type;
+ typedef const TensorMap<PlainObjectType, Options, MakePointer>& type;
};
-template <typename PlainObjectType, int Options>
-struct nested<const TensorMap<PlainObjectType, Options> >
+template <typename PlainObjectType, int Options, template <class> class MakePointer>
+struct nested<const TensorMap<PlainObjectType, Options, MakePointer> >
{
- typedef const TensorMap<PlainObjectType, Options>& type;
+ typedef const TensorMap<PlainObjectType, Options, MakePointer>& type;
};
template <typename PlainObjectType>
diff --git a/unsupported/test/cxx11_tensor_contract_cuda.cu b/unsupported/test/cxx11_tensor_contract_cuda.cu
index 767e9c678..dd68430ce 100644
--- a/unsupported/test/cxx11_tensor_contract_cuda.cu
+++ b/unsupported/test/cxx11_tensor_contract_cuda.cu
@@ -69,7 +69,7 @@ void test_cuda_contraction(int m_size, int k_size, int n_size)
t_result = t_left.contract(t_right, dims);
cudaMemcpy(t_result_gpu.data(), d_t_result, t_result_bytes, cudaMemcpyDeviceToHost);
- for (size_t i = 0; i < t_result.size(); i++) {
+ for (DenseIndex i = 0; i < t_result.size(); i++) {
if (fabs(t_result(i) - t_result_gpu(i)) < 1e-4f) {
continue;
}
diff --git a/unsupported/test/cxx11_tensor_cuda.cu b/unsupported/test/cxx11_tensor_cuda.cu
index bf216587a..0ba9d52e9 100644
--- a/unsupported/test/cxx11_tensor_cuda.cu
+++ b/unsupported/test/cxx11_tensor_cuda.cu
@@ -303,8 +303,8 @@ void test_cuda_contraction()
cudaMemcpy(t_result.data(), d_t_result, t_result_bytes, cudaMemcpyDeviceToHost);
- for (size_t i = 0; i < t_result.dimensions().TotalSize(); i++) {
- if (fabs(t_result.data()[i] - m_result.data()[i]) >= 1e-4) {
+ for (DenseIndex i = 0; i < t_result.size(); i++) {
+ if (fabs(t_result.data()[i] - m_result.data()[i]) >= 1e-4f) {
std::cout << "mismatch detected at index " << i << ": " << t_result.data()[i] << " vs " << m_result.data()[i] << std::endl;
assert(false);
}
diff --git a/unsupported/test/cxx11_tensor_image_patch.cpp b/unsupported/test/cxx11_tensor_image_patch.cpp
index 988b01481..475c59651 100644
--- a/unsupported/test/cxx11_tensor_image_patch.cpp
+++ b/unsupported/test/cxx11_tensor_image_patch.cpp
@@ -13,7 +13,7 @@
using Eigen::Tensor;
-static void test_simple_patch()
+void test_simple_patch()
{
Tensor<float, 4> tensor(2,3,5,7);
tensor.setRandom();
@@ -180,7 +180,7 @@ static void test_simple_patch()
}
// Verifies VALID padding (no padding) with incrementing values.
-static void test_patch_padding_valid()
+void test_patch_padding_valid()
{
int input_depth = 3;
int input_rows = 3;
@@ -256,7 +256,7 @@ static void test_patch_padding_valid()
}
// Verifies VALID padding (no padding) with the same value.
-static void test_patch_padding_valid_same_value()
+void test_patch_padding_valid_same_value()
{
int input_depth = 1;
int input_rows = 5;
@@ -329,7 +329,7 @@ static void test_patch_padding_valid_same_value()
}
// Verifies SAME padding.
-static void test_patch_padding_same()
+void test_patch_padding_same()
{
int input_depth = 3;
int input_rows = 4;
@@ -405,7 +405,7 @@ static void test_patch_padding_same()
}
}
-static void test_patch_no_extra_dim()
+void test_patch_no_extra_dim()
{
Tensor<float, 3> tensor(2,3,5);
tensor.setRandom();
@@ -553,7 +553,7 @@ static void test_patch_no_extra_dim()
}
}
-static void test_imagenet_patches()
+void test_imagenet_patches()
{
// Test the code on typical configurations used by the 'imagenet' benchmarks at
// https://github.com/soumith/convnet-benchmarks
@@ -748,10 +748,10 @@ static void test_imagenet_patches()
void test_cxx11_tensor_image_patch()
{
- CALL_SUBTEST(test_simple_patch());
- CALL_SUBTEST(test_patch_no_extra_dim());
- CALL_SUBTEST(test_patch_padding_valid());
- CALL_SUBTEST(test_patch_padding_valid_same_value());
- CALL_SUBTEST(test_patch_padding_same());
- CALL_SUBTEST(test_imagenet_patches());
+ CALL_SUBTEST_1(test_simple_patch());
+ CALL_SUBTEST_2(test_patch_no_extra_dim());
+ CALL_SUBTEST_3(test_patch_padding_valid());
+ CALL_SUBTEST_4(test_patch_padding_valid_same_value());
+ CALL_SUBTEST_5(test_patch_padding_same());
+ CALL_SUBTEST_6(test_imagenet_patches());
}
diff --git a/unsupported/test/cxx11_tensor_scan_cuda.cu b/unsupported/test/cxx11_tensor_scan_cuda.cu
index 761d11fd1..5f146f3c9 100644
--- a/unsupported/test/cxx11_tensor_scan_cuda.cu
+++ b/unsupported/test/cxx11_tensor_scan_cuda.cu
@@ -55,7 +55,7 @@ void test_cuda_cumsum(int m_size, int k_size, int n_size)
t_result = t_input.cumsum(1);
cudaMemcpy(t_result_gpu.data(), d_t_result, t_result_bytes, cudaMemcpyDeviceToHost);
- for (size_t i = 0; i < t_result.size(); i++) {
+ for (DenseIndex i = 0; i < t_result.size(); i++) {
if (fabs(t_result(i) - t_result_gpu(i)) < 1e-4f) {
continue;
}