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

Annotation of pkgsrc/math/eigen3/DESCR, Revision 1.3

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>