Return to DESCR CVS log | Up to [cvs.NetBSD.org] / pkgsrc / math / eigen3 |

1.1 markd 1: Eigen 3 is a C++ template library for linear algebra: vectors, matrices, and 2: related algorithms. It is: 3: * Versatile. Eigen handles, without code duplication, and in a completely 4: integrated way: 5: o both fixed-size and dynamic-size matrices and vectors. 6: o both dense and sparse (the latter is still experimental) matrices and 7: vectors. 8: o both plain matrices/vectors and abstract expressions. 9: o both column-major (the default) and row-major matrix storage. 10: o both basic matrix/vector manipulation and many more advanced, specialized 11: modules providing algorithms for linear algebra, geometry, quaternions, 12: or advanced array manipulation. 13: * Fast. 14: o Expression templates allow to intelligently remove temporaries and enable 15: lazy evaluation, when that is appropriate -- Eigen takes care of this 16: automatically and handles aliasing too in most cases. 17: o Explicit vectorization is performed for the SSE (2 and later) and AltiVec 18: instruction sets, with graceful fallback to non-vectorized code. 19: Expression templates allow to perform these optimizations globally for 20: whole expressions. 21: o With fixed-size objects, dynamic memory allocation is avoided, and the 22: loops are unrolled when that makes sense. 23: o For large matrices, special attention is paid to cache-friendliness. 1.3 ! asau 24: * Elegant. The API is extremely clean and expressive, thanks to expression ! 25: templates. Implementing an algorithm on top of Eigen feels like just copying ! 26: pseudocode. You can use complex expressions and still rely on Eigen to ! 27: produce optimized code: there is no need for you to manually decompose ! 28: expressions into small steps. ! 29: * Compiler-friendy. Eigen has very reasonable compilation times at least with ! 30: GCC, compared to other C++ libraries based on expression templates and heavy ! 31: metaprogramming. Eigen is also standard C++ and supports various compilers.

CVSweb <webmaster@jp.NetBSD.org>