Eigen

A free, cross-platform template library
Download

Eigen Ranking & Summary

Advertisement

  • Rating:
  • License:
  • LGPL
  • Price:
  • FREE
  • Publisher Name:
  • Eigen Team
  • Publisher web site:
  • http://eigen.tuxfamily.org
  • Operating Systems:
  • Mac OS X
  • File Size:
  • 356 KB

Eigen Tags


Eigen Description

A free, cross-platform template library Eigen is a free and open source, cross-platform C++ template library for linear algebra: vectors, matrices, and related algorithms. Here are some key features of "Eigen": Versatile. (See modules and tutorial). Eigen handles, without code duplication, and in a completely integrated way: · both fixed-size and dynamic-size matrices and vectors. · both dense and sparse (the latter is still experimental) matrices and vectors. · both plain matrices/vectors and abstract expressions. · both column-major (the default) and row-major matrix storage. · both basic matrix/vector manipulation and many more advanced, specialized modules providing algorithms for linear algebra, geometry, quaternions, or advanced array manipulation. · various numeric types out of the box, including std::complex numbers, while being easy to extend to custom numeric types. · Fast. (See benchmark). · Expression templates allow to intelligently remove temporaries and enable lazy evaluation, when that is appropriate -- Eigen takes care of this automatically and handles aliasing too in most cases. · Explicit vectorization is performed for the SSE (2 and later) and AltiVec instruction sets, with graceful fallback to non-vectorized code. Expression templates allow to perform these optimizations globally for whole expressions. · With fixed-size objects, dynamic memory allocation is avoided, and the loops are unrolled when that makes sense. · For large matrices, special attention is paid to cache-friendliness. · Elegant. (See API showcase). The API is extremely clean and expressive, thanks to expression templates. Implementing an algorithm on top of Eigen feels like just copying pseudocode. You can use complex expressions and still rely on Eigen to produce optimized code: there is no need for you to manually decompose expressions into small steps. · Compiler-friendy. Eigen has very reasonable compilation times at least with GCC, compared to other C++ libraries based on expression templates and heavy metaprogramming. Eigen is also standard C++ and supports various compilers. What's New in This Release: · EIGEN_DEFAULT_TO_ROW_MAJOR is fully supported and tested. · Several important fixes for row-major matrices. · Fix support of several algorithms for mixed fixed-dynamic size matrices where the fixed dimension is greater than the dynamic dimension. For example: Matrix(3,2) · fix EIGEN_DONT_ALIGN: now it _really_ disables vectorization (was giving a #error unless you also used EIGEN_DONT_VECTORIZE). · Fix #92: Support QNX's QCC compiler (patch by Piotr Trojanek) · Fix #90, missing type cast in LU, allow to use LU with MPFR (patch by 'Wolf'). · Fix ICC compiler support: work around a bug present at least in ICC 11.1. · Compilation fixes for computeInverse() on expressions. · Fix a gap in a unit-test (thanks to Jitse Niesen) · Backport improvements to benchmarking code. · Documentation fixes


Eigen Related Software