Update Eigen to 3.3.8 and move to new upstream

Authored by aleksvor on Oct 15 2020, 3:51 AM.


Update Eigen to 3.3.8 and move to new upstream

Summarized changelog:

  • General bug fixes:
    • Fix a failure in the GEBP kernel when using small L1 cache sizes, OpenMP and FMA.
    • Make CMake accept installation paths relative to CMAKE_INSTALL_PREFIX.
    • Fix issue when reserving an empty sparse matrix.
    • Fix incorrect use of std::abs.
    • Fix rule-of-three violations inside the stable modules. This fixes deprecated-copy warnings when compiling with GCC>=9 Also protect some additional Base-constructors from getting called by user code code.
    • Make matrix squareroot usable for Map and Ref types.
    • Fix AutoDiffScalar's make_coherent for nested expression of constant ADs.
    • Fall back is_integral to std::is_integral in C++11.
    • Fix self-adjoint*matrix, triangular*matrix, and triangular^1*matrix with a destination having a non-trivial inner-stride.
    • Fix SelfAdjointView::rankUpdate and product to triangular part for destination with non-trivial inner stride.
    • Fix C.noalias() = A*C; with C.innerStride()!=1.
    • Fix a numerical robustness issue in BDCSVD.
    • Enable enum as sizes of Matrix and Array.
    • Avoid possible division by 0 in complex-schur.
    • Fix C++17 template deduction in DenseBase.
    • Fix PartialPivLU/inverse with zero-sized matrices.
    • Fix RealSchur and EigenSolver for matrices with only zeros on the diagonal.
  • Performance-related fixes:
    • Optimize evaluation of small products of the form s*A*B by rewriting them as: s*(A.lazyProduct(B)) to save a costly temporary. Measured speedup from 2x to 5x.
    • Fix performance issue with SimplicialLDLT for complexes coefficients.

Full changelog here.
Announcement about moving to GitLab here.

Test Plan:

  1. Rebuilt and ran krita with these headers.
  2. Rebuilt and ran my old Master degree project which also used Eigen headers.

Reviewers: Triage Team, JoshStrobl

Reviewed By: Triage Team, JoshStrobl

Subscribers: JoshStrobl

Differential Revision:


JoshStroblOct 15 2020, 3:51 AM
JoshStroblOct 15 2020, 3:51 AM
Triage Team
Differential Revision
D9827: Update Eigen to 3.3.8 and move to new upstream
R686:d2f4d7441e3c: Update eigen3 to 3.3.7
HEAD -> master, tag: eigen3-3.3.8-8