2 Summary: template library for linear algebra
8 Source0: http://download.tuxfamily.org/eigen/%{name}-%{version}.tar.bz2
9 # Source0-md5: b2c34144943671a8689b6fab20c52836
10 URL: http://eigen.tuxfamily.org/index.php?title=Main_Page
11 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
14 Eigen is a C++ template library for linear algebra: vectors, matrices,
15 and related algorithms. It is:
17 - Versatile. (See modules and tutorial). Eigen handles, without code
18 duplication, and in a completely integrated way: o both fixed-size and
19 dynamic-size matrices and vectors. o both dense and sparse (the latter
20 is still experimental) matrices and vectors. o both plain
21 matrices/vectors and abstract expressions. o both column-major (the
22 default) and row-major matrix storage. o both basic matrix/vector
23 manipulation and many more advanced, specialized modules providing
24 algorithms for linear algebra, geometry, quaternions, or advanced
26 - Fast. (See benchmark). o Expression templates allow to intelligently
27 remove temporaries and enable lazy evaluation, when that is
28 appropriate -- Eigen takes care of this automatically and handles
29 aliasing too in most cases. o Explicit vectorization is performed for
30 the SSE (2 and later) and AltiVec instruction sets, with graceful
31 fallback to non-vectorized code. Expression templates allow to perform
32 these optimizations globally for whole expressions. o With fixed-size
33 objects, dynamic memory allocation is avoided, and the loops are
34 unrolled when that makes sense. o For large matrices, special
35 attention is paid to cache-friendliness.
36 - Elegant. (See API showcase). The API is extremely clean and
37 expressive, thanks to expression templates. Implementing an algorithm
38 on top of Eigen feels like just copying pseudocode. You can use
39 complex expressions and still rely on Eigen to produce optimized code:
40 there is no need for you to manually decompose expressions into small
42 - Compiler-friendy. Eigen has very reasonable compilation times at
43 least with GCC, compared to other C++ libraries based on expression
44 templates and heavy metaprogramming. Eigen is also standard C++ and
45 supports various compilers.
54 -DCMAKE_INSTALL_PREFIX=%{_prefix} \
59 rm -rf $RPM_BUILD_ROOT
61 %{__make} -C build install \
62 DESTDIR=$RPM_BUILD_ROOT
65 rm -rf $RPM_BUILD_ROOT
68 %defattr(644,root,root,755)