-
-Summary: template library for linear algebra
+Summary: Template library for linear algebra
+Summary(pl.UTF-8): Biblioteka szablonów do algebry liniowej
Name: eigen
-Version: 2.91
+Version: 2.0.17
Release: 1
-License: GPL v2
-Group: Libraries
-Source0: http://bitbucket.org/eigen/eigen/get/default.tar.bz2
-# Source0-md5: 397a5555a2c0d200cfad32746368ceba
+Epoch: 1
+License: LGPL v3+ or GPL v2+
+Group: Development/Libraries
+Source0: http://bitbucket.org/eigen/eigen/get/%{version}.tar.bz2
+# Source0-md5: 2dfd1e2765d82c306adbfcd6a0eb324b
URL: http://eigen.tuxfamily.org/
BuildRequires: cmake >= 2.6.2
+BuildRequires: rpmbuild(macros) >= 1.577
+Obsoletes: eigen-devel
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%description
Eigen is a C++ template library for linear algebra: vectors, matrices,
-and related algorithms. It is:
+and related algorithms. It is versatile, fast, elegant and
+compiler-friendly.
-- Versatile. (See modules and tutorial). 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. (See benchmark). 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. (See API showcase). 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.
-
-%package devel
-Summary: Header files for eigen2 library
-Summary(pl.UTF-8): Pliki nagłówkowe biblioteki eigen2
-Group: Development/Libraries
-Requires: %{name} = %{version}-%{release}
+Eigen handles, without code duplication and in a completely integrated
+way:
+ - both fixed-size and dynamic-size matrices and vectors
+ - both dense and sparse (the latter is still experimental) matrices
+ and vectors
+ - both plain matrices/vectors and abstract expressions
+ - both column-major (the default) and row-major matrix storage
+ - both basic matrix/vector manipulation and many more advanced,
+ specialized modules providing algorithms for linear algebra,
+ geometry, quaternions, or advanced array manipulation.
-%description devel
-Header files for eigen2 library.
+%description -l pl.UTF-8
+Eigen to biblioteka szablonów C++ do algebry liniowej: wektorów,
+macierzy i związanych z nimi algorytmów. Jest elastyczna, szybka,
+elegancka i przyjazna dla kompilatorów.
-%description devel -l pl.UTF-8
-Pliki nagłówkowe biblioteki eigen2
+Obsługuje bez powielania kodu i w całkowicie zintegrowany sposób:
+ - macierze i wektory o stałym i dynamicznym rozmiarze
+ - macierze i wektory gęste i rzadkie (te drugie jeszcze
+ eksperymentalnie)
+ - zwykłe macierze/wektory jak i abstrakcyjne wyrażenia
+ - przechowywanie danych kolumnowe (domyślne) oraz wierszowe
+ - podstawowe operacje na macierzach/wektorach, jak i wiele
+ bardziej zaawansowanych, specjalizowanych modułów z algorytmami
+ algebry liniowej, geometrii, kwaternionów i zaawansowanych operacji
+ na tablicach.
%prep
-%setup -q -n %{name}
+%setup -q -n eigen-eigen-b23437e61a07
%build
install -d build
cd build
-%cmake \
- -DCMAKE_INSTALL_PREFIX=%{_prefix} \
+%cmake .. \
-DCMAKE_CXX_COMPILER_WORKS=1 \
- -DCMAKE_CXX_COMPILER="%{__cc}" \
- ../
+ -DCMAKE_CXX_COMPILER="%{__cc}"
+
%{__make}
%install
%{__make} -C build install \
DESTDIR=$RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT/%{_pkgconfigdir}
-cp build/eigen3.pc $RPM_BUILD_ROOT/%{_pkgconfigdir}
-
%clean
rm -rf $RPM_BUILD_ROOT
%files
%defattr(644,root,root,755)
-%{_includedir}/eigen3
-
-%files devel
-%defattr(644,root,root,755)
-%{_pkgconfigdir}/eigen3.pc
+%{_includedir}/eigen2
+%{_npkgconfigdir}/eigen2.pc