diff options
Diffstat (limited to 'math/eigen2')
-rw-r--r-- | math/eigen2/DESCR | 31 | ||||
-rw-r--r-- | math/eigen2/Makefile | 20 | ||||
-rw-r--r-- | math/eigen2/PLIST | 124 | ||||
-rw-r--r-- | math/eigen2/buildlink3.mk | 20 | ||||
-rw-r--r-- | math/eigen2/distinfo | 5 |
5 files changed, 200 insertions, 0 deletions
diff --git a/math/eigen2/DESCR b/math/eigen2/DESCR new file mode 100644 index 00000000000..38332b7f76d --- /dev/null +++ b/math/eigen2/DESCR @@ -0,0 +1,31 @@ +Eigen 2 is a C++ template library for linear algebra: vectors, matrices, and +related algorithms. It is: +* Versatile. 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. + 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. 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. diff --git a/math/eigen2/Makefile b/math/eigen2/Makefile new file mode 100644 index 00000000000..505bd21d938 --- /dev/null +++ b/math/eigen2/Makefile @@ -0,0 +1,20 @@ +# $NetBSD: Makefile,v 1.1.1.1 2009/01/10 01:02:47 markd Exp $ + +DISTNAME= eigen-2.0-beta5 +PKGNAME= ${DISTNAME:S/-beta/beta/} +CATEGORIES= math +MASTER_SITES= http://download.tuxfamily.org/eigen/ +EXTRACT_SUFX= .tar.bz2 + +MAINTAINER= pkgsrc-users@NetBSD.org +HOMEPAGE= http://eigen.tuxfamily.org/ +COMMENT= C++ template library for linear algebra + +USE_LANGUAGES+= c c++ +USE_CMAKE= yes + +WRKSRC= ${WRKDIR}/eigen2 + +PKG_DESTDIR_SUPPORT= user-destdir + +.include "../../mk/bsd.pkg.mk" diff --git a/math/eigen2/PLIST b/math/eigen2/PLIST new file mode 100644 index 00000000000..fbe77fad546 --- /dev/null +++ b/math/eigen2/PLIST @@ -0,0 +1,124 @@ +@comment $NetBSD: PLIST,v 1.1.1.1 2009/01/10 01:02:47 markd Exp $ +include/eigen2/Eigen/Array +include/eigen2/Eigen/Cholesky +include/eigen2/Eigen/Core +include/eigen2/Eigen/Geometry +include/eigen2/Eigen/LU +include/eigen2/Eigen/LeastSquares +include/eigen2/Eigen/QR +include/eigen2/Eigen/Regression +include/eigen2/Eigen/SVD +include/eigen2/Eigen/Sparse +include/eigen2/Eigen/src/Array/AllAndAny.h +include/eigen2/Eigen/src/Array/CwiseOperators.h +include/eigen2/Eigen/src/Array/Functors.h +include/eigen2/Eigen/src/Array/Norms.h +include/eigen2/Eigen/src/Array/PartialRedux.h +include/eigen2/Eigen/src/Array/Random.h +include/eigen2/Eigen/src/Array/Select.h +include/eigen2/Eigen/src/Cholesky/Cholesky.h +include/eigen2/Eigen/src/Cholesky/CholeskyWithoutSquareRoot.h +include/eigen2/Eigen/src/Cholesky/LDLT.h +include/eigen2/Eigen/src/Cholesky/LLT.h +include/eigen2/Eigen/src/Core/Assign.h +include/eigen2/Eigen/src/Core/Block.h +include/eigen2/Eigen/src/Core/CacheFriendlyProduct.h +include/eigen2/Eigen/src/Core/Coeffs.h +include/eigen2/Eigen/src/Core/CommaInitializer.h +include/eigen2/Eigen/src/Core/Cwise.h +include/eigen2/Eigen/src/Core/CwiseBinaryOp.h +include/eigen2/Eigen/src/Core/CwiseNullaryOp.h +include/eigen2/Eigen/src/Core/CwiseUnaryOp.h +include/eigen2/Eigen/src/Core/DiagonalCoeffs.h +include/eigen2/Eigen/src/Core/DiagonalMatrix.h +include/eigen2/Eigen/src/Core/DiagonalProduct.h +include/eigen2/Eigen/src/Core/Dot.h +include/eigen2/Eigen/src/Core/Flagged.h +include/eigen2/Eigen/src/Core/Functors.h +include/eigen2/Eigen/src/Core/Fuzzy.h +include/eigen2/Eigen/src/Core/GenericPacketMath.h +include/eigen2/Eigen/src/Core/IO.h +include/eigen2/Eigen/src/Core/Map.h +include/eigen2/Eigen/src/Core/MapBase.h +include/eigen2/Eigen/src/Core/MathFunctions.h +include/eigen2/Eigen/src/Core/Matrix.h +include/eigen2/Eigen/src/Core/MatrixBase.h +include/eigen2/Eigen/src/Core/MatrixStorage.h +include/eigen2/Eigen/src/Core/Minor.h +include/eigen2/Eigen/src/Core/NestByValue.h +include/eigen2/Eigen/src/Core/NumTraits.h +include/eigen2/Eigen/src/Core/Part.h +include/eigen2/Eigen/src/Core/Product.h +include/eigen2/Eigen/src/Core/Redux.h +include/eigen2/Eigen/src/Core/SolveTriangular.h +include/eigen2/Eigen/src/Core/Sum.h +include/eigen2/Eigen/src/Core/Swap.h +include/eigen2/Eigen/src/Core/Transpose.h +include/eigen2/Eigen/src/Core/Visitor.h +include/eigen2/Eigen/src/Core/arch/AltiVec/PacketMath.h +include/eigen2/Eigen/src/Core/arch/SSE/PacketMath.h +include/eigen2/Eigen/src/Core/util/Constants.h +include/eigen2/Eigen/src/Core/util/DisableMSVCWarnings.h +include/eigen2/Eigen/src/Core/util/EnableMSVCWarnings.h +include/eigen2/Eigen/src/Core/util/ForwardDeclarations.h +include/eigen2/Eigen/src/Core/util/Macros.h +include/eigen2/Eigen/src/Core/util/Memory.h +include/eigen2/Eigen/src/Core/util/Meta.h +include/eigen2/Eigen/src/Core/util/StaticAssert.h +include/eigen2/Eigen/src/Core/util/XprHelper.h +include/eigen2/Eigen/src/Geometry/AlignedBox.h +include/eigen2/Eigen/src/Geometry/AngleAxis.h +include/eigen2/Eigen/src/Geometry/EulerAngles.h +include/eigen2/Eigen/src/Geometry/Hyperplane.h +include/eigen2/Eigen/src/Geometry/OrthoMethods.h +include/eigen2/Eigen/src/Geometry/ParametrizedLine.h +include/eigen2/Eigen/src/Geometry/Quaternion.h +include/eigen2/Eigen/src/Geometry/Rotation2D.h +include/eigen2/Eigen/src/Geometry/RotationBase.h +include/eigen2/Eigen/src/Geometry/Scaling.h +include/eigen2/Eigen/src/Geometry/Transform.h +include/eigen2/Eigen/src/Geometry/Translation.h +include/eigen2/Eigen/src/LU/Determinant.h +include/eigen2/Eigen/src/LU/Inverse.h +include/eigen2/Eigen/src/LU/LU.h +include/eigen2/Eigen/src/QR/EigenSolver.h +include/eigen2/Eigen/src/QR/HessenbergDecomposition.h +include/eigen2/Eigen/src/QR/QR.h +include/eigen2/Eigen/src/QR/SelfAdjointEigenSolver.h +include/eigen2/Eigen/src/QR/Tridiagonalization.h +include/eigen2/Eigen/src/Regression/Regression.h +include/eigen2/Eigen/src/SVD/SVD.h +include/eigen2/Eigen/src/Sparse/AmbiVector.h +include/eigen2/Eigen/src/Sparse/CholmodSupport.h +include/eigen2/Eigen/src/Sparse/CoreIterators.h +include/eigen2/Eigen/src/Sparse/RandomSetter.h +include/eigen2/Eigen/src/Sparse/SparseArray.h +include/eigen2/Eigen/src/Sparse/SparseBlock.h +include/eigen2/Eigen/src/Sparse/SparseLDLT.h +include/eigen2/Eigen/src/Sparse/SparseLLT.h +include/eigen2/Eigen/src/Sparse/SparseLU.h +include/eigen2/Eigen/src/Sparse/SparseMatrix.h +include/eigen2/Eigen/src/Sparse/SparseMatrixBase.h +include/eigen2/Eigen/src/Sparse/SparseProduct.h +include/eigen2/Eigen/src/Sparse/SparseUtil.h +include/eigen2/Eigen/src/Sparse/SparseVector.h +include/eigen2/Eigen/src/Sparse/SuperLUSupport.h +include/eigen2/Eigen/src/Sparse/TaucsSupport.h +include/eigen2/Eigen/src/Sparse/TriangularSolver.h +include/eigen2/Eigen/src/Sparse/UmfPackSupport.h +@dirrm include/eigen2/Eigen/src/Sparse +@dirrm include/eigen2/Eigen/src/SVD +@dirrm include/eigen2/Eigen/src/Regression +@dirrm include/eigen2/Eigen/src/QR +@dirrm include/eigen2/Eigen/src/LU +@dirrm include/eigen2/Eigen/src/Geometry +@dirrm include/eigen2/Eigen/src/Core/util +@dirrm include/eigen2/Eigen/src/Core/arch/SSE +@dirrm include/eigen2/Eigen/src/Core/arch/AltiVec +@dirrm include/eigen2/Eigen/src/Core/arch +@dirrm include/eigen2/Eigen/src/Core +@dirrm include/eigen2/Eigen/src/Cholesky +@dirrm include/eigen2/Eigen/src/Array +@dirrm include/eigen2/Eigen/src +@dirrm include/eigen2/Eigen +@dirrm include/eigen2 diff --git a/math/eigen2/buildlink3.mk b/math/eigen2/buildlink3.mk new file mode 100644 index 00000000000..abe58f29fbb --- /dev/null +++ b/math/eigen2/buildlink3.mk @@ -0,0 +1,20 @@ +# $NetBSD: buildlink3.mk,v 1.1.1.1 2009/01/10 01:02:47 markd Exp $ + +BUILDLINK_DEPTH:= ${BUILDLINK_DEPTH}+ +EIGEN_BUILDLINK3_MK:= ${EIGEN_BUILDLINK3_MK}+ + +.if ${BUILDLINK_DEPTH} == "+" +BUILDLINK_DEPENDS+= eigen +.endif + +BUILDLINK_PACKAGES:= ${BUILDLINK_PACKAGES:Neigen} +BUILDLINK_PACKAGES+= eigen +BUILDLINK_ORDER:= ${BUILDLINK_ORDER} ${BUILDLINK_DEPTH}eigen + +.if ${EIGEN_BUILDLINK3_MK} == "+" +BUILDLINK_API_DEPENDS.eigen+= eigen>=2.0beta3 +BUILDLINK_PKGSRCDIR.eigen?= ../../math/eigen2 +BUILDLINK_DEPMETHOD.eigen?= build +.endif # EIGEN_BUILDLINK3_MK + +BUILDLINK_DEPTH:= ${BUILDLINK_DEPTH:S/+$//} diff --git a/math/eigen2/distinfo b/math/eigen2/distinfo new file mode 100644 index 00000000000..538eaea09e8 --- /dev/null +++ b/math/eigen2/distinfo @@ -0,0 +1,5 @@ +$NetBSD: distinfo,v 1.1.1.1 2009/01/10 01:02:47 markd Exp $ + +SHA1 (eigen-2.0-beta5.tar.bz2) = 045155ddd498f43168d197547fdc86755497a7a8 +RMD160 (eigen-2.0-beta5.tar.bz2) = 8cf6b34f2499d7016f62419a8eae555988ec234b +Size (eigen-2.0-beta5.tar.bz2) = 320560 bytes |