diff options
Diffstat (limited to 'math/eigen3/DESCR')
-rw-r--r-- | math/eigen3/DESCR | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/math/eigen3/DESCR b/math/eigen3/DESCR new file mode 100644 index 00000000000..60e78c89451 --- /dev/null +++ b/math/eigen3/DESCR @@ -0,0 +1,31 @@ +Eigen 3 is a C++ template library for linear algebra: vectors, matrices, and +related algorithms. It is: +* Versatile. Eigen handles, without code duplication, and in a completely + integrated way: + o both fixed-size and dynamic-size matrices and vectors. + o both dense and sparse (the latter is still experimental) matrices and + vectors. + o both plain matrices/vectors and abstract expressions. + o both column-major (the default) and row-major matrix storage. + o both basic matrix/vector manipulation and many more advanced, specialized + modules providing algorithms for linear algebra, geometry, quaternions, + or advanced array manipulation. +* Fast. + o 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. + o 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. + o With fixed-size objects, dynamic memory allocation is avoided, and the + loops are unrolled when that makes sense. + o For large matrices, special attention is paid to cache-friendliness. +* Elegant. 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. |