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

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

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.
        !            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>