summaryrefslogtreecommitdiff
path: root/math/eigen3/DESCR
diff options
context:
space:
mode:
authormarkd <markd@pkgsrc.org>2013-03-17 19:37:19 +0000
committermarkd <markd@pkgsrc.org>2013-03-17 19:37:19 +0000
commite228ca9bd4bcc4b33705ecebcd2007b8bfdc2559 (patch)
treebbfb5f1075f874349bf2831b910efd2c7312fa72 /math/eigen3/DESCR
parentcc9f700b082fd2c479ee300c3326115a1b792e50 (diff)
downloadpkgsrc-e228ca9bd4bcc4b33705ecebcd2007b8bfdc2559.tar.gz
Add eigen3 version 3.1.2
Eigen 3 is a C++ template library for linear algebra: vectors, matrices, and related algorithms.
Diffstat (limited to 'math/eigen3/DESCR')
-rw-r--r--math/eigen3/DESCR31
1 files changed, 31 insertions, 0 deletions
diff --git a/math/eigen3/DESCR b/math/eigen3/DESCR
new file mode 100644
index 00000000000..60e78c89451
--- /dev/null
+++ b/math/eigen3/DESCR
@@ -0,0 +1,31 @@
+Eigen 3 is a C++ template library for linear algebra: vectors, matrices, and
+related algorithms. It is:
+* Versatile. Eigen handles, without code duplication, and in a completely
+ integrated way:
+ o both fixed-size and dynamic-size matrices and vectors.
+ o both dense and sparse (the latter is still experimental) matrices and
+ vectors.
+ o both plain matrices/vectors and abstract expressions.
+ o both column-major (the default) and row-major matrix storage.
+ o both basic matrix/vector manipulation and many more advanced, specialized
+ modules providing algorithms for linear algebra, geometry, quaternions,
+ or advanced array manipulation.
+* Fast.
+ o Expression templates allow to intelligently remove temporaries and enable
+ lazy evaluation, when that is appropriate -- Eigen takes care of this
+ automatically and handles aliasing too in most cases.
+ o Explicit vectorization is performed for the SSE (2 and later) and AltiVec
+ instruction sets, with graceful fallback to non-vectorized code.
+ Expression templates allow to perform these optimizations globally for
+ whole expressions.
+ o With fixed-size objects, dynamic memory allocation is avoided, and the
+ loops are unrolled when that makes sense.
+ o For large matrices, special attention is paid to cache-friendliness.
+* Elegant. The API is extremely clean and expressive, thanks to expression
+ templates. Implementing an algorithm on top of Eigen feels like just copying
+ pseudocode. You can use complex expressions and still rely on Eigen to
+ produce optimized code: there is no need for you to manually decompose
+ expressions into small steps.
+* Compiler-friendy. Eigen has very reasonable compilation times at least with
+ GCC, compared to other C++ libraries based on expression templates and heavy
+ metaprogramming. Eigen is also standard C++ and supports various compilers.