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

== 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
