Skip to content
Snippets Groups Projects
  1. Jun 19, 2011
  2. Jun 17, 2011
  3. Jun 16, 2011
  4. Jun 15, 2011
  5. Jun 13, 2011
  6. May 12, 2011
  7. May 05, 2011
  8. May 04, 2011
  9. Apr 29, 2011
  10. Apr 27, 2011
  11. Apr 26, 2011
    • Nizar Sallem's avatar
      [wip/eigen3] port eigen3 to robotpkg · 404ba9ec
      Nizar Sallem authored
      Important changes between Eigen 2 and Eigen 3
      
          * Core
            o Much better API, that will be supported for many years.
            o Improvements in basic expression template mechanisms allow
      				compilers to generate better code.
            o Now using OpenMP when it is enabled,
            parallelizing crucial code such as matrix-matrix product.
            o New Array class provides general-purpose arrays and
      				coefficient-wise operations for matrices. Array module merged
      				into Core.
            o Indices are now the size of a pointer, e.g. 64 bit on 64 bit
      				platforms, allowing arbitrarily large matrices and giving faster
      				code (no redundant integer conversions).
            o Cache size parameters can be set at runtime, or are automatically
      				set to sane defaults (using CPUID instruction or equivalent) when
      				first used.
            o Important optimizations in many places, including in
      				matrix-matrix product which is now nearly as fast as Intel MKL
      				and GotoBLAS, including on multi-CPU systems (see above point
      				about OpenMP).
            o Better, more extensible support for various scalar types.  All
      				standard integer types (signed and unsigned, from 8 to 64 bits)
      				are supported.
            o Much saner and more comprehensive support for special matrix
      				types: band matrices, permutation matrices...
          * Vectorization
            o Better vectorization logic.
            o Complex numbers are now vectorized.
            o Better quaternion vectorization.
            o New supported platform: ARM NEON
            o Improved SSE support, including use of SSE4 integer multiplication
            o Updated AltiVec support
          * Decompositions
            o Much better, uniform solving API
            o Much better, uniform API for setting tolerance threshold in
      				rank-revealing decompositions
            o LU: new partial-pivoting LU, blocking (cache-friendly).
            o QR: new column-pivoting and full-pivoting householder QR;
      				blocking (cache-friendly) of non-pivoting householder QR.
            o SVD: new JacobiSVD (very reliable SVD)
            o Eigenvalues: New general eigensolver, Schur decomposition, etc.
      				Lots of improvements here in speed, reliability and features.
            o Cholesky: rewritten LLT and LDLT, more reliable and blocking
      				(cache-friendly)
            o Householder: new general module for dealing with householder
      				transformations
          * Geometry
            o Much improved Transform API. It's now much more clear what is an
              Affine transform, what is a Projective transform, etc.
            o New Umeyama algorithm for finding the Transform mapping one point
            set to another
            o Allow mapping an array as Quaternion
          * BLAS/LAPACK implementation built on Eigen
            o That's right, Eigen 3 offers a complete BLAS implementation,
      				passing the BLAS test suite!
            o And also a partial implementation of LAPACK, passing the
      				relevant LAPACK tests.
          * Sparse
            o Countless improvements there, but it's still not 100% stable.
          * Tests
            o Much expanded Eigen test suite, now has more than 550 executables
            o Imported the BLAS test suite, as part of ours
            o New 'failtests' check that ill-formed code produces expected
      				compilation errors.
      404ba9ec
  12. Apr 18, 2011
  13. Apr 15, 2011
Loading