Log message:
Update to 3.3.7
Upstream changes:
Eigen 3.3.7
Released on December 11, 2018.
Changes since 3.3.6:
Bug 1643: Fix compilation with GCC>=6 and compiler optimization turned off.
Eigen 3.3.6
Released on December 10, 2018.
Changes since 3.3.5:
Bug 1617: Fix triangular solve crashing for empty matrix.
Bug 785: Make dense Cholesky decomposition work for empty matrices.
Bug 1634: Remove double copy in move-ctor of non movable Matrix/Array.
Changeset 588e1eb34eff: Workaround weird MSVC bug.
Bug 1637 Workaround performance regression in matrix products with gcc>=6 \
and clang>=6.0.
Changeset bf0f100339c1: Fix some implicit 0 to Scalar conversions.
Bug 1605: Workaround ABI issue with vector types (aka __m128) versus scalar \
types (aka float).
Changeset d1421c479baa: Fix for gcc<4.6 regarding usage of #pragma GCC \
diagnostic push/pop.
Changeset c20b83b9d736: Fix conjugate-gradient for right-hand-sides with a \
very small magnitude.
Changeset 281a877a3bf7: Fix product of empty arrays (returned 0 instead of 1).
Bug 1590: Fix collision with some system headers defining the macro FP32.
Bug 1584: Fix possible undefined behavior in random generation.
Changeset d632d18db8ca: Fix fallback to BLAS for rankUpdate.
Fixes for NVCC 9.
Fix matrix-market IO.
Various fixes in the doc.
Various minor warning fixes/workarounds.
Eigen 3.3.5
Released on July 23, 2018.
Changes since 3.3.4:
General bug fixes:
Fix GeneralizedEigenSolver when requesting for eigenvalues only \
(0d15855abb30)
Bug 1560 fix product with a 1x1 diagonal matrix (90d7654f4a59)
Bug 1543: fix linear indexing in generic block evaluation
Fix compilation of product with inverse transpositions (e.g., mat * \
Transpositions().inverse()) (14a13748d761)
Bug 1509: fix computeInverseWithCheck for complexes (8be258ef0b6d)
Bug 1521: avoid signalling NaN in hypot and make it std::complex<> \
friendly (a9c06b854991).
Bug 1517: fix triangular product with unit diagonal and nested scaling \
factor: (s*A).triangularView<UpperUnit>()*B (a546d43bdd4f)
Fix compilation of stableNorm for some odd expressions as input \
(499e982b9281)
Bug 1485: fix linking issue of non template functions (ae28c2aaeeda)
Fix overflow issues in BDCSVD (92060f82e1de)
Bug 1468 : add missing std:: to memcpy (4565282592ae)
Bug 1453: fix Map with non-default inner-stride but no outer-stride \
(af00212cf3a4)
Fix mixing types in sparse matrix products (7e5fcd0008bd)
Bug 1544: Generate correct Q matrix in complex case (c0c410b508a1)
Bug 1461: fix compilation of Map<const Quaternion>::x() (69652a06967d)
Backends:
Fix MKL backend for symmetric eigenvalues on row-major matrices \
(4726d6a24f69)
Bug 1527: fix support for MKL's VML (972424860545)
Fix incorrect ldvt in LAPACKE call from JacobiSVD (88c4604601b9)
Fix support for MKL's BLAS when using MKL_DIRECT_CALL (205731b87e19, \
b88c70c6ced7, 46e2367262e1)
Use MKL's lapacke.h header when using MKL (19bc9df6b726)
Diagnostics:
Bug 1516: add assertion for out-of-range diagonal index in \
MatrixBase::diagonal(i) (783d38b3c78c)
Add static assertion for fixed sizes Ref<> (e1203d5ceb8e)
Add static assertion on selfadjoint-view's UpLo parameter. \
(b84db94c677e, 0ffe8a819801)
Bug 1479: fix failure detection in LDLT (67719139abc3)
Compiler support:
Bug 1555: compilation fix with XLC
Workaround MSVC 2013 ambiguous calls (1c7b59b0b5f4)
Adds missing EIGEN_STRONG_INLINE to help MSVC properly inlining small \
vector calculations (1ba3f10b91f2)
Several minor warning fixes: 3c87fc0f1042, ad6bcf0e8efc, "used \
uninitialized" (20efc44c5500), Wint-in-bool-context (131da2cbc695, \
b4f969795d1b)
Bug 1428: make NEON vectorization compilable by MSVC. (* 3d1b3dbe5927, \
4e1b7350182a)
Fix compilation and SSE support with PGI compiler (faabf000855d 90d33b09040f)
Bug 1555: compilation fix with XLC (23eb37691f14)
Bug 1520: workaround some -Wfloat-equal warnings by calling \
std::equal_to (7d9a9456ed7c)
Make the TensorStorage class compile with clang 3.9 (eff7001e1f0a)
Misc: some old compiler fixes (493691b29be1)
Fix MSVC warning C4290: C++ exception specification ignored except to \
indicate a function is not __declspec(nothrow) (524918622506)
Architecture support:
Several AVX512 fixes for log, sqrt, rsqrt, non AVX512ER CPUs, \
apply_rotation_in_the_plane b64275e912ba cab3d626a59e 7ce234652ab9, \
d89b9a754371.
AltiVec fixes: 9450038e380d
NEON fixes: const-cast (e8a69835ccda), compilation of Jacobi rotations \
(c06cfd545b15,bug 1436).
Changeset d0658cc9d4a2: Define pcast<> for SSE types even when AVX \
is enabled. (otherwise float are silently reinterpreted as int instead of being \
converted)
Bug 1494: makes pmin/pmax behave on Altivec/VSX as on x86 regarding NaNs \
(d0af83f82b19)
Documentation:
Update manual pages regarding BDCSVD (bug 1538)
Add aliasing in common pitfaffs (2a5a8408fdc5)
Update aligned_allocator (21e03aef9f2b)
Bug 1456: add perf recommendation for LLT and storage format \
(c8c154ebf130, 9aef1e23dbe0)
Bug 1455: Cholesky module depends on Jacobi for rank-updates (2e6e26b851a8)
Bug 1458: fix documentation of LLT and LDLT info() method (2a4cf4f473dd)
Warn about constness in LLT::solveInPlace (518f97b69bdf)
Fix lazyness of operator* with CUDA (c4dbb556bd36)
Bug 336: improve doc for PlainObjectBase::Map (13dc446545fe)
Other general improvements:
Enable linear indexing in generic block evaluation (31537598bf83, \
5967bc3c2cdb, bug 1543).
Fix packet and alignment propagation logic of Block<Xpr> \
expressions. In particular, (A+B).col(j) now preserve vectorisation. \
(b323cc9c2c7f)
Several fixes regarding custom scalar type support: hypot \
(f8d6c791791d), boost-multiprec (acb8ef9b2478), literal casts (6bbd97f17534, \
39f65d65894f),
LLT: avoid making a copy when decomposing in place (2f7e28920f4e), const \
the arg to solveInPlace() to allow passing .transpose(), .block(), etc. \
(c31c0090e998).
Add possibility to overwrite EIGEN_STRONG_INLINE (7094bbdf3f4d)
Bug 1528: use numeric_limits::min() instead of 1/highest() that might \
underflow (dd823c64ade7)
Bug 1532: disable stl::*_negate in C++17 (they are deprecated) (88e9452099d5)
Add C++11 max_digits10 for half (faf74dde8ed1)
Make sparse QR result sizes consistent with dense QR (4638bc4d0f96)
Unsupported/unit-tests/cmake/unvisible internals/etc.
Bug 1484: restore deleted line for 128 bits long doubles, and improve \
dispatching logic. (dffc0f957f19)
Bug 1462: remove all occurences of the deprecated __CUDACC_VER__ macro \
by introducing EIGEN_CUDACC_VER (a201b8438d36)
Changeset 2722aa8eb93f: Fix oversharding bug in parallelFor.
Changeset ea1db80eab46: commit 45e9c9996da790b55ed9c4b0dfeae49492ac5c46 \
(HEAD -> memory_fix)
Changeset 350957be012c: Fix int versus Index
Changeset 424038431015: fix linking issue
Changeset 3f938790b7e0: Fix short vs long
Changeset ba14974d054a: Fix cmake scripts with no fortran compiler
Changeset 2ac088501976: add cmake-option to enable/disable creation of tests
Changeset 56996c54158b: Use col method for column-major matrix
Changeset 762373ca9793: Bug 1449: fix redux_3 unit test
Changeset eda96fd2fa30: Fix uninitialized output argument.
Changeset 75a12dff8ca4: Handle min/max/inf/etc issue in cuda_fp16.h \
directly in test/main.h
Changeset 568614bf79b8: Add tests for sparseQR results (value and size) \
covering bugs 1522 and 1544
Changeset 12c9ece47d14: SelfAdjointView<...,Mode> causes a static \
assert since commit c73a77e47db8
Changeset 899fd2ef704f: weird compilation issue in mapped_matrix.cpp
Eigen 3.3.4
Released on June 15, 2017.
Changes since 3.3.3:
General:
Improve speed of Jacobi rotation when mixing complex and real types.
Bug 1405: enable StrictlyLower/StrictlyUpper triangularView as the \
destination of matrix*matrix products.
UmfPack support: enable changes in the control settings and add report \
functions.
Bug 1423: fix LSCG's Jacobi preconditioner for row-major matrices.
Bug 1424: fix compilation issue with abs and unsigned integers as scalar \
type.
Bug 1410: fix lvalue propagation of Array/Matrix-Wrapper with a const \
nested expression.
Bug 1403: fix several implicit scalar type conversion making SVD \
decompositions compatible with ceres::Jet.
Fix some real-to-scalar-to-real useless conversions in ColPivHouseholderQR.
Regressions:
Fix dense * sparse-selfadjoint-view product.
Bug 1417: make LinSpace compatible with std::complex.
Bug 1400: fix stableNorm alignment issue with EIGEN_DONT_ALIGN_STATICALLY.
Bug 1411: fix alignment issue in Quaternion.
Fix compilation of operations between nested Arrays.
Bug 1435: fix aliasing issue in expressions like: A = C - B*A.
Others:
Fix compilation with gcc 4.3 and ARM NEON.
Fix prefetches on ARM64 and ARM32.
Fix out-of-bounds check in COLAMD.
Few minor fixes regarding nvcc/CUDA support, including bug 1396.
Improve cmake scripts for Pastix and BLAS detection.
Bug 1401: fix compilation of "cond ? x : -x" with x an \
AutoDiffScalar
Fix compilation of matrix log with Map as input.
Add specializations of std::numeric_limits for Eigen::half and and \
AutoDiffScalar
Fix compilation of streaming nested Array, i.e., cout << \
Array<Array<>>
|
Log message:
Update eigen3 to 3.2.7
Eigen 3.2.7
Released on November 5, 2015
Changes since 3.2.6:
* Main fixes and improvements:
+ Add support for dense.cwiseProduct(sparse).
+ Fix a regression regarding (dense*sparse).diagonal().
+ Make the IterativeLinearSolvers module compatible with
MPL2-only mode by defaulting to COLAMDOrdering and
NaturalOrdering for ILUT and ILLT respectively.
+ [59]Bug 266: backport support for c++11 move semantic
+ operator/=(Scalar) now performs a true division (instead of
mat*(1/s))
+ Improve numerical accuracy in LLT and triangular solve by
using true scalar divisions (instead of mat * (1/s))
+ [60]Bug 1092: fix iterative solver constructors for
expressions as input
+ [61]Bug 1088: fix setIdenity for non-compressed sparse-matrix
+ [62]Bug 1086: add support for recent SuiteSparse versions
* Others:
+ Add overloads for real-scalar times SparseMatrix<complex>
operations. This avoids real to complex conversions, and also
fixes a compilation issue with MSVC.
+ Use explicit Scalar types for AngleAxis initialization
+ Fix several shortcomings in cost computation (avoid multiple
re-evaluation in some very rare cases).
+ [63]Bug 1090: fix a shortcoming in redux logic for which
slice-vectorization plus unrolling might happen.
+ Fix compilation issue with MSVC by backporting
DenseStorage::operator= from devel branch.
+ [64]Bug 1063: fix nesting of unsupported/AutoDiffScalar to
prevent dead references when computing second-order
derivatives
+ [65]Bug 1100: remove explicit CMAKE_INSTALL_PREFIX prefix to
conform to cmake install's DESTINATION parameter.
+ unsupported/ArpackSupport is now properly installed by make
install.
+ [66]Bug 1080: warning fixes
Eigen 3.2.6
Released on October 1, 2015
Changes since 3.2.5:
* fix some compilation issues with MSVC 2013, including bugs [67]1000
and [68]1057
* SparseLU: fixes to support EIGEN_DEFAULT_TO_ROW_MAJOR ([69]bug
1053), and for empty ([70]bug 1026) and some structurally rank
deficient matrices ([71]bug 792)
* [72]Bug 1075: fix AlignedBox::sample() for Dynamic dimension
* fix regression in AMD ordering when a column has only one
off-diagonal non-zero (used in sparse Cholesky)
* fix Jacobi preconditioner with zero diagonal entries
* fix Quaternion identity initialization for non-implicitly
convertible types
* [73]Bug 1059: fix predux_max<Packet4i> for NEON
* [74]Bug 1039: fix some issues when redefining
EIGEN_DEFAULT_DENSE_INDEX_TYPE
* [75]Bug 1062: fix SelfAdjointEigenSolver for RowMajor matrices
* MKL: fix support for the 11.2 version, and fix a naming conflict
([76]bug 1067)
+ [77]Bug 1033: explicit type conversion from 0 to RealScalar
Eigen 3.3-alpha1
Released on September 4, 2015
See the [78]announcement.
Eigen 3.2.5
Released on June 16, 2015
Changes since 3.2.4:
* Changes with main impact:
+ Improve robustness of SimplicialLDLT to semidefinite problems
by correctly handling structural zeros in AMD reordering
+ Re-enable supernodes in SparseLU (fix a performance regression
in SparseLU)
+ Use zero guess in ConjugateGradients::solve
+ Add PermutationMatrix::determinant method
+ Fix SparseLU::signDeterminant() method, and add a
SparseLU::determinant() method
+ Allows Lower|Upper as a template argument of CG and MINRES: in
this case the full matrix will be considered
+ [79]Bug 872: remove usage of std::bind* functions (deprecated
in c++11)
* Numerical robustness improvements:
+ [80]Bug 1014: improve numerical robustness of the 3x3 direct
eigenvalue solver
+ [81]Bug 1013: fix 2x2 direct eigenvalue solver for identical
eigenvalues
+ [82]Bug 824: improve accuracy of Quaternion::angularDistance
+ [83]Bug 941: fix an accuracy issue in ColPivHouseholderQR by
continuing the decomposition on a small pivot
+ [84]Bug 933: improve numerical robustness in RealSchur
+ Fix default threshold value in SPQR
* Other changes:
+ Fix usage of EIGEN_NO_AUTOMATIC_RESIZING
+ Improved support for custom scalar types in SparseLU
+ Improve cygwin compatibility
+ [85]Bug 650: fix an issue with sparse-dense product and
rowmajor matrices
+ [86]Bug 704: fix MKL support (HouseholderQR)
+ [87]Bug 705: fix handling of Lapack potrf return code (LLT)
+ [88]Bug 714: fix matrix product with OpenMP support
+ [89]Bug 949: add static assertions for incompatible scalar
types in many of the dense decompositions
+ [90]Bugs 957, [91]1000: workaround MSVC/ICC compilation issues
when using sparse blocks
+ [92]Bug 969: fix ambiguous calls to Ref
+ [93]Bugs 972, [94]986: add support for coefficient-based
product with 0 depth
+ [95]Bug 980: fix taking a row (resp. column) of a column-major
(resp. row-major) sparse matrix
+ [96]Bug 983: fix an alignement issue in Quaternion
+ [97]Bug 985: fix RealQZ when either matrix had zero rows or
columns
+ [98]Bug 987: fix alignement guess in diagonal product
+ [99]Bug 993: fix a pitfall with matrix.inverse()
+ [100]Bugs 996, [101]1016: fix scalar conversions
+ [102]Bug 1003: fix handling of pointers non aligned on scalar
boundary in slice-vectorization
+ [103]Bug 1010: fix member initialization in IncompleteLUT
+ [104]Bug 1012: enable alloca on Mac OS or if alloca is defined
as macro
+ Doc and build system: [105]733, [106]914, [107]952, [108]961,
[109]999
Eigen 3.2.4
Released on January 21, 2015
Changes since 3.2.3:
* Fix compilation regression in Rotation2D
* [110]Bug 920: fix compilation issue with MSVC 2015.
* [111]Bug 921: fix utilization of bitwise operation on enums in
first_aligned.
* Fix compilation with NEON on some platforms.
Eigen 3.2.3
Released on December 16, 2014
Changes since 3.2.2:
* Core:
+ Enable Mx0 * 0xN matrix products.
+ [112]Bug 859: fix returned values for vectorized versions of
exp(NaN), log(NaN), sqrt(NaN) and sqrt(-1).
+ [113]Bug 879: tri1 = mat * tri2 was compiling and running
incorrectly if tri2 was not numerically triangular. Workaround
the issue by evaluating mat*tri2 into a temporary.
+ [114]Bug 854: fix numerical issue in
SelfAdjointEigenSolver::computeDirect for 3x3 matrices.
+ [115]Bug 884: make sure there no call to malloc for zero-sized
matrices or for a Ref<> without temporaries.
+ [116]Bug 890: fix aliasing detection when applying a
permutation.
+ [117]Bug 898: MSVC optimization by adding inline hint to
const_cast_ptr.
+ [118]Bug 853: remove enable_if<> in Ref<> ctor.
* Dense solvers:
+ [119]Bug 894: fix the sign returned by LDLT for multiple calls
to compute().
+ Fix JacobiSVD wrt underflow and overflow.
+ [120]Bug 791: fix infinite loop in JacobiSVD in the presence
of NaN.
* Sparse:
+ Fix out-of-bounds memory write when the product of two sparse
matrices is completely dense and performed using pruning.
+ UmfPack support: fix redundant evaluation/copies when calling
compute(), add support for generic expressions as input, and
fix extraction of the L and U factors ([121]Bug 911).
+ Improve SparseMatrix::block for const matrices (the generic
path was used).
+ Fix memory pre-allocation when permuting inner vectors of a
sparse matrix.
+ Fix SparseQR::rank for a completely empty matrix.
+ Fix SparseQR for row-major inputs.
+ Fix SparseLU::absDeterminant and add respective unit test.
+ BiCGSTAB: make sure that good initial guesses are not
destroyed by a bad preconditioner.
* Geometry:
+ Fix Hyperplane::Through(a,b,c) when points are aligned or
identical.
+ Fix linking issues in OpenGLSupport.
* OS, build system and doc:
+ Various compilation fixes including: [122]bug 821, [123]bug
822, [124]bug 857, [125]bug 871, [126]bug 873.
+ Fix many compilation warnings produced by recent compilers
including: [127]bug 909.
+ [128]Bug 861: enable posix_memalign with PGI.
+ Fix BiCGSTAB doc example.
Eigen 3.2.2
Released on August 4, 2014
Changes since 3.2.1:
* Core:
+ Relax Ref such that Ref<MatrixXf> accepts a RowVectorXf which
can be seen as a degenerate MatrixXf(1,N)
+ Fix performance regression for the vectorization of sub
columns/rows of matrices.
+ EIGEN_STACK_ALLOCATION_LIMIT: Raise its default value to
128KB, make use of it to assert on maximal fixed size object,
and allows it to be 0 to mean "no limit".
+ [129]Bug 839: Fix 1x1 triangular matrix-vector product.
+ [130]Bug 755: CommaInitializer produced wrong assertions in
absence of Return-Value-Optimization.
* Dense solvers:
+ Add a rank() method with threshold control to JacobiSVD, and
make solve uses it to return the minimal norm solution for
rank-deficient problems.
+ Various numerical fixes in JacobiSVD, including:[131]bug 843,
and the move from Lapack to Matlab strategy for the default
threshold.
+ Various numerical fixes in LDLT, including the case of
semi-definite complex matrices.
+ Fix ColPivHouseholderQR::rank().
+ [132]Bug 222: Make temporary matrix column-major independently
of EIGEN_DEFAULT_TO_ROW_MAJOR in BlockHouseholder.
* Sparse:
+ [133]http://eigen.tuxfamily.org/bz/show_bug.cgi?id=838 Bug
838]: Fix dense * sparse and sparse * dense outer products and
detect outer products from either the lhs or rhs.
+ Make the ordering method of SimplicialL[D]LT configurable.
+ Fix regression in the restart mechanism of BiCGSTAB.
+ [134]Bug 836: extend SparseQR to support more columns than
rows.
+ [135]Bug 808: Use double instead of float for the increasing
size ratio in CompressedStorage::resize, fix implicit
conversions from int/longint to float/double, and fix
set_from_triplets temporary matrix type.
+ [136]Bug 647: Use smart_copy instead of bitwise memcpy in
CompressedStorage.
+ GMRES: Initialize essential Householder vector with correct
dimension.
* Geometry:
+ [137]Bug 807: Missing scalar type cast in umeyama()
+ [138]Bug 806: Missing scalar type cast in
Quaternion::setFromTwoVectors()
+ [139]Bug 759: Removed hard-coded double-math from
Quaternion::angularDistance.
* OS, build system and doc:
+ Fix compilation with Windows CE.
+ Fix some ICEs with VC11.
+ Check IMKL version for compatibility with Eigen
+ [140]Bug 754: Only inserted (!defined(_WIN32_WCE)) analog to
alloc and free implementation.
+ [141]Bug 803: Avoid char* to int* conversion.
+ [142]Bug 819: Include path of details.h file.
+ [143]Bug 738: Use the "current" version of cmake project
directories to ease the inclusion of Eigen within other
projects.
+ [144]Bug 815: Fix doc of FullPivLU wrt permutation matrices.
+ [145]Bug 632: doc: Note that dm2 = sm1 + dm1 is not possible
+ Extend AsciiQuickReference (real, imag, conjugate, rot90)
Eigen 3.2.1
Released on February 26, 2014
Changes since 3.2.0:
* Eigen2 support is now deprecated and will be removed in version
3.3.
* Core:
+ Bug fix for Ref object containing a temporary matrix.
+ [146]Bug 654: Allow construction of row vector from 1D array.
+ [147]Bug 679: Support cwiseMin() and cwiseMax() on maps.
+ Support conservativeResize() on vectors.
+ Improve performance of vectorwise and replicate expressions.
+ [148]Bug 642: Add vectorization of sqrt for doubles, and make
sqrt really safe if EIGEN_FAST_MATH is disabled.
+ [149]Bug 616: Try harder to align columns when printing
matrices and arrays.
+ [150]Bug 579: Add optional run-time parameter to fixed-size
block methods.
+ Implement .all() and .any() for zero-sized objects
+ [151]Bug 708: Add placement new and delete for arrays.
+ [152]Bug 503: Better C++11 support.
* Dense linear algebra:
+ [153]Bug 689: Speed up some matrix-vector products by using
aligned loads if possible.
+ Make solve in FullPivHouseholderQR return least-square
solution if there is no exact solution.
+ [154]Bug 678: Fix fullPivHouseholderQR for rectangular
matrices.
+ Fix a 0/0 issue in JacobiSVD.
+ [155]Bug 736: Wrong result in LDLT::isPositiveDefinite() for
semi-definite matrices.
+ [156]Bug 740: Fix overflow issue in stableNorm().
+ Make pivoting HouseholderQR compatible with custom scalar
types.
* Geometry:
+ Fix compilation of Transform * UniformScaling
* Sparse matrices:
+ Fix elimination tree and SparseQR for fat rectangular
matrices.
+ [157]Bug 635: add isCompressed to MappedSparseMatrix for
compatibility.
+ [158]Bug 664: Support iterators without operator< in
setFromTriplets().
+ Fixes in SparseLU: infinite loop, aliasing issue when solving,
overflow in memory allocation, use exceptions only if enabled
([159]bug 672).
+ Fixes in SparseQR: reduce explicit zero, assigning result to
map, assert catching non-conforming sizes, memory leak.
+ [160]Bug 681: Uninitialized value in CholmodSupport which may
lead to incorrect results.
+ Fix some issues when using a non-standard index type ([161]bug
665 and more)
+ Update constrained CG (unsupported module) to Eigen3.
* OS and build system:
+ MacOS put OpenGL header files somewhere else from where we
expected it.
+ Do not assume that alloca() is 16-byte aligned on Windows.
+ Compilation fixes when using ICC with Visual Studio.
+ Fix Fortran compiler detection in CMake files.
* Fix some of our tests (bugs [162]744 and [163]748 and more).
* Fix a few compiler warnings (bug [164]317 and more).
* Documentation fixes (bugs [165]609, [166]638 and [167]739 and
more).
|