Page MenuHomeSolus

Update Eigen to 3.3.8 and move to new upstream

Authored by aleksvor on Oct 14 2020, 8:50 AM.



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.

Diff Detail

R686 eigen3
Automatic diff as part of commit; lint not applicable.
Automatic diff as part of commit; unit tests not applicable.

Event Timeline

aleksvor created this revision.Oct 14 2020, 8:50 AM
aleksvor requested review of this revision.Oct 14 2020, 8:50 AM
aleksvor edited the test plan for this revision. (Show Details)Oct 14 2020, 8:52 AM
JoshStrobl accepted this revision.Oct 15 2020, 3:51 AM
JoshStrobl added a subscriber: JoshStrobl.

LGTM, thanks!

This revision is now accepted and ready to land.Oct 15 2020, 3:51 AM
This revision was automatically updated to reflect the committed changes.