|
|
|
| Downloads: 830 |
Tell us about an update
|
 |
|
User Rating: Rated by: |
NOT RATED 0 user(s) |
|
|
|
Eigen description
|
A C++ library designed for linear algebra
Eigen is a handy C library created for developers that work with linear algebra.
Eigen supports all matrix sizes, from small fixed-size matrices to arbitrarily large dense matrices, and even sparse matrices. Here are some key features of "Eigen":
Eigen is versatile:
· It supports all standard numeric types, including std::complex, integers, and is easily extensible to custom numeric types.
· It supports various matrix decompositions and geometry features.
· Its ecosystem of unsupported modules provides many specialized features such as non-linear optimization, matrix functions, a polynomial solver, FFT, and much more.
Eigen is fast:
· Expression templates allow to intelligently remove temporaries and enable lazy evaluation, when that is appropriate.
· Explicit vectorization is performed for SSE 2/3/4, ARM NEON, and AltiVec instruction sets, with graceful fallback to non-vectorized code.
· Fixed-size matrices are fully optimized: dynamic memory allocation is avoided, and the loops are unrolled when that makes sense.
· For large matrices, special attention is paid to cache-friendliness.
Eigen is reliable:
· Algorithms are carefully selected for reliability. Reliability trade-offs are clearly documented and extremely safe decompositions are available.
· Eigen is thoroughly tested through its own test suite (over 500 executables), the standard BLAS test suite, and parts of the LAPACK test suite.
Eigen is elegant:
· The API is extremely clean and expressive while feeling natural to C++ programmers, thanks to expression templates.
· Implementing an algorithm on top of Eigen feels like just copying pseudocode.
What's New in This Release: [ read full changelog ]
· New optional support for Intel MKL and other BLAS including: (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
· Feature 319 - add a rankUpdate function to LDLt and LLT for updates/downdates
· 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:
· Feature 297 - add ParametrizedLine::intersectionPoint() and intersectionParam() functions
Others:
· fix many warnings and compilation issues with ICC 12 and -strict-ansi
· fix...
|
|