1. 程式人生 > 其它 >Eigen is a C++ template library for linear algebra: matrices, vectors, numerical solvers, and related algorithms.

Eigen is a C++ template library for linear algebra: matrices, vectors, numerical solvers, and related algorithms.

opencv安裝實錄附十幾行C++實現的一個人臉識別demo - 良知猶存 - 部落格園

OpenCV的全稱是Open Source Computer Vision Library,是一個跨平臺的計算機視覺庫。OpenCV是由Intel公司發起並參與開發,以BSD許可證授權發行,可以在商業和研究領域中免費使用。OpenCV可用於開發實時的影象處理、計算機視覺以及模式識別程式……Eigen庫未安裝。執行命令:sudo apt-get install libeigen3-dev 進行安裝。

Benchmark - Eigen

Here is the list of the libraries included in the following benchmarks: [Intel發起的OpenCV為啥不用INTEL_MKL呢?]

  • eigen3: ourselves, with the default options (SSE2 vectorization enabled).
  • eigen2: the previous stable version of Eigen, with the default options (SSE2 vectorization enabled).
  • INTEL_MKL: The Intel Math Kernel Library, which includes a BLAS/LAPACK (11.0). Closed-source.
  • ACML: The AMD's core math library, which includes a BLAS/LAPACK (4.2.0). Closed-source. [我是第一次聽說這個]
  • GOTO: The GOTO BLAS library (2-1.13). This library have been compiled by hand specifically for the penryn architecture.
  • ATLAS: The math-atlas BLAS library (3.8.3). This library has been compiled by hand specifically for the penryn architecture.

Eigenis fast.

  • Expression templates allow intelligently removing temporaries and enable
    lazy evaluation
    , when that is appropriate.
  • Explicit vectorizationis performed for SSE 2/3/4, AVX, AVX2, FMA, AVX512, ARM NEON (32-bit and 64-bit), PowerPC AltiVec/VSX (32-bit and 64-bit), ZVector (s390x/zEC13) SIMD instruction sets, and since 3.4 MIPS MSA with graceful fallback to non-vectorized code.
  • Fixed-size matrices are fully optimized: dynamic memory allocation is avoided, and the loops are unrolled when that makes sense.
  • For large matrices, special attention is paid to cache-friendliness.

Eigen is versatile.

  • It supports all matrix sizes, from small fixed-size matrices to arbitrarily large dense matrices, and even sparse matrices.
  • It supports all standard numeric types, including std::complex, integers, and is easily extensible to custom numeric types.
  • It supports various matrix decompositions and geometry features.
  • Its ecosystem of unsupported modules provides many specialized features such as non-linear optimization, matrix functions, a polynomial solver, FFT, and much more.

沒用過,純轉載。