<pre style='margin:0'>
Eric A. Borisch (eborisch) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/d6af367016b78c510769d954c773867cd8994ebf">https://github.com/macports/macports-ports/commit/d6af367016b78c510769d954c773867cd8994ebf</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'>     new d6af367016b eigen3: Remove old cmake work-around; update -devel; add co-maintainer. (#17607)
</span>d6af367016b is described below

<span style='display:block; white-space:pre;color:#808000;'>commit d6af367016b78c510769d954c773867cd8994ebf
</span>Author: Eric A. Borisch <eborisch@gmail.com>
AuthorDate: Mon Feb 6 21:07:42 2023 -0600

<span style='display:block; white-space:pre;color:#404040;'>    eigen3: Remove old cmake work-around; update -devel; add co-maintainer. (#17607)
</span>---
 math/eigen3/Portfile             |  41 ++++----
 math/eigen3/files/patch-ppc.diff | 207 +++++++++++++++++++++++++++++++++++++++
 2 files changed, 230 insertions(+), 18 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/math/eigen3/Portfile b/math/eigen3/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index f01d258395f..064445aec9e 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/math/eigen3/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/math/eigen3/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -8,7 +8,7 @@ PortGroup           gitlab 1.0
</span> name                eigen3
 license             {MPL-2 LGPL-2.1+} LGPL-3+
 categories          math science
<span style='display:block; white-space:pre;background:#ffe0e0;'>-maintainers         {eborisch @eborisch} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+maintainers         {eborisch @eborisch} {@barracuda156 gmail.com:vital.had} \
</span>                     openmaintainer
 description         A C++ template library for linear algebra: vectors, \
                     matrices, and related algorithms.
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -24,26 +24,29 @@ if {${subport} eq ${name}} {
</span>     checksums           rmd160  4b70962c6c1454d0909ed04776c812a78ffdce03 \
                         sha256  b4c198460eba6f28d34894e3a5710998818515104d6e74e5cc331ce31e46e626 \
                         size    2143091
<span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # Backport of: https://gitlab.com/libeigen/eigen/-/commit/4d05765345e7e4a984d600039f797e2fede924f3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    patchfiles-append   patch-ppc.diff
</span> }
 
 subport eigen3-devel {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    gitlab.setup        libeigen eigen c379a211
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # For when there is no current development version (other than rolling
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # snapshot)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    version             3.4-tracking-20211105
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    gitlab.setup        libeigen eigen 232b18fa
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # For when there is no current development version (other than rolling snapshot)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    version             3.4-tracking-20230206
</span>     revision            0
     epoch               3
<span style='display:block; white-space:pre;background:#e0ffe0;'>+    gitlab.livecheck.branch 3.4
</span> 
     conflicts           eigen3
 
     long_description    {*}${description} This (-devel) version tracks \
                         development of the current (3.4) branch.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    gitlab.livecheck.branch 3.4
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    checksums \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        rmd160  a0700aa74add60e0ff85f3a369cb8394c28b4337 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        sha256  142c80fbed173c2d22b5512aef4f0bf0073d78884e0d2a4a4ff5168500acc8e1 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        size    2143408
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    checksums           rmd160  ced7115e32ebbe487222cbf126afe0c0bbb4ca6b \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        sha256  013112f555139acacaafaa109e44bd4dcb4b18cccb5036354546db11bd5a48f6 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        size    2253241
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    compilers.setup     require_fortran
</span> }
 
 # Exclude pre-release versions
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -62,14 +65,12 @@ variant doc description \
</span> variant blas description \
     {Build eigen's blas (libeigen_blas*) : needs +gccNN, +g95, or +gfortran} {
         PortGroup               muniversal 1.0
<span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span>         build.target-append     blas
         universal_variant       yes
         configure.universal_args ""
 }
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-if {![variant_isset blas]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.env-append    FC=nofortran
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span> 
 compiler.cxx_standard   2011
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -118,8 +119,10 @@ pre-destroot {
</span>     foreach sfx ${build_suffix} {
         set docdir ${destroot}${sfx}${prefix}/share/doc/eigen3
         xinstall -d ${docdir}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        xinstall -m 644 -W ${worksrcpath} \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            COPYING.GPL COPYING.LGPL ${docdir}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        foreach item [glob -directory ${worksrcpath} COPYING.*] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            xinstall -m 644 -W ${worksrcpath} ${item} ${docdir}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        }
</span> 
         # Install documentation if requested
         if {[variant_isset doc]} {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -147,10 +150,12 @@ post-destroot {
</span>             ${destroot}${prefix}/include/eigen3/unsupported
     }
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    # Install FindEigen3.cmake file
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # Install FindEigen3.cmake file, if it is provided.
</span>     xinstall -d ${destroot}${cmake_share_module_dir}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    xinstall -m 444 ${worksrcpath}/cmake/FindEigen3.cmake \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        ${destroot}${cmake_share_module_dir}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {[file exists ${worksrcpath}/cmake/FindEigen3.cmake]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        xinstall -m 444 ${worksrcpath}/cmake/FindEigen3.cmake \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            ${destroot}${cmake_share_module_dir}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span> }
 
 notes "
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/math/eigen3/files/patch-ppc.diff b/math/eigen3/files/patch-ppc.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..08790cadea3
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/math/eigen3/files/patch-ppc.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,207 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Backport of: https://gitlab.com/libeigen/eigen/-/commit/4d05765345e7e4a984d600039f797e2fede924f3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- Eigen/src/Core/util/ConfigureVectorization.h.orig      2021-08-19 04:41:58.000000000 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ Eigen/src/Core/util/ConfigureVectorization.h   2023-01-18 02:25:19.000000000 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -363,10 +363,10 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     } // end extern "C"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  #elif defined __VSX__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  #elif defined(__VSX__) && !defined(__APPLE__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     #define EIGEN_VECTORIZE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    #define EIGEN_VECTORIZE_VSX
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    #define EIGEN_VECTORIZE_VSX 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     #include <altivec.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     // We need to #undef all these ugly tokens defined in <altivec.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     // => use __vector instead of vector
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- Eigen/src/Core/util/Macros.h.orig      2021-08-19 04:41:58.000000000 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ Eigen/src/Core/util/Macros.h   2023-01-18 02:21:23.000000000 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -329,7 +329,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /// \internal EIGEN_ARCH_PPC set to 1 if the architecture is PowerPC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if defined(__powerpc__) || defined(__ppc__) || defined(_M_PPC)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined(__powerpc__) || defined(__ppc__) || defined(_M_PPC) || defined(__POWERPC__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   #define EIGEN_ARCH_PPC 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   #define EIGEN_ARCH_PPC 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1127,8 +1127,13 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       // This seems to be broken on clang.  Packet4f is loaded into a single
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       //   register rather than a vector, zeroing out some entries.  Integer
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       //   types also generate a compile error.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      // General, Altivec, VSX.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      #define EIGEN_OPTIMIZATION_BARRIER(X)  __asm__  ("" : "+r,v,wa" (X));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      #if EIGEN_OS_MAC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        // General, Altivec for Apple (VSX were added in ISA v2.06):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        #define EIGEN_OPTIMIZATION_BARRIER(X)  __asm__  ("" : "+r,v" (X));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      #else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        // General, Altivec, VSX otherwise:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        #define EIGEN_OPTIMIZATION_BARRIER(X)  __asm__  ("" : "+r,v,wa" (X));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     #elif EIGEN_ARCH_ARM_OR_ARM64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       // General, NEON.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       #define EIGEN_OPTIMIZATION_BARRIER(X)  __asm__  ("" : "+g,w" (X));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- Eigen/src/Core/arch/AltiVec/Complex.h.orig     2021-08-19 04:41:58.000000000 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ Eigen/src/Core/arch/AltiVec/Complex.h  2023-01-18 02:27:46.000000000 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -16,7 +16,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ namespace internal {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static Packet4ui  p4ui_CONJ_XOR = vec_mergeh((Packet4ui)p4i_ZERO, (Packet4ui)p4f_MZERO);//{ 0x00000000, 0x80000000, 0x00000000, 0x80000000 };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#ifdef __VSX__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef EIGEN_VECTORIZE_VSX
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if defined(_BIG_ENDIAN)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static Packet2ul  p2ul_CONJ_XOR1 = (Packet2ul) vec_sld((Packet4ui) p2d_MZERO, (Packet4ui) p2l_ZERO, 8);//{ 0x8000000000000000, 0x0000000000000000 };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static Packet2ul  p2ul_CONJ_XOR2 = (Packet2ul) vec_sld((Packet4ui) p2l_ZERO,  (Packet4ui) p2d_MZERO, 8);//{ 0x8000000000000000, 0x0000000000000000 };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -100,7 +100,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     HasAbs2   = 0,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     HasMin    = 0,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     HasMax    = 0,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#ifdef __VSX__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef EIGEN_VECTORIZE_VSX
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     HasBlend  = 1,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     HasSetLinear = 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -130,7 +130,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ EIGEN_STRONG_INLINE Packet2cf pload2(const std::complex<float>* from0, const std::complex<float>* from1)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   Packet4f res0, res1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#ifdef __VSX__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef EIGEN_VECTORIZE_VSX
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   __asm__ ("lxsdx %x0,%y1" : "=wa" (res0) : "Z" (*from0));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   __asm__ ("lxsdx %x0,%y1" : "=wa" (res1) : "Z" (*from1));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #ifdef _BIG_ENDIAN
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -233,7 +233,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return Packet2cf(vec_and(eq, vec_perm(eq, eq, p16uc_COMPLEX32_REV)));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#ifdef __VSX__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef EIGEN_VECTORIZE_VSX
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ template<> EIGEN_STRONG_INLINE Packet2cf pblend(const Selector<2>& ifPacket, const Packet2cf& thenPacket, const Packet2cf& elsePacket) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   Packet2cf result;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   result.v = reinterpret_cast<Packet4f>(pblend<Packet2d>(ifPacket, reinterpret_cast<Packet2d>(thenPacket.v), reinterpret_cast<Packet2d>(elsePacket.v)));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -247,7 +247,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ //---------- double ----------
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#ifdef __VSX__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef EIGEN_VECTORIZE_VSX
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ struct Packet1cd
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   EIGEN_STRONG_INLINE Packet1cd() {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- Eigen/src/Core/arch/AltiVec/MathFunctions.h.orig       2021-08-19 04:41:58.000000000 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ Eigen/src/Core/arch/AltiVec/MathFunctions.h    2023-01-18 02:28:17.000000000 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -48,7 +48,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#ifdef __VSX__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef EIGEN_VECTORIZE_VSX
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #ifndef EIGEN_COMP_CLANG
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ template<> EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Packet2d prsqrt<Packet2d>(const Packet2d& x)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- Eigen/src/Core/arch/AltiVec/PacketMath.h.orig  2021-08-19 04:41:58.000000000 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ Eigen/src/Core/arch/AltiVec/PacketMath.h       2023-01-18 02:32:28.000000000 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -84,7 +84,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static _EIGEN_DECLARE_CONST_FAST_Packet8us(ONE,1); //{ 1, 1, 1, 1, 1, 1, 1, 1}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static _EIGEN_DECLARE_CONST_FAST_Packet16uc(ONE,1);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static Packet4f p4f_MZERO = (Packet4f) vec_sl((Packet4ui)p4i_MINUS1, (Packet4ui)p4i_MINUS1); //{ 0x80000000, 0x80000000, 0x80000000, 0x80000000}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#ifndef __VSX__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifndef EIGEN_VECTORIZE_VSX
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static Packet4f p4f_ONE = vec_ctf(p4i_ONE, 0); //{ 1.0, 1.0, 1.0, 1.0}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -114,7 +114,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // Define global static constants:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #ifdef _BIG_ENDIAN
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static Packet16uc p16uc_FORWARD = vec_lvsl(0, (float*)0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#ifdef __VSX__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef EIGEN_VECTORIZE_VSX
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static Packet16uc p16uc_REVERSE64 = { 8,9,10,11, 12,13,14,15, 0,1,2,3, 4,5,6,7 };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static Packet16uc p16uc_PSET32_WODD   = vec_sld((Packet16uc) vec_splat((Packet4ui)p16uc_FORWARD, 0), (Packet16uc) vec_splat((Packet4ui)p16uc_FORWARD, 2), 8);//{ 0,1,2,3, 0,1,2,3, 8,9,10,11, 8,9,10,11 };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -168,7 +168,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     HasCos = EIGEN_FAST_MATH,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     HasLog = 1,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     HasExp = 1,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#ifdef __VSX__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef EIGEN_VECTORIZE_VSX
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     HasSqrt = 1,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if !EIGEN_COMP_CLANG
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     HasRsqrt = 1,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -210,7 +210,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     HasCos = EIGEN_FAST_MATH,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     HasLog = 1,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     HasExp = 1,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#ifdef __VSX__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef EIGEN_VECTORIZE_VSX
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     HasSqrt = 1,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if !EIGEN_COMP_CLANG
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     HasRsqrt = 1,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -432,7 +432,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   // ignoring these warnings for now.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   EIGEN_UNUSED_VARIABLE(from);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   EIGEN_DEBUG_ALIGNED_LOAD
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#ifdef __VSX__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef EIGEN_VECTORIZE_VSX
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return vec_xl(0, const_cast<__UNPACK_TYPE__(Packet)*>(from));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return vec_ld(0, from);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -481,7 +481,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   // ignoring these warnings for now.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   EIGEN_UNUSED_VARIABLE(to);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   EIGEN_DEBUG_ALIGNED_STORE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#ifdef __VSX__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef EIGEN_VECTORIZE_VSX
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   vec_xst(from, 0, to);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   vec_st(from, 0, to);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -802,7 +802,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ template<> EIGEN_STRONG_INLINE Packet4f pdiv<Packet4f>(const Packet4f& a, const Packet4f& b)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#ifndef __VSX__  // VSX actually provides a div instruction
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifndef EIGEN_VECTORIZE_VSX  // VSX actually provides a div instruction
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   Packet4f t, y_0, y_1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   // Altivec does not offer a divide instruction, we have to do a reciprocal approximation
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -831,7 +831,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ template<> EIGEN_STRONG_INLINE Packet4f pmin<Packet4f>(const Packet4f& a, const Packet4f& b)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  #ifdef __VSX__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  #ifdef EIGEN_VECTORIZE_VSX
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   // NOTE: about 10% slower than vec_min, but consistent with std::min and SSE regarding NaN
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   Packet4f ret;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   __asm__ ("xvcmpgesp %x0,%x1,%x2\n\txxsel %x0,%x1,%x2,%x0" : "=&wa" (ret) : "wa" (a), "wa" (b));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -849,7 +849,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ template<> EIGEN_STRONG_INLINE Packet4f pmax<Packet4f>(const Packet4f& a, const Packet4f& b)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  #ifdef __VSX__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  #ifdef EIGEN_VECTORIZE_VSX
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   // NOTE: about 10% slower than vec_max, but consistent with std::max and SSE regarding NaN
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   Packet4f ret;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   __asm__ ("xvcmpgtsp %x0,%x2,%x1\n\txxsel %x0,%x1,%x2,%x0" : "=&wa" (ret) : "wa" (a), "wa" (b));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -923,7 +923,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Packet4f t = vec_add(reinterpret_cast<Packet4f>(vec_or(vec_and(reinterpret_cast<Packet4ui>(a), p4ui_SIGN), p4ui_PREV0DOT5)), a);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Packet4f res;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#ifdef __VSX__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef EIGEN_VECTORIZE_VSX
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     __asm__("xvrspiz %x0, %x1\n\t"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         : "=&wa" (res)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         : "wa" (t));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2252,7 +2252,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ //---------- double ----------
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#ifdef __VSX__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef EIGEN_VECTORIZE_VSX
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ typedef __vector double              Packet2d;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ typedef __vector unsigned long long  Packet2ul;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ typedef __vector long long           Packet2l;
</span></pre><pre style='margin:0'>

</pre>