]>
Commit | Line | Data |
---|---|---|
8dd136ae | 1 | |
64db8132 RT |
2 | Summary: template library for linear algebra |
3 | Name: eigen | |
38d2d124 | 4 | Version: 2.0.12 |
8dd136ae | 5 | Release: 1 |
caf63656 | 6 | Epoch: 1 |
64db8132 RT |
7 | License: GPL v2 |
8 | Group: Libraries | |
38d2d124 | 9 | Source0: http://bitbucket.org/eigen/eigen/get/2.0.tar.bz2 |
10 | # Source0-md5: a2f10e6b21a36f3c0ef73271209f706f | |
a225ffba | 11 | URL: http://eigen.tuxfamily.org/ |
6a546e4c | 12 | BuildRequires: cmake >= 2.6.2 |
64db8132 RT |
13 | BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) |
14 | ||
15 | %description | |
8dd136ae SP |
16 | Eigen is a C++ template library for linear algebra: vectors, matrices, |
17 | and related algorithms. It is: | |
18 | ||
19 | - Versatile. (See modules and tutorial). Eigen handles, without code | |
20 | duplication, and in a completely integrated way: o both fixed-size and | |
21 | dynamic-size matrices and vectors. o both dense and sparse (the latter | |
22 | is still experimental) matrices and vectors. o both plain | |
23 | matrices/vectors and abstract expressions. o both column-major (the | |
24 | default) and row-major matrix storage. o both basic matrix/vector | |
25 | manipulation and many more advanced, specialized modules providing | |
26 | algorithms for linear algebra, geometry, quaternions, or advanced | |
27 | array manipulation. | |
28 | - Fast. (See benchmark). o Expression templates allow to intelligently | |
29 | remove temporaries and enable lazy evaluation, when that is | |
30 | appropriate -- Eigen takes care of this automatically and handles | |
31 | aliasing too in most cases. o Explicit vectorization is performed for | |
32 | the SSE (2 and later) and AltiVec instruction sets, with graceful | |
33 | fallback to non-vectorized code. Expression templates allow to perform | |
34 | these optimizations globally for whole expressions. o With fixed-size | |
35 | objects, dynamic memory allocation is avoided, and the loops are | |
36 | unrolled when that makes sense. o For large matrices, special | |
37 | attention is paid to cache-friendliness. | |
38 | - Elegant. (See API showcase). The API is extremely clean and | |
39 | expressive, thanks to expression templates. Implementing an algorithm | |
40 | on top of Eigen feels like just copying pseudocode. You can use | |
41 | complex expressions and still rely on Eigen to produce optimized code: | |
42 | there is no need for you to manually decompose expressions into small | |
43 | steps. | |
44 | - Compiler-friendy. Eigen has very reasonable compilation times at | |
45 | least with GCC, compared to other C++ libraries based on expression | |
46 | templates and heavy metaprogramming. Eigen is also standard C++ and | |
47 | supports various compilers. | |
64db8132 | 48 | |
6a546e4c | 49 | %package devel |
50 | Summary: Header files for eigen2 library | |
51 | Summary(pl.UTF-8): Pliki nagłówkowe biblioteki eigen2 | |
52 | Group: Development/Libraries | |
53 | Requires: %{name} = %{version}-%{release} | |
54 | ||
55 | %description devel | |
56 | Header files for eigen2 library. | |
57 | ||
58 | %description devel -l pl.UTF-8 | |
59 | Pliki nagłówkowe biblioteki eigen2 | |
60 | ||
64db8132 | 61 | %prep |
a225ffba | 62 | %setup -q -n %{name} |
64db8132 RT |
63 | |
64 | %build | |
d1c8d818 | 65 | install -d build |
64db8132 RT |
66 | cd build |
67 | %cmake \ | |
68 | -DCMAKE_INSTALL_PREFIX=%{_prefix} \ | |
7b00b204 | 69 | -DCMAKE_CXX_COMPILER_WORKS=1 \ |
70 | -DCMAKE_CXX_COMPILER="%{__cc}" \ | |
64db8132 RT |
71 | ../ |
72 | %{__make} | |
73 | ||
74 | %install | |
75 | rm -rf $RPM_BUILD_ROOT | |
76 | ||
77 | %{__make} -C build install \ | |
78 | DESTDIR=$RPM_BUILD_ROOT | |
79 | ||
6a546e4c | 80 | install -d $RPM_BUILD_ROOT/%{_pkgconfigdir} |
38d2d124 | 81 | cp build/eigen2.pc $RPM_BUILD_ROOT/%{_pkgconfigdir} |
6a546e4c | 82 | |
64db8132 RT |
83 | %clean |
84 | rm -rf $RPM_BUILD_ROOT | |
85 | ||
86 | %files | |
87 | %defattr(644,root,root,755) | |
38d2d124 | 88 | %{_includedir}/eigen2 |
6a546e4c | 89 | |
90 | %files devel | |
91 | %defattr(644,root,root,755) | |
38d2d124 | 92 | %{_pkgconfigdir}/eigen2.pc |