summaryrefslogtreecommitdiff
path: root/math/eigen2
diff options
context:
space:
mode:
Diffstat (limited to 'math/eigen2')
-rw-r--r--math/eigen2/DESCR31
-rw-r--r--math/eigen2/Makefile20
-rw-r--r--math/eigen2/PLIST124
-rw-r--r--math/eigen2/buildlink3.mk20
-rw-r--r--math/eigen2/distinfo5
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