]> git.pld-linux.org Git - packages/eigen3.git/commitdiff
- add fix for https://gitlab.com/libeigen/eigen/-/issues/2011 auto/th/eigen3-3.3.8-2
authorJan Rękorajski <baggins@pld-linux.org>
Sun, 29 Nov 2020 22:38:05 +0000 (23:38 +0100)
committerJan Rękorajski <baggins@pld-linux.org>
Sun, 29 Nov 2020 22:38:05 +0000 (23:38 +0100)
- rel 2

eigen3.spec
error-counting.patch [new file with mode: 0644]

index 43abd81a561c1f6a413be3158834c10aacfbbbae..abf4c046eddef86d20a35d292e9c7cd75bf58df5 100644 (file)
@@ -7,13 +7,14 @@ Summary:      C++ template library for linear algebra
 Summary(pl.UTF-8):     Biblioteka szablonów C++ do algebry liniowej
 Name:          eigen3
 Version:       3.3.8
-Release:       1
+Release:       2
 License:       MPL v2.0 with LGPL v2.1+ parts
 Group:         Development/Libraries
 #Source0Download: http://eigen.tuxfamily.org/index.php?title=Main_Page
 Source0:       https://gitlab.com/libeigen/eigen/-/archive/%{version}/eigen-%{version}.tar.bz2
 # Source0-md5: 432ef01499d514f4606343276afa0ec3
 Patch0:                %{name}-buildtype.patch
+Patch1:                error-counting.patch
 URL:           http://eigen.tuxfamily.org/
 BuildRequires: cmake >= 2.8.5
 %{?with_gdb:BuildRequires:     python-modules}
@@ -85,6 +86,7 @@ do pliku ~/.gdbinit .
 %prep
 %setup -q -n eigen-%{version}
 %patch0 -p1
+%patch1 -p1
 
 %build
 install -d build
diff --git a/error-counting.patch b/error-counting.patch
new file mode 100644 (file)
index 0000000..91ba0d6
--- /dev/null
@@ -0,0 +1,46 @@
+diff --git a/Eigen/src/Core/products/Parallelizer.h b/Eigen/src/Core/products/Parallelizer.h
+index 67b2442b53a114af3c08829af4344acc6be7a42f..a3cc05b77bbd19466e7f969d37ec18085ba3d36c 100644
+--- a/Eigen/src/Core/products/Parallelizer.h
++++ b/Eigen/src/Core/products/Parallelizer.h
+@@ -132,8 +132,7 @@ void parallelize_gemm(const Functor& func, Index rows, Index cols, Index depth,
+   ei_declare_aligned_stack_constructed_variable(GemmParallelInfo<Index>,info,threads,0);
+-  int errorCount = 0;
+-  #pragma omp parallel num_threads(threads) reduction(+: errorCount)
++  #pragma omp parallel num_threads(threads)
+   {
+     Index i = omp_get_thread_num();
+     // Note that the actual number of threads might be lower than the number of request ones.
+@@ -152,14 +151,11 @@ void parallelize_gemm(const Functor& func, Index rows, Index cols, Index depth,
+     info[i].lhs_start = r0;
+     info[i].lhs_length = actualBlockRows;
+-    EIGEN_TRY {
+-      if(transpose) func(c0, actualBlockCols, 0, rows, info);
+-      else          func(0, rows, c0, actualBlockCols, info);
+-    } EIGEN_CATCH(...) {
+-      ++errorCount;
+-    }
++    if(transpose)
++      func(c0, actualBlockCols, 0, rows, info);
++    else
++      func(0, rows, c0, actualBlockCols, info);
+   }
+-  if (errorCount) EIGEN_THROW_X(Eigen::eigen_assert_exception());
+ #endif
+ }
+diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
+index 0747aa6cb65a40a47fdee2685a2798f93c481ea0..b0257778082143ce27fc847cf163e845fa2afd1e 100644
+--- a/test/CMakeLists.txt
++++ b/test/CMakeLists.txt
+@@ -163,7 +163,7 @@ ei_add_test(constructor)
+ ei_add_test(linearstructure)
+ ei_add_test(integer_types)
+ ei_add_test(unalignedcount)
+-if(NOT EIGEN_TEST_NO_EXCEPTIONS)
++if(NOT EIGEN_TEST_NO_EXCEPTIONS AND NOT EIGEN_TEST_OPENMP)
+   ei_add_test(exceptions)
+ endif()
+ ei_add_test(redux)
This page took 0.10028 seconds and 4 git commands to generate.