Softpedia
 


LINUX CATEGORIES:



GLOBAL PAGES >>
NEWS ARCHIVE >>
SOFTPEDIA REVIEWS >>
MEET THE EDITORS >>
WEEK'S BEST
  • BackTrack 5 R2
  • Wine 1.4 / 1.5.5
  • Mozilla Firefox 12...
  • Ubuntu 11.04
  • Angry Birds 1.1.2.1
  • Ubuntu 10.04.4 LTS
  • Linux Kernel 3.4
  • Ubuntu Manual 10.10
  • Adobe Flash Player...
  • Pidgin 2.10.4
  • Home > Linux > Science and Engineering > Mathematics

    Eigen 3.0.5 / 3.1.0 Alpha 2

    Download button

    No screenshots available
    Downloads: 1,796  Tell us about an update
    User Rating:
    Rated by:
    Fair (2.6/5)
    22 user(s)
    Developer:

    License / Price:

    Last Updated:

    Category:
    Benoit Jacob | More programs
    GPL / FREE
    February 11th, 2012, 07:12 GMT [view history]
    ROOT / Science and Engineering / Mathematics

     Read user reviews (0)  Refer to a friend  Subscribe

    Eigen description

    Eigen project is a lightweight C++ template library for vector and matrix math, a.k.a. linear algebra.

    Eigen project is a lightweight C++ template library for vector and matrix math, a.k.a. linear algebra.

    Unlike most other linear algebra libraries, Eigen focuses on the simple mathematical needs of applications: games and other OpenGL apps, spreadsheets and other office apps, etc. Eigen is dedicated to providing optimal speed with GCC.

    · Its fixed-size classes are specially optimized for small sizes up to 4, although it is theoretically possible to specialize them to any size. They never cause dynamic memory applications and the simple operations on them are as fast as is possible at least for sizes up to 4 (see below).
    · Its dynamic-size classes are more flexible and suitable for larger sizes.

    Here are some key features of "Eigen":

    · No dependency. Only relies on the C++ Standard Library, and only does so for a few things.
    · As a consequence: very good portability.
    · Very good performance (tested with GCC, should apply to other compilers as well):
    · The fixed-size classes are optimal in the sense that they're just plain C arrays with methods manipulating them. They never cause dynamic memory allocations. Checked with valgrind.
    · The assembly code generated by GCC has been carefully checked to make sure that loop unrolling and function inlining work as expected with "g++ -O2" and "g++ -O3".
    · For the loops that GCC fails to unroll (mostly nested loops), we provide hand-unrolled versions for sizes up to 4.
    · There is no "virtual" keyword in Eigen.
    · Eigen never trades performance for syntactic sugar. When some method introduces a significant language overhead (e.g. returns an object by value), we provide an alternative method doing the same thing faster but without the syntactic sugar.
    · Provides easy-to-use classes for solving systems of linear equations.
    · Provides easy-to-use functions for linear regression analysis.
    · Can perform LU decompositions and use them to invert matrices, compute rank, kernel, etc.
    · Integrates nicely with OpenGL:
    · Provides functions and classes for projective geometry.
    · Stores matrices in column-dominant order, hence matrices can be directly passed between OpenGL and Eigen.
    · Uses an OpenGL-like typedef naming scheme, for instance Vector3f for vectors of floats of size 3.
    · Robust:
    · Only uses algorithms that are guaranteed to work in all cases. For example, the LU decomposition is done with complete pivoting, which means that it works for all square matrices, even singular ones.
    · Covered by extensive unit-tests.
    · Thread-safe, though that's only as a consequence of staying simple and not trying to do advanced stuff like buffer sharing.
    · Floating-point-correct. Eigen has a clear, simple and sound policy with respect to the inherent problems of IEEE754 floating-point arithmetic.
    · Fully supports std::complex for matrices and vectors over the complex numbers.
    · Is a pure template library and consists only of header files. Thus, using Eigen will only add a build-time dependency to your project.
    · Uses standard asserts, controlled as usual by NDEBUG. To achieve optimal performance, turn them off by defining NDEBUG, e.g.

    What's New in This Release:

    · This release supports fixed-size classes that are optimized for small sizes of up to four dimensions for 3D geometry and OpenGL.
    · Dynamic classes are more flexible and suitable for larger data.



    Product's homepage

    What's New in This Release: [ read full changelog ]

    · This is a maintenance release with various bug and warning fixes.

      


    TAGS:

    template library | vector math | matrix math | Eigen | template | library



    HTML code for linking to this page:


    Go to top

    WindowsGamesDriversMacLinuxScriptsMobileHandheldNews

    SUBMIT PROGRAM   |   ADVERTISE   |   GET HELP   |   SEND US FEEDBACK   |   RSS FEEDS   |   UPDATE YOUR SOFTWARE   |   ROMANIAN FORUM