[arch-commits] Commit in eigen/repos/extra-any (PKGBUILD PKGBUILD eigen-c++17.patch)

Jelle van der Waa jelle at archlinux.org
Tue Jun 2 19:41:29 UTC 2020


    Date: Tuesday, June 2, 2020 @ 19:41:28
  Author: jelle
Revision: 388113

archrelease: copy trunk to extra-any

Added:
  eigen/repos/extra-any/PKGBUILD
    (from rev 388112, eigen/trunk/PKGBUILD)
  eigen/repos/extra-any/eigen-c++17.patch
    (from rev 388112, eigen/trunk/eigen-c++17.patch)
Deleted:
  eigen/repos/extra-any/PKGBUILD

-------------------+
 PKGBUILD          |   82 +++++++++++++++++++++++++-------------------------
 eigen-c++17.patch |   84 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 125 insertions(+), 41 deletions(-)

Deleted: PKGBUILD
===================================================================
--- PKGBUILD	2020-06-02 19:41:18 UTC (rev 388112)
+++ PKGBUILD	2020-06-02 19:41:28 UTC (rev 388113)
@@ -1,41 +0,0 @@
-# Maintainer: Ronald van Haren <ronald at archlinux.org>
-# Contributor: Chirantan Ekbote <chirantan.ekbote at gmail.com>
-# Contributor: Kringel
-
-pkgname=eigen
-pkgver=3.3.7
-pkgrel=5
-pkgdesc="Lightweight C++ template library for vector and matrix math, a.k.a. linear algebra."
-arch=('any')
-url='https://eigen.tuxfamily.org'
-license=('GPL3' 'LGPL2.1' 'BSD' 'custom:MPL2' 'custom:MINPACK')
-makedepends=('cmake' 'pkg-config' 'freeglut' 'gcc-fortran' 'fftw' 'suitesparse' 'boost')
-replaces=('eigen3')
-provides=('eigen3')
-source=("${pkgname}-${pkgver}.tar.bz2::https://bitbucket.org/eigen/eigen/get/${pkgver}.tar.bz2"
-         eigen-c++17.patch::"https://gitlab.com/libeigen/eigen/-/commit/2aa9eb3c.patch")
-sha256sums=('9f13cf90dedbe3e52a19f43000d71fdf72e986beb9a5436dddcd61ff9d77a3ce'
-            '241b9363362314f36fa6bfa7182e8d3c38fc2e92855ab1f44c352d8a7c7ad599')
-
-prepare() {
-  mkdir -p build
-
-  cd eigen-eigen-*
-  patch -p1 -i ../eigen-c++17.patch # https://gitlab.com/libeigen/eigen/-/issues/1676  
-}
-
-build() {
-  cd build
-  cmake ../eigen-eigen-* \
-    -DCMAKE_INSTALL_PREFIX=/usr
-}
-
-package() {
-  cd build
-  make DESTDIR="$pkgdir" install
-
-  # install custom licenses
-  install -Dm644 ../eigen-eigen-*/COPYING.MPL2 -t "$pkgdir/usr/share/licenses/$pkgname"
-  install -Dm644 ../eigen-eigen-*/COPYING.BSD -t "$pkgdir/usr/share/licenses/$pkgname"
-  install -Dm644 ../eigen-eigen-*/COPYING.MINPACK -t "$pkgdir/usr/share/licenses/$pkgname"
-}

Copied: eigen/repos/extra-any/PKGBUILD (from rev 388112, eigen/trunk/PKGBUILD)
===================================================================
--- PKGBUILD	                        (rev 0)
+++ PKGBUILD	2020-06-02 19:41:28 UTC (rev 388113)
@@ -0,0 +1,41 @@
+# Maintainer: Ronald van Haren <ronald at archlinux.org>
+# Contributor: Chirantan Ekbote <chirantan.ekbote at gmail.com>
+# Contributor: Kringel
+
+pkgname=eigen
+pkgver=3.3.7
+pkgrel=6
+pkgdesc="Lightweight C++ template library for vector and matrix math, a.k.a. linear algebra."
+arch=('any')
+url='https://eigen.tuxfamily.org'
+license=('GPL3' 'LGPL2.1' 'BSD' 'custom:MPL2' 'custom:MINPACK')
+makedepends=('cmake' 'pkg-config' 'freeglut' 'gcc-fortran' 'fftw' 'suitesparse' 'boost')
+replaces=('eigen3')
+provides=('eigen3')
+source=("${pkgname}-${pkgver}.tar.bz2::https://bitbucket.org/eigen/eigen/get/${pkgver}.tar.bz2"
+         eigen-c++17.patch)
+sha256sums=('9f13cf90dedbe3e52a19f43000d71fdf72e986beb9a5436dddcd61ff9d77a3ce'
+            'd62ece0e05e4fc85282ff462d86b08dc85ff16e991d7ae4ddf24c3f33fbe8c49')
+
+prepare() {
+  mkdir -p build
+
+  cd eigen-eigen-*
+  patch -p1 -i ../eigen-c++17.patch # https://gitlab.com/libeigen/eigen/-/issues/1676  
+}
+
+build() {
+  cd build
+  cmake ../eigen-eigen-* \
+    -DCMAKE_INSTALL_PREFIX=/usr
+}
+
+package() {
+  cd build
+  make DESTDIR="$pkgdir" install
+
+  # install custom licenses
+  install -Dm644 ../eigen-eigen-*/COPYING.MPL2 -t "$pkgdir/usr/share/licenses/$pkgname"
+  install -Dm644 ../eigen-eigen-*/COPYING.BSD -t "$pkgdir/usr/share/licenses/$pkgname"
+  install -Dm644 ../eigen-eigen-*/COPYING.MINPACK -t "$pkgdir/usr/share/licenses/$pkgname"
+}

Copied: eigen/repos/extra-any/eigen-c++17.patch (from rev 388112, eigen/trunk/eigen-c++17.patch)
===================================================================
--- eigen-c++17.patch	                        (rev 0)
+++ eigen-c++17.patch	2020-06-02 19:41:28 UTC (rev 388113)
@@ -0,0 +1,84 @@
+From 2aa9eb3ce8fa6b2d61dce5be9d6d6460a28080c4 Mon Sep 17 00:00:00 2001
+From: Gael Guennebaud <g.gael at free.fr>
+Date: Thu, 7 Feb 2019 15:21:35 +0100
+Subject: [PATCH] bug #1676: workaround GCC's bug in c++17 mode. (grafted from
+ b3c4344a6852e55c849976dd46ec4e861399bf16 )
+
+---
+ Eigen/src/Core/DenseBase.h                | 4 ++--
+ Eigen/src/Core/util/ForwardDeclarations.h | 6 +-----
+ bench/bench_gemm.cpp                      | 5 +++--
+ 3 files changed, 6 insertions(+), 9 deletions(-)
+
+diff --git a/Eigen/src/Core/DenseBase.h b/Eigen/src/Core/DenseBase.h
+index 90066ae73..a96aa7152 100644
+--- a/Eigen/src/Core/DenseBase.h
++++ b/Eigen/src/Core/DenseBase.h
+@@ -40,7 +40,7 @@ static inline void check_DenseIndex_is_signed() {
+   */
+ template<typename Derived> class DenseBase
+ #ifndef EIGEN_PARSED_BY_DOXYGEN
+-  : public DenseCoeffsBase<Derived>
++  : public DenseCoeffsBase<Derived, internal::accessors_level<Derived>::value>
+ #else
+   : public DenseCoeffsBase<Derived,DirectWriteAccessors>
+ #endif // not EIGEN_PARSED_BY_DOXYGEN
+@@ -71,7 +71,7 @@ template<typename Derived> class DenseBase
+     typedef Scalar value_type;
+     
+     typedef typename NumTraits<Scalar>::Real RealScalar;
+-    typedef DenseCoeffsBase<Derived> Base;
++    typedef DenseCoeffsBase<Derived, internal::accessors_level<Derived>::value> Base;
+ 
+     using Base::derived;
+     using Base::const_cast_derived;
+diff --git a/Eigen/src/Core/util/ForwardDeclarations.h b/Eigen/src/Core/util/ForwardDeclarations.h
+index ea107393a..134544f96 100644
+--- a/Eigen/src/Core/util/ForwardDeclarations.h
++++ b/Eigen/src/Core/util/ForwardDeclarations.h
+@@ -47,11 +47,7 @@ template<typename T> struct NumTraits;
+ template<typename Derived> struct EigenBase;
+ template<typename Derived> class DenseBase;
+ template<typename Derived> class PlainObjectBase;
+-
+-
+-template<typename Derived,
+-         int Level = internal::accessors_level<Derived>::value >
+-class DenseCoeffsBase;
++template<typename Derived, int Level> class DenseCoeffsBase;
+ 
+ template<typename _Scalar, int _Rows, int _Cols,
+          int _Options = AutoAlign |
+diff --git a/bench/bench_gemm.cpp b/bench/bench_gemm.cpp
+index 8528c5587..dccab96a8 100644
+--- a/bench/bench_gemm.cpp
++++ b/bench/bench_gemm.cpp
+@@ -112,6 +112,7 @@ void matlab_cplx_cplx(const M& ar, const M& ai, const M& br, const M& bi, M& cr,
+   cr.noalias() -= ai * bi;
+   ci.noalias() += ar * bi;
+   ci.noalias() += ai * br;
++  // [cr ci] += [ar ai] * br + [-ai ar] * bi
+ }
+ 
+ void matlab_real_cplx(const M& a, const M& br, const M& bi, M& cr, M& ci)
+@@ -240,7 +241,7 @@ int main(int argc, char ** argv)
+     blas_gemm(a,b,r);
+     c.noalias() += a * b;
+     if(!r.isApprox(c)) {
+-      std::cout << r  - c << "\n";
++      std::cout << (r  - c).norm() << "\n";
+       std::cerr << "Warning, your product is crap!\n\n";
+     }
+   #else
+@@ -249,7 +250,7 @@ int main(int argc, char ** argv)
+       gemm(a,b,c);
+       r.noalias() += a.cast<Scalar>() .lazyProduct( b.cast<Scalar>() );
+       if(!r.isApprox(c)) {
+-        std::cout << r - c << "\n";
++        std::cout << (r  - c).norm() << "\n";
+         std::cerr << "Warning, your product is crap!\n\n";
+       }
+     }
+-- 
+2.26.2
+



More information about the arch-commits mailing list