SUMMARY="A C++ template library for linear algebra, vectors and more" DESCRIPTION="Eigen is a versatile, fast, elegant and reliable template library \ that supports all matrix sizes, from small fixed-size matrices to arbitrarily \ large dense matrices, and even sparse matrices. - It supports all standard numeric types, including std::complex, integers, \ and is easily extensible to custom numeric types. - It supports various matrix decompositions and geometry features. - Its ecosystem of unsupported modules provides many specialized features \ such as non-linear optimization, matrix functions, a polynomial solver, FFT, \ and much more. - Expression templates allow to intelligently remove temporaries and enable \ lazy evaluation, when that is appropriate. - Explicit vectorization is performed for SSE 2/3/4, AVX, FMA, AVX512, \ ARM NEON (32-bit and 64-bit), PowerPC instruction sets, and now S390x SIMD \ (ZVector) with graceful fallback to non-vectorized code. - Fixed-size matrices are fully optimized: dynamic memory allocation is \ avoided, and the loops are unrolled when that makes sense. - For large matrices, special attention is paid to cache-friendliness. - Algorithms are carefully selected for reliability. Reliability trade-offs are \ clearly documented and extremely safe decompositions are available. - Eigen is thoroughly tested through its own test suite (over 500 executables) \ the standard BLAS test suite, and parts of the LAPACK test suite. - The API is extremely clean and expressive while feeling natural to C++ \ programmers, thanks to expression templates. - Implementing an algorithm on top of Eigen feels like just copying pseudocode." HOMEPAGE="http://eigen.tuxfamily.org" COPYRIGHT="2006-2011 Benoit Jacob 2008-2012 Gael Guennebaud, et al." LICENSE="MPL v2" REVISION="1" SOURCE_URI="http://bitbucket.org/eigen/eigen/get/$portVersion.tar.bz2" CHECKSUM_SHA256="dd254beb0bafc695d0f62ae1a222ff85b52dbaa3a16f76e781dce22d0d20a4a6" SOURCE_DIR="eigen-eigen-5a0156e40feb" PATCHES="eigen-$portVersion.patchset" ARCHITECTURES="x86_gcc2 x86 x86_64" SECONDARY_ARCHITECTURES="x86" PROVIDES=" eigen$secondaryArchSuffix = $portVersion devel:eigen$secondaryArchSuffix = $portVersion " REQUIRES=" haiku$secondaryArchSuffix " BUILD_REQUIRES=" haiku${secondaryArchSuffix}_devel " BUILD_PREREQUIRES=" cmd:make cmd:gcc$secondaryArchSuffix cmd:cmake cmd:pkg_config$secondaryArchSuffix " BUILD() { mkdir -p build cd build cmake .. \ -DCMAKE_INSTALL_PREFIX=$prefix \ -DINCLUDE_INSTALL_DIR=$includeDir make $jobArgs } INSTALL() { cd build make install PREFIX=$prefix mv $prefix/share/eigen3 $dataDir mkdir $developLibDir mv $prefix/share/pkgconfig $developLibDir rmdir $prefix/share fixPkgconfig } TEST() { cd build make check }