mirror of
https://github.com/yann64/haikuports.git
synced 2026-04-09 05:10:05 +02:00
84 lines
2.7 KiB
Bash
84 lines
2.7 KiB
Bash
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="2"
|
|
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:cmake
|
|
cmd:gcc$secondaryArchSuffix
|
|
cmd:make
|
|
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 -p $developLibDir
|
|
mv $prefix/share/pkgconfig $developLibDir
|
|
rmdir $prefix/share
|
|
fixPkgconfig
|
|
}
|
|
|
|
TEST()
|
|
{
|
|
cd build
|
|
make check
|
|
}
|