Update Eigen to 3.3.8 and move to new upstream
- 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.
- Rebuilt and ran krita with these headers.
- Rebuilt and ran my old Master degree project which also used Eigen headers.
Reviewers: Triage Team, JoshStrobl
Reviewed By: Triage Team, JoshStrobl
Differential Revision: https://dev.getsol.us/D9827