Changelog has been taken from 
	http://eigen.tuxfamily.org/index.php?title=ChangeLog

== Eigen 3.2.0 ==

Released on July 24, 2013.

Major new features and optimizations since 3.1:

* Dense world
** New [http://eigen.tuxfamily.org/dox-devel/classEigen_1_1Ref.html Ref<>]
class allowing to write non templated function taking various kind of Eigen
dense objects without copies.
** New [http://eigen.tuxfamily.org/dox-devel/classEigen_1_1RealQZ.html RealQZ]
factorization and
[http://eigen.tuxfamily.org/dox-devel/classEigen_1_1GeneralizedEigenSolver.html
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 [http://eigen.tuxfamily.org/dox-devel/group__SparseLU__Module.html
SparseLU] module: built-in sparse LU with supernodes and numerical row
pivoting (port of SuperLU making the SuperLUSupport module obsolete).
** New [http://eigen.tuxfamily.org/dox-devel/group__SparseQR__Module.html
SparseQR] module: rank-revealing sparse QR factorization with numerical column
pivoting.
** New [http://eigen.tuxfamily.org/dox-devel/classEigen_1_1COLAMDOrdering.html
COLAMD] ordering and unified
[http://eigen.tuxfamily.org/dox-devel/group__OrderingMethods__Module.html
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 [http://eigen.tuxfamily.org/dox-devel/group__MetisSupport__Module.html
MetisSupport] module: wrapper to the famous graph partitioning library.
** New [http://eigen.tuxfamily.org/dox-devel/group__SPQRSupport__Module.html
SPQRSupport] module: wrapper to suitesparse's supernodal QR solver.

== Eigen 3.2-rc2 ==

Released on July 19, 2013.

Changes since 3.2-rc1:

* Rename DenseBase::isFinite() to allFinite() to avoid a future naming
collision.
* Fix an ICE with ICC 11.1.

== Eigen 3.2-rc1 ==

Released on July 17, 2013.

Main changes since 3.2-beta1:
* New features:
** [http://eigen.tuxfamily.org/bz/show_bug.cgi?id=562 Bug 562]: Add
vector-wise normalized and normalize functions.
** [http://eigen.tuxfamily.org/bz/show_bug.cgi?id=564 Bug 564]: Add hasNaN and
isFinite members.
** [http://eigen.tuxfamily.org/bz/show_bug.cgi?id=579 Bug 579]: Add support
for mixed static/dynamic-size .block().
** [http://eigen.tuxfamily.org/bz/show_bug.cgi?id=588 Bug 588]: Add support
for determinant in SparseLU.
** Add support in SparseLU to solve with L and U factors independently.
** Allow multiplication-like binary operators to be applied on type
combinations supported by scalar_product_traits.
** [http://eigen.tuxfamily.org/bz/show_bug.cgi?id=596 Bug 596]: Add conversion
from SparseQR::matrixQ() to a SparseMatrix.
** [http://eigen.tuxfamily.org/bz/show_bug.cgi?id=553 Bug 553]: Add support
for sparse matrix time sparse self-adjoint view products.

* Accuracy and performance:
** Improve BiCGSTAB robustness: fix a divide by zero and allow to restart with
a new initial residual reference.
** [http://eigen.tuxfamily.org/bz/show_bug.cgi?id=71 Bug 71]: Enable
vectorization of diagonal products in more cases.
** [http://eigen.tuxfamily.org/bz/show_bug.cgi?id=620 Bug 620]: Fix robustness
and performance issues in JacobiSVD::solve.
** [http://eigen.tuxfamily.org/bz/show_bug.cgi?id=609 Bug 609]: Improve
accuracy and consistency of the eulerAngles functions.
** [http://eigen.tuxfamily.org/bz/show_bug.cgi?id=613 Bug 613]: Fix accuracy
of SSE sqrt for very small numbers.
** Enable SSE with ICC even when it mimics a gcc version lower than 4.2.
** Add SSE4 min/max for integers.
** [http://eigen.tuxfamily.org/bz/show_bug.cgi?id=590 Bug 590] &
[http://eigen.tuxfamily.org/bz/show_bug.cgi?id=591 591]: Minor improvements in
NEON vectorization.

* Bug fixes:
** Fix HouseholderSequence::conjugate() and ::adjoint().
** Fix SparseLU for dense matrices and matrices in non compressed mode.
** Fix SparseMatrix::conservativeResize() when one dimension is null.
** Fix transposeInpPlace for arrays.
** Fix handmade_aligned_realloc.
** [http://eigen.tuxfamily.org/bz/show_bug.cgi?id=554 Bug 554]: Fix detection
of the presence of posix_memalign with mingw.
** [http://eigen.tuxfamily.org/bz/show_bug.cgi?id=556 Bug 556]: Workaround
mingw bug with -O3 or -fipa-cp-clone options.
** [http://eigen.tuxfamily.org/bz/show_bug.cgi?id=608 Bug 608]: Fix sign
computation in LDLT.
** [http://eigen.tuxfamily.org/bz/show_bug.cgi?id=567 Bug 567]: Fix iterative
solvers to immediately return when the initial guess is the true solution and
for trivial solution.
** [http://eigen.tuxfamily.org/bz/show_bug.cgi?id=607 Bug 607]: Fix support
for implicit transposition from dense to sparse vectors.
** [http://eigen.tuxfamily.org/bz/show_bug.cgi?id=611 Bug 611]: Fix support
for products of the form diagonal_matrix * sparse_matrix * diagonal_matrix.

* Others:
** [http://eigen.tuxfamily.org/bz/show_bug.cgi?id=583 Bug 583]: Add
compile-time assertion to check DenseIndex is signed.
** [http://eigen.tuxfamily.org/bz/show_bug.cgi?id=63 Bug 63]: Add lapack unit
tests. They are automatically downloaded and configured if
EIGEN_ENABLE_LAPACK_TESTS is ON.
** [http://eigen.tuxfamily.org/bz/show_bug.cgi?id=563 Bug 563]: Assignment to
Block<SparseMatrix> is now allowed on non-compressed matrices.
** [http://eigen.tuxfamily.org/bz/show_bug.cgi?id=626 Bug 626]: Add assertion
on input ranges for coeff* and insert members for sparse objects.
** [http://eigen.tuxfamily.org/bz/show_bug.cgi?id=314 Bug 314]: Move special
math functions from internal to numext namespace.
** Fix many warnings and compilation issues with recent compiler versions.
** Many other fixes including
[http://eigen.tuxfamily.org/bz/show_bug.cgi?id=230 Bug 230],
[http://eigen.tuxfamily.org/bz/show_bug.cgi?id=482 Bug 482],
[http://eigen.tuxfamily.org/bz/show_bug.cgi?id=542 Bug 542],
[http://eigen.tuxfamily.org/bz/show_bug.cgi?id=561 Bug 561],
[http://eigen.tuxfamily.org/bz/show_bug.cgi?id=564 Bug 564],
[http://eigen.tuxfamily.org/bz/show_bug.cgi?id=565 Bug 565],
[http://eigen.tuxfamily.org/bz/show_bug.cgi?id=566 Bug 566],
[http://eigen.tuxfamily.org/bz/show_bug.cgi?id=578 Bug 578],
[http://eigen.tuxfamily.org/bz/show_bug.cgi?id=581 Bug 581],
[http://eigen.tuxfamily.org/bz/show_bug.cgi?id=595 Bug 595],
[http://eigen.tuxfamily.org/bz/show_bug.cgi?id=597 Bug 597],
[http://eigen.tuxfamily.org/bz/show_bug.cgi?id=598 Bug 598],
[http://eigen.tuxfamily.org/bz/show_bug.cgi?id=599 Bug 599],
[http://eigen.tuxfamily.org/bz/show_bug.cgi?id=605 Bug 605],
[http://eigen.tuxfamily.org/bz/show_bug.cgi?id=606 Bug 606],
[http://eigen.tuxfamily.org/bz/show_bug.cgi?id=615 Bug 615].

== Eigen 3.1.3 ==

Released on April 16, 2013

Changes since 3.1.2:

* [http://eigen.tuxfamily.org/bz/show_bug.cgi?id=526 Bug 526] - Fix linear vectorized transversal in linspace.
* [http://eigen.tuxfamily.org/bz/show_bug.cgi?id=551 Bug 551] - Fix compilation issue when using EIGEN_DEFAULT_DENSE_INDEX_TYPE.
* [http://eigen.tuxfamily.org/bz/show_bug.cgi?id=533 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<Quaternion.
* Fix a few warnings ([http://eigen.tuxfamily.org/bz/show_bug.cgi?id=507 507], [http://eigen.tuxfamily.org/bz/show_bug.cgi?id=535 535], [http://eigen.tuxfamily.org/bz/show_bug.cgi?id=581 581]).
* Enable SSE with ICC even when it mimics a gcc version lower than 4.2
* Workaround [http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53900 gcc-4.7 bug #53900] (too aggressive optimization in our alignment check)

== Eigen 3.2-beta1 ==

Released on March 07, 2013

Main changes since 3.1:

* Dense modules
** A new [http://eigen.tuxfamily.org/dox-devel/classEigen_1_1Ref.html Ref<>] class allowing to write non templated function taking various kind of Eigen dense objects without copies.
** New [http://eigen.tuxfamily.org/dox-devel/classEigen_1_1RealQZ.html RealQZ] factorization and [http://eigen.tuxfamily.org/dox-devel/classEigen_1_1GeneralizedEigenSolver.html GeneralizedEigenSolver]
** Optimized outer products for non rank-1 update operations.

* Sparse modules
** New [http://eigen.tuxfamily.org/dox-devel/group__SparseLU__Module.html SparseLU] module: built-in sparse LU with supernodes and numerical row pivoting (port of SuperLU making the SuperLUSupport module obsolete).
** New [http://eigen.tuxfamily.org/dox-devel/group__SparseQR__Module.html SparseQR] module: rank-revealing sparse QR factorization with numerical column pivoting.
** OrderingMethods: extended with [http://eigen.tuxfamily.org/dox-devel/classEigen_1_1COLAMDOrdering.html COLAMD] ordering and a unified [http://eigen.tuxfamily.org/dox-devel/group__OrderingMethods__Module.html ordering] API.
** Support for generic blocks of sparse matrices.
** Add conservative resize feature on sparse matrices.
** Add uniform support for solving sparse systems with sparse right hand sides.

* Support to external libraries 
** New [http://eigen.tuxfamily.org/dox-devel/group__MetisSupport__Module.html MetisSupport] module: wrapper to the famous graph partitioning library.
** New [http://eigen.tuxfamily.org/dox-devel/group__SPQRSupport__Module.html SPQRSupport] module: wrapper to suitesparse's supernodal QR solver.

* Misc
** Improved presentation and clarity of Doxygen generated documentation (modules are now organized into chapters, treeview panel and search engine for quick navagitation).
** New compilation token EIGEN_INITIALIZE_MATRICES_BY_NAN to help debugging.
** All bug fixes of the 3.1 branch, plus a couple of other fixes (including 211, 479, 496, 508, 552)


== Eigen 3.1.2 ==

Released on Nov 05, 2012

Changes since 3.1.1:

* [http://eigen.tuxfamily.org/bz/show_bug.cgi?id=524 Bug 524] - Pardiso's parameter array does not have to be aligned!
* [http://eigen.tuxfamily.org/bz/show_bug.cgi?id=521 Bug 521] - Disable __cpuidex on architectures different that x86 or x86-64 with MSVC.
* [http://eigen.tuxfamily.org/bz/show_bug.cgi?id=519 Bug 519] - AlignedBox::dim() was wrong for dynamic dimensions.
* [http://eigen.tuxfamily.org/bz/show_bug.cgi?id=515 Bug 515] - Fix missing explicit scalar conversion.
* [http://eigen.tuxfamily.org/bz/show_bug.cgi?id=511 Bug 511] - Fix pretty printers on windows.
* [http://eigen.tuxfamily.org/bz/show_bug.cgi?id=509 Bug 509] - Fix warnings with gcc 4.7
* [http://eigen.tuxfamily.org/bz/show_bug.cgi?id=501 Bug 501] - Remove aggressive mat/scalar optimization (was replaced by mat*(1/scalar) for non integer types).
* [http://eigen.tuxfamily.org/bz/show_bug.cgi?id=479 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.


== Eigen 3.1.1 ==

Released on July 22, 2012

Changes since 3.1.0:
* [[Main_Page#License|relicense to MPL2]]
* add a EIGEN_MPL2_ONLY build option to generate compiler errors when including non-MPL2 modules
* remove dynamic allocation for triangular matrix-matrix products of fixed size objects
* Fix possible underflow issues in SelfAdjointEigenSolver
* Fix issues with fixed-size Diagonal (sub/super diagonal size computation was wrong)
* [http://eigen.tuxfamily.org/bz/show_bug.cgi?id=487 Bug 487] - Geometry module: isometry * scaling compilation error
* [http://eigen.tuxfamily.org/bz/show_bug.cgi?id=486 Bug 486] - MKL support: fixed multiple-references linker errors with various decompositions
* [http://eigen.tuxfamily.org/bz/show_bug.cgi?id=480 Bug 480] - work around compilation error on Android NDK due to isfinite being defined as a macro
* [http://eigen.tuxfamily.org/bz/show_bug.cgi?id=485 Bug 485] - IterativeLinearSolvers: conflict between a typedef and template type parameter
* [http://eigen.tuxfamily.org/bz/show_bug.cgi?id=479 Bug 479] - Eigenvalues/Schur: Adjust max iterations count to matrix size
* Fixed Geometry module compilation under MSVC
* Fixed Sparse module compilation under MSVC 2005


== Eigen 3.1.0 ==

Released on June 24, 2012.

Major changes between Eigen 3.0 and Eigen 3.1:
* New features
** '''New set of officially supported Sparse Modules'''
*** This includes sparse matrix storage, assembly, and many built-in (Cholesky, CG, BiCGSTAB, ILU), and third-party (PaStiX, Cholmod, UmfPack, SuperLU, Pardiso) solvers
*** See this [http://eigen.tuxfamily.org/dox-devel/TutorialSparse.html page] for an overview of the features
** '''Optional support for Intel MKL'''
*** This includes the BLAS, LAPACK, VML, and Pardiso components
*** See this [http://eigen.tuxfamily.org/dox-devel/TopicUsingIntelMKL.html page] for the details
** Core
*** New vector-wise operators: *, /, *=, /=
*** New coefficient-wise operators: &&, ||,  min(Scalar), max(Scalar), pow, operator/(Scalar,ArrayBase)
** Decompositions
*** Add incremental rank-updates in LLTand LDLT
*** New SelfAdjointEigenSolver::computeDirect() function for fast eigen-decomposition through closed-form formulas (only for 2x2 and 3x3 real matrices)
* Optimizations
** Memory optimizations in JacobiSVD and triangular solves.
** Optimization of reductions via partial unrolling (e.g., dot, sum, norm, etc.)
** Improved performance of small matrix-matrix products and some Transform<> operations


== Eigen 3.1.0-rc2 ==

Released on June 21, 2012.

Changes since 3.1.0-rc1:
* Fix a couple of compilation warnings
* Improved documentation, in particular regarding the Geometry and Sparse tutorials, and sparse solver modules
* Fix double preconditioner allocation in JacobiSVD
* [http://eigen.tuxfamily.org/bz/show_bug.cgi?id=466 Bug 466]:RealSchur failed on a zero matrix
* Update Adolc and MPReal support modules

== Eigen 3.1.0-rc1 ==

Released on June 14, 2012

Main changes since 3.1.0-beta1:
* [http://eigen.tuxfamily.org/bz/show_bug.cgi?id=466 Bug 466]: fix a possible race condition issue. from now, multithreaded applications that call Eigen from multiple thread must initialize Eigen by calling initParallel().
* For consistency, SimplicialLLT and SimplicialLDLT now factorizes P A P^-1 (instead of P^-1 A P).
* [http://eigen.tuxfamily.org/bz/show_bug.cgi?id=475 Bug 475]: now the vectorized exp operator returns +inf when overflow occurs
* Fix the use of MKL with MSVC by disabling MKL's pow functions.
* Avoid dynamic allocation for fixed size triangular solving
* Fix a compilation issue with ICC 11.1
* Fix ambiguous calls in the math functors
* Fix BTL interface.


== Eigen 3.1.0-beta1 ==

Released on June 7, 2012

Main changes since 3.0.1-alpha2:
* '''API changes'''
** SimplicialLLt and SimplicialLDLt are now renamed SimplicialLLT and SimplicialLDLT for consistency with the other modules.
** The Pardiso support module is now spelled "PardisoSupport"
* Dense modules:
** Add operator/(Scalar,ArrayBase) and coefficient-wise pow operator.
** Fix automatic evaluation of expressions nested by Replicate (performance improvement)
** [http://eigen.tuxfamily.org/bz/show_bug.cgi?id=447 Bug 447]  Fix infinite recursion in ProductBase::coeff()
** [http://eigen.tuxfamily.org/bz/show_bug.cgi?id=455 Bug 455] add support for c++11 in aligned_allocator
** LinSpace: add a missing variant, and fix the size=1 case
* Sparse modules:
** Add an '''IncompleteLU''' preconditioner with dual thresholding.
** Add an interface to the parallel '''Pastix''' solver
** Improve applicability of permutations (add SparseMatrixBase::twistedBy, handle non symmetric permutations)
** CholmodDecomposition now has explicit variants: CholmodSupernodalLLT, CholmodSimplicialLLT, CholmodSimplicialLDLT
** Add analysePattern/factorize methods to iterative solvers
** Preserve explicit zero in a sparse assignment
** Speedup sparse*dense products
** Fix a couple of issues with Pardiso support
* Geometry module:
** Improve performance of some Transform<> operations by better preserving the alignment status.
** [http://eigen.tuxfamily.org/bz/show_bug.cgi?id=415 Bug 415] wrong return type in Rotation2D::operator*=
** [http://eigen.tuxfamily.org/bz/show_bug.cgi?id=439 Bug 439] add Quaternion::FromTwoVectors() static constructor
** [http://eigen.tuxfamily.org/bz/show_bug.cgi?id=362 Bug 362] missing specialization for affine-compact * projective
* Others:
** add support for RVCT 3.1 compiler
** New tutorial page on Map
** and many other bug fixes such as: [http://eigen.tuxfamily.org/bz/show_bug.cgi?id=417 Bug 417], [http://eigen.tuxfamily.org/bz/show_bug.cgi?id=419 Bug 419], [http://eigen.tuxfamily.org/bz/show_bug.cgi?id=450 Bug 450]


== Eigen 3.0.5 ==

Released February 10, 2012

Changes since 3.0.4:
* [http://eigen.tuxfamily.org/bz/show_bug.cgi?id=417 Bug 417] - fix nesting of Map expressions
* [http://eigen.tuxfamily.org/bz/show_bug.cgi?id=415 Bug 415] - fix return value of Rotation2D::operator*=
* [http://eigen.tuxfamily.org/bz/show_bug.cgi?id=410 Bug 410] - fix a possible out of range access in EigenSolver
* [http://eigen.tuxfamily.org/bz/show_bug.cgi?id=406 Bug 406] - fix infinite loop/deadlock when using OpenMP and Eigen 
* Changeset 4462 - fix broken asserts revealed by Clang
* Changeset 4457 - fix description of rankUpdate() in quick reference guide
* Changeset 4455 - fix out-of-range int constant in 4x4 inverse
* [http://eigen.tuxfamily.org/bz/show_bug.cgi?id=398 Bug 398] - fix in slerp: the returned quaternion was not always normalized
* Changeset 4432 - fix asserts in eigenvalue decompositions
* Changeset 4416 - fix MSVC integer overflow warning


== Eigen 3.1.0-alpha2 ==

Released February 6, 2012

Main changes since 3.0.1-alpha1:
* New optional support for Intel MKL and other BLAS including: ([http://eigen.tuxfamily.org/dox-devel/TopicUsingIntelMKL.html details])
** BLAS (arbitrary BLAS)
** Intel LAPACKE
** Intel VML (coefficient-wise math operations)
** Intel PARDISO (sparse direct solver)
* Dense modules:
** improved performance of small matrix-matrix products
** [http://eigen.tuxfamily.org/bz/show_bug.cgi?id=319 Feature 319] - add a rankUpdate function to LDLt and LLT for updates/downdates
** [http://eigen.tuxfamily.org/bz/show_bug.cgi?id=400 Feature 400] - new coefficient wise min/max functions taking one scalar argument
* Sparse modules:
** new fast sparse matrix assembly interface from a random list of triplets (see SparseMatrix::setFromTriplets())
** new shifting feature in SimplicialCholesky (see SimplicialCholeskyBase::setShift())
** add checks for positive definiteness in SimplicialCholesky
** improved heuristic to predict the nnz of a saprse*sparse product
** add support for uncompressed SparseMatrix in CholmodSupport
* Geometry module:
** [http://eigen.tuxfamily.org/bz/show_bug.cgi?id=297 Feature 297] - add ParametrizedLine::intersectionPoint() and intersectionParam() functions
*Others:
** fix many warnings and compilation issues with ICC 12 and -strict-ansi
** fix some ICE with MSVC10
** add the possibility to disable calls to cpuid (-DEIGEN_NO_CPUID) and other asm directives
** and many other bug fixes such as: 406, 410, 398, 396, 394, 354, 352, 301,


== Eigen 3.1.0-alpha1 ==

Released December 6, 2011

Main changes since 3.0:
* Officially supported set of sparse modules. See this [http://eigen.tuxfamily.org/dox-devel/TutorialSparse.html page] for an overview of the features. Main changes:
** new SparseCore module equivalent to the old Sparse module, the Sparse module is now a super module including all sparse-related modules
*** the SparseMatrix class is now more versatile and supports an uncompressed mode for fast element insertion
*** the SparseMatrix class now offer a unique and simplified API to insert elements
*** DynamicSparseMatrix has been deprecated (moved into unsupported/SparseExtra)
*** new conservative sparse * sparse matrix product which is also used by default
** new SparseCholesky module featuring the SimplicialLLT and SimplicialLDLT built-in solvers
** new IterativeLinearSolvers module featuring a conjugate gradient and stabilized bi-conjugate gradient iterative solvers with a basic Jacobi preconditioner
* New SelfAdjointEigenSolver::computeDirect() function for fast eigen-decomposition through closed-form formulas (only for 2x2 and 3x3 real matrices)
* New LLT::rankUpdate() function supporting both updates and down-dates
* Optimization of reduction via partial unrolling (e.g., dot, sum, norm, etc.)
* New coefficient-wise operators: && and ||
* [http://eigen.tuxfamily.org/bz/show_bug.cgi?id=157 Feature 157] - New vector-wise operations for arrays: *, /, *=, and /=.
* [http://eigen.tuxfamily.org/bz/show_bug.cgi?id=206 Feature 206] - Pre-allocation of intermediate buffers in JacobiSVD
* [http://eigen.tuxfamily.org/bz/show_bug.cgi?id=370 Feature 370] - New typedefs for AlignedBox
* All the fixes and improvements of the 3.0 branch up to the 3.0.4 release (see below)


== Eigen 3.0.4 ==

Released December 6, 2011

Changes since 3.0.3:

* [http://eigen.tuxfamily.org/bz/show_bug.cgi?id=363 Bug 363] - check for integer overflow in size computations
* [http://eigen.tuxfamily.org/bz/show_bug.cgi?id=369 Bug 369] - Quaternion alignment is broken (and more alignment fixes)
* [http://eigen.tuxfamily.org/bz/show_bug.cgi?id=354 Bug 354] - Converge better in SelfAdjointEigenSolver, and allow better handling of non-convergent cases
* [http://eigen.tuxfamily.org/bz/show_bug.cgi?id=347 Bug 347] - Fix compilation on ARM NEON with LLVM 3.0 and iOS SDK 5.0
* [http://eigen.tuxfamily.org/bz/show_bug.cgi?id=372 Bug 372] - Put unsupported modules documentation at the right place
* [http://eigen.tuxfamily.org/bz/show_bug.cgi?id=383 Bug 383] - Fix C++11 compilation problem due to some constructs mis-interpreted as c++11 user-defined literals
* [http://eigen.tuxfamily.org/bz/show_bug.cgi?id=373 Bug 373] - Compilation error with clang 2.9 when exceptions are disabled
* Fix compilation issue with QuaternionBase::cast


== Eigen 3.0.3 ==

Released October 6, 2011

Changes since 3.0.2:

* Fix compilation errors when Eigen2 support is enabled.
* Fix bug in evaluating expressions of the form matrix1 * matrix2 * scalar1 * scalar2.
* Fix solve using LDLT for singular matrices if solution exists.
* Fix infinite loop when computing SVD of some matrices with very small numbers.
* Allow user to specify pkgconfig destination.
* Several improvements to the documentation.


== Eigen 3.0.2 ==

Released August 26, 2011

Changes since 3.0.1:

* Windows.h: protect min/max calls from macros having the same name (no need to #undef min/max anymore).
* MinGW: fix compilation issues and pretty gdb printer.
* Standard compliance: fix aligned_allocator and remove uses of long long.
* MPReal: updates for the new version.
* Other fixes:
** fix aligned_stack_memory_handler for null pointers.
** fix std::vector support with gcc 4.6.
** fix linking issue with OpenGL support.
** fix SelfAdjointEigenSolver for 1x1 matrices.
** fix a couple of warnings with new compilers.
** fix a few documentation issues.


== Eigen 3.0.1 ==

Released May 30, 2011

Changes since 3.0.0:

* Fix many bugs regarding ARM and NEON (Now all tests succeed on ARM/NEON).
* Fix compilation on gcc 4.6
* Improved support for custom scalar types:
** Fix memory leak issue for scalar types throwing exceptions.
** Fix implicit scalar type conversion.
** Math functions can be defined in the scalar type's namespace.
* Fix bug in trapezoidal matrix time matrix product.
* Fix asin.
* Fix compilation with MSVC 2005 (SSE was wrongly enabled).
* Fix bug in EigenSolver: normalize the eigen vectors.
* Fix Qt support in Transform.
* Improved documentation.


== Eigen 3.0.0 ==

Released March 19, 2011, at the [[Paris_2011_Meeting|meeting]].

See the [[3.0|Eigen 3.0 release notes]].

Only change since 3.0-rc1:
* Fixed compilation of the unsupported 'openglsupport' test.


== Eigen 3.0-rc1 ==

Released March 14, 2011.

Main changes since 3.0-beta4:

* Core: added new EIGEN_RUNTIME_NO_MALLOC option and new set_is_malloc_allowed() option to finely control where dynamic memory allocation is allowed. Useful for unit-testing of functions that must not cause dynamic memory allocations.
* Core: SSE performance fixes (follow-up from bug 203).
* Core: Fixed crashes when using EIGEN_DONT_ALIGN or EIGEN_DONT_ALIGN_STATICALLY (bug 213 and friends).
* Core: EIGEN_DONT_ALIGN and EIGEN_DONT_ALIGN_STATICALLY are now covered by unit tests.
* Geometry: Fixed transform * matrix products (bug 207).
* Geometry: compilation fix for mixing CompactAffine with Homogeneous objects
* Geometry: compilation fix for 1D transform
* SVD: fix non-computing constructors (correctly forward computationOptions) (bug 206)
* Sparse: fix resizing when the destination sparse matrix is row major (bug 37)
* more Eigen2Support improvements
* more unit test fixes/improvements
* more documentation improvements
* more compiler warnings fixes
* fixed GDB pretty-printer for dynamic-size matrices (bug 210)


== Eigen 3.0-beta4 ==

Released February 28, 2011.

Main changes since 3.0-beta3:

* Non-vectorization bug fixes:
** fix bug 89: work around an extremely evil compiler bug on old GCC (<= 4.3) with the standard assert() macro
** fix Umfpack back-end in the complex case
* Vectorization bug fixes:
** fix a segfault in "slice vectorization" when the destination might not be aligned on a scalar (complex<double>)
** fix bug 195: fast SSE unaligned loads fail on GCC/i386 and on Clang
** fix bug 186: worked around a GCC 4.3 i386 backend issue with SSE
** fix bug 203: SSE: a workaround used in pset1() resulted in poor assembly
** worked around a GCC 4.2.4 internal compiler error with vectorization of complex numbers
** lots of AltiVec compilation fixes
** NEON compilation fixes
* API additions and error messages improvements
** Transform: prevent bad user code from compiling
** fix bug 190: directly pass Transform Options to Matrix, allowing to use RowMajor. Fix issues in Transform with non-default Options. 
** factorize implementation of standard real unary math functions, and add acos, asin
* Build/tests system 
** Lots of unit test improvements
** fix installation of unsupported modules
** fixed many compiler warnings, especially on the Intel compiler and on LLVM/Clang
** CTest/CMake improvements
** added option to build in 32bit mode
* BLAS/LAPACK implementation improvements
** The Blas library and tests are now automatically built as part of the tests.
** expanded LAPACK interface (including syev)
** now Sparse solver backends use our own BLAS/LAPACK implementation
** fix bug 189 (cblat1 test failure)
* Documentation
** improved conservativeResize methods documentation
** documented sorting of eigenvalues
** misc documentation improvements
** improve documentation of plugins


== Eigen 3.0-beta3 ==

Released February 12, 2011.

The biggest news is that the API is now '''100% stable'''.

Main changes since 3.0-beta2:

* The "too many to list them all" category:
**lots of bug fixes
**lots of performance fixes
**lots of compiler support fixes
**lots of warning fixes
**lots of unit tests improvements and fixes
**lots of documentation improvements
**lots of build system fixes
*API changes:
**replaced ei_ prefix by internal:: namespace. For example, ei_cos(x) becomes internal::cos(x).
**renamed PlanarRotation -> JacobiRotation
**renamed DenseStorageBase -> PlainObjectBase
**HouseholderSequence API cleanup
**refactored internal metaprogramming helpers to follow closely the standard library
**made UpperBidiagonalization internal
**made BandMatrix/TridiagonalMatrix internal
**Core: also see below, "const correctness".
**Sparse: EIGEN_YES_I_KNOW_SPARSE_MODULE_IS_NOT_STABLE_YET must be defined to use Eigen/Sparse
**Core: random<interger type>() now spans over range of width RAND_MAX
*New API:
**Core: added Map static methods taking strides
**SVD: added jacobiSvd() method
**Sparse: many misc improvements and new features. Improved support for Cholmod, Amd, SuperLU and other back-ends.
**Core: allow mixed real-complex dot products 
**Geometry: allow mixed real-complex cross products 
**Geometry: allow to pass Options parameters to Transform, Quaternion and other templates, to control memory alignment
**QR: add threshold API to FullPivHouseholderQR
**Core: added tan function
*Const correctness:
**Eigen now properly enforces const-correctness everywhere, for example with Map objects. This will break compilation of code that relied on former behavior.
**A new kind of test suite was added to check that, 'failtest'.
*BLAS/LAPACK:
**Complete BLAS library built on top of Eigen. Imported BLAS test suite, which allowed to fix many issues.
**Partial LAPACK implementation. Passing part of the LAPACK test suite, which also allowed to fix some issues.
*Eigen 2 Support:
**tons of improvements in EIGEN2_SUPPORT
**new incremental migration path: see http://eigen.tuxfamily.org/dox-devel/Eigen2SupportModes.html
**imported a copy of the Eigen 2 test suite, made sure that Eigen 3 passes it. That also allowed to fix several issues.


== Eigen 3.0-beta2 ==

Released October 15, 2010.

Main changes since 3.0-beta1:

* Add support for the vectorization of std::complex<> with SSE, AltiVec and NEON.
* Add support for mixed real * complex matrix products with vectorization.
* Finalize the JacobiSVD class with: compile time options, thin/full decompositions, and least-square solving.
* Several improvement of the Transform class. In particular, there is no default mode anymore.
* New methods: middleRows(), middleCols(), TriangularMatrix::conjugate()
* New unsupported modules: OpenGL, MPFR C++
* Many improvements in the support of empty objects.
* Many improvements of the vectorization logic.
* Add the possibility to extend QuaternionBase.
* Vectorize Quaternion multiplication with double.
* Significant improvements of the documentation.
* Improved compile time errors.
* Enforce static allocation of temporary buffers in gemm (when possible).
* Fix aligned_delete for null pointers and non trivial dtors.
* Fix eigen decomposition of 3x3 float matrices.
* Fix 4x4 matrix inversions (vectorization).
* Many fixes in QR: solving with m>n, use of rank, etc.
* Fixes for MSVC for windows mobile and CLang.
* Remove the Taucs backend (obsolete).
* Remove the old SVD class (was causing too much troubles, a new decompozition based on bidiagonalisation/householder should come back soon, JacobiSVD can be used meanwhile).


== Eigen 3.0-beta1 ==

Released July 5, 2010
