]> git.pld-linux.org Git - packages/eigen.git/blob - eigen.spec
- epoch 1 to make sure 2.0.12 > 2.0.52 (which was development and is on builders)
[packages/eigen.git] / eigen.spec
1
2 Summary:        template library for linear algebra
3 Name:           eigen
4 Version:        2.0.12
5 Release:        1
6 Epoch:          1
7 License:        GPL v2
8 Group:          Libraries
9 Source0:        http://bitbucket.org/eigen/eigen/get/2.0.tar.bz2
10 # Source0-md5:  a2f10e6b21a36f3c0ef73271209f706f
11 URL:            http://eigen.tuxfamily.org/
12 BuildRequires:  cmake >= 2.6.2
13 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
14
15 %description
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.
48
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
61 %prep
62 %setup -q -n %{name}
63
64 %build
65 install -d build
66 cd build
67 %cmake \
68         -DCMAKE_INSTALL_PREFIX=%{_prefix} \
69         -DCMAKE_CXX_COMPILER_WORKS=1 \
70         -DCMAKE_CXX_COMPILER="%{__cc}" \
71         ../
72 %{__make}
73
74 %install
75 rm -rf $RPM_BUILD_ROOT
76
77 %{__make} -C build install \
78         DESTDIR=$RPM_BUILD_ROOT
79
80 install -d $RPM_BUILD_ROOT/%{_pkgconfigdir}
81 cp build/eigen2.pc $RPM_BUILD_ROOT/%{_pkgconfigdir}
82
83 %clean
84 rm -rf $RPM_BUILD_ROOT
85
86 %files
87 %defattr(644,root,root,755)
88 %{_includedir}/eigen2
89
90 %files devel
91 %defattr(644,root,root,755)
92 %{_pkgconfigdir}/eigen2.pc
This page took 0.053531 seconds and 3 git commands to generate.