Eigen Changelog

New in version 3.2.0

August 10th, 2013
  • Dense world:
  • New Ref class allowing to write non templated function taking various kind of Eigen dense objects without copies.
  • New RealQZ factorization and GeneralizedEigenSolver.
  • Add vector-wise normalized and normalize functions, and hasNaN/allFinite members.
  • Add mixed static/dynamic-size .block() functions.
  • Optimize outer products for non rank-1 update operations.
  • Optimize diagonal products (enable vectorization in more cases).
  • Improve robustness and performance in JacobiSVD::solve().
  • Sparse world:
  • New SparseLU module: built-in sparse LU with supernodes and numerical row pivoting (port of SuperLU making the SuperLUSupport module obsolete).
  • New SparseQR module: rank-revealing sparse QR factorization with numerical column pivoting.
  • New COLAMD ordering and unified ordering API.
  • Add support for generic blocks of sparse matrices (read-only).
  • Add conservative resize feature on sparse matrices.
  • Add uniform support for solving sparse systems with sparse right hand sides.
  • Add support for sparse matrix time sparse self-adjoint view products.
  • Improve BiCGSTAB robustness with restart.
  • Support to external libraries:
  • New MetisSupport module: wrapper to the famous graph partitioning library.
  • New SPQRSupport module: wrapper to suitesparse's supernodal QR solver.

New in version 3.1.3 (April 24th, 2013)

  • Bug 526 - Fix linear vectorized transversal in linspace.
  • Bug 551 - Fix compilation issue when using EIGEN_DEFAULT_DENSE_INDEX_TYPE.
  • Bug 533 - Fix some missing const qualifiers in Transpose
  • Fix a compilation with CGAL::Gmpq by adding explicit internal:: namespace when calling abs().
  • Fix computation of outer-stride when calling .real() or .imag().
  • Fix handmade_aligned_realloc (affected conservativeResize()).
  • Fix sparse vector assignment from a sparse matrix.
  • Fix log(0) with SSE.
  • Fix bug in aligned_free with windows CE.
  • Fix traits of Map

New in version 3.2.0 Beta 1 (March 8th, 2013)

  • This beta version introduces built-in LU and QR factorizations for sparse matrices, a real-QZ factorization and a generalized eigen solver for dense matrices, a new Ref class to ease writing generic but non-template functions taking Eigen objects as arguments, wrappers to the Metis and SuiteSparse QR libraries, as well as a couple of minor enhancements and bug fixes.

New in version 3.1.2 (December 5th, 2012)

  • Bug 524 - Pardiso's parameter array does not have to be aligned!
  • Bug 521 - Disable __cpuidex on architectures different that x86 or x86-64 with MSVC.
  • Bug 519 - AlignedBox::dim() was wrong for dynamic dimensions.
  • Bug 515 - Fix missing explicit scalar conversion.
  • Bug 511 - Fix pretty printers on windows.
  • Bug 509 - Fix warnings with gcc 4.7
  • Bug 501 - Remove aggressive mat/scalar optimization (was replaced by mat*(1/scalar) for non integer types).
  • Bug 479 - Use EISPACK's strategy re max number of iters in Schur decomposition.
  • Add support for scalar multiple of diagonal matrices.
  • Forward resize() function from Array/Matrix wrappers to the nested expression such that mat.array().resize(a,b) is now allowed.
  • Windows CE: fix the lack of the aligned_malloc function on this platform.
  • Fix comma initializer when inserting empty matrices.
  • Fix dense=sparse*diagonal products.
  • Fix compilation with m.array().min(scalar) and m.array().max(scalar).
  • Fix out-of-range memory access in GEMV (the memory was not used for the computation, only to assemble unaligned packets from aligned packet loads).
  • Fix various regressions with MKL support.
  • Fix aliasing issue in sparse matrix assignment.
  • Remove stupid assert in blue norm.
  • Workaround a weird compilation error with MSVC.

New in version 3.1 (June 26th, 2012)

  • A new set of officially supported sparse modules for the representation, assembly, and solving of sparse problems, including many built-in and third-party sparse linear solvers.
  • The ability to seamlessly fallback to Intel MKL for some operations such as including matrix products, dense matrix decompositions, and math array operations.
  • These optional backends can be enabled at compile-time.
  • Some new coefficient and vector-wise operations, rank update/downdate for LLT and LDLT factorizations, closed form eigen-decompositions, and some memory and performance optimizations.

New in version 3.0.5 (February 11th, 2012)

  • This is a maintenance release with various bug and warning fixes.

New in version 3.0.3 (October 7th, 2011)

  • This version allows the user to specify the pkgconfig destination, makes several improvements to the documentation, and fixes compilation errors when Eigen2 support is enabled, a bug in evaluating expressions of the form matrix1 * matrix2 * scalar1 * scalar2, solutions using LDLT for singular matrices if a solution exists, and an infinite loop when computing SVD of some matrices with very small numbers.

New in version 3.0.2 (August 29th, 2011)

  • Among various minor bug fixes, this release fixes some compilation issues with MinGW, improves the compliance to the C++ standard, and, for windows.h users, it is not necessary to #undef the min/max macros anymore.

New in version 3.0.1 (May 31st, 2011)

  • In addition to various minor bugfixes, this release brings official support for gcc 4.6 and ARM NEON as well as improved support for custom scalar types.
  • The latter includes exceptions safety and the automatic uses of the math functions declared in the scalar type's namespace.