pkgsrc-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[pkgsrc/trunk]: pkgsrc/math/eigen2 Initial import of eigen 2.0beta5
details: https://anonhg.NetBSD.org/pkgsrc/rev/b70566d53c02
branches: trunk
changeset: 552818:b70566d53c02
user: markd <markd%pkgsrc.org@localhost>
date: Sat Jan 10 01:02:47 2009 +0000
description:
Initial import of eigen 2.0beta5
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.
diffstat:
math/eigen2/DESCR | 31 +++++++++++
math/eigen2/Makefile | 20 +++++++
math/eigen2/PLIST | 124 ++++++++++++++++++++++++++++++++++++++++++++++
math/eigen2/buildlink3.mk | 20 +++++++
math/eigen2/distinfo | 5 +
5 files changed, 200 insertions(+), 0 deletions(-)
diffs (220 lines):
diff -r 482cd2d97907 -r b70566d53c02 math/eigen2/DESCR
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/math/eigen2/DESCR Sat Jan 10 01:02:47 2009 +0000
@@ -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 -r 482cd2d97907 -r b70566d53c02 math/eigen2/Makefile
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/math/eigen2/Makefile Sat Jan 10 01:02:47 2009 +0000
@@ -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@localhost
+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 -r 482cd2d97907 -r b70566d53c02 math/eigen2/PLIST
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/math/eigen2/PLIST Sat Jan 10 01:02:47 2009 +0000
@@ -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 -r 482cd2d97907 -r b70566d53c02 math/eigen2/buildlink3.mk
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/math/eigen2/buildlink3.mk Sat Jan 10 01:02:47 2009 +0000
@@ -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 -r 482cd2d97907 -r b70566d53c02 math/eigen2/distinfo
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/math/eigen2/distinfo Sat Jan 10 01:02:47 2009 +0000
@@ -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
Home |
Main Index |
Thread Index |
Old Index