svn commit: r466185 - in head/math: . mppp
Yuri Victorovich
yuri at FreeBSD.org
Sun Apr 1 21:54:45 UTC 2018
Author: yuri
Date: Sun Apr 1 21:54:44 2018
New Revision: 466185
URL: https://svnweb.freebsd.org/changeset/ports/466185
Log:
New port: math/mppp: Multiprecision for modern C++
tests and benchmarks depend on a not yet committed bug#227102 (math/mpfr update)
Added:
head/math/mppp/
head/math/mppp/Makefile (contents, props changed)
head/math/mppp/distinfo (contents, props changed)
head/math/mppp/pkg-descr (contents, props changed)
head/math/mppp/pkg-plist (contents, props changed)
Modified:
head/math/Makefile
Modified: head/math/Makefile
==============================================================================
--- head/math/Makefile Sun Apr 1 21:45:08 2018 (r466184)
+++ head/math/Makefile Sun Apr 1 21:54:44 2018 (r466185)
@@ -323,6 +323,7 @@
SUBDIR += mpexpr
SUBDIR += mpfr
SUBDIR += mpir
+ SUBDIR += mppp
SUBDIR += mprime
SUBDIR += msieve
SUBDIR += mtl
Added: head/math/mppp/Makefile
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/math/mppp/Makefile Sun Apr 1 21:54:44 2018 (r466185)
@@ -0,0 +1,43 @@
+# $FreeBSD$
+
+PORTNAME= mppp
+DISTVERSIONPREFIX= v
+DISTVERSION= 0.9-33
+DISTVERSIONSUFFIX= -g9d18861
+CATEGORIES= math
+
+MAINTAINER= yuri at FreeBSD.org
+COMMENT= Multiprecision for modern C++
+
+LICENSE= MPL20
+LICENSE_FILE= ${WRKSRC}/COPYING
+
+# build only checks that the headers exist, and then they are included in the run time
+BUILD_DEPENDS= ${LOCALBASE}/include/gmp.h:math/gmp \
+ ${LOCALBASE}/include/mpfr.h:math/mpfr
+RUN_DEPENDS= ${LOCALBASE}/include/gmp.h:math/gmp \
+ ${LOCALBASE}/include/mpfr.h:math/mpfr
+
+USES= cmake:outsource
+USE_GITHUB= yes
+GH_ACCOUNT= bluescarni
+NO_BUILD= yes
+NO_ARCH= yes
+
+TEST_USES= compiler:c++14-lang
+TEST_ARGS= -DMPPP_BUILD_TESTS=ON -DMPPP_WITH_MPFR=ON #-DMPPP_WITH_QUADMATH=ON (quadmath requires __float128, only available in clang6)
+BENCHMARK_ARGS= -DMPPP_BUILD_BENCHMARKS=ON -DMPPP_BENCHMARK_BOOST=ON
+
+do-test:
+ @cd ${BUILD_WRKSRC} && \
+ ${SETENV} ${CONFIGURE_ENV} ${CMAKE_BIN} ${CMAKE_ARGS} ${TEST_ARGS} ${CMAKE_SOURCE_PATH} && \
+ ${SETENV} ${MAKE_ENV} ${MAKE_CMD} ${MAKE_ARGS} ${ALL_TARGET} && \
+ ${SETENV} ${MAKE_ENV} ${MAKE_CMD} ${MAKE_ARGS} test
+
+benchmarks: build # additionally depends on boost-libs
+ @cd ${BUILD_WRKSRC} && \
+ ${SETENV} ${CONFIGURE_ENV} ${CMAKE_BIN} ${CMAKE_ARGS} ${BENCHMARK_ARGS} ${CMAKE_SOURCE_PATH} && \
+ ${SETENV} ${MAKE_ENV} ${MAKE_CMD} ${MAKE_ARGS} ${ALL_TARGET} && \
+ ${SETENV} ${MAKE_ENV} ${MAKE_CMD} ${MAKE_ARGS} ${ALL_TARGET} benchmark
+
+.include <bsd.port.mk>
Added: head/math/mppp/distinfo
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/math/mppp/distinfo Sun Apr 1 21:54:44 2018 (r466185)
@@ -0,0 +1,3 @@
+TIMESTAMP = 1522615913
+SHA256 (bluescarni-mppp-v0.9-33-g9d18861_GH0.tar.gz) = 837da4d28c8fee3aa9004fd8c801e7ebc8653d75c5b74d6b3b752664b42125de
+SIZE (bluescarni-mppp-v0.9-33-g9d18861_GH0.tar.gz) = 1280347
Added: head/math/mppp/pkg-descr
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/math/mppp/pkg-descr Sun Apr 1 21:54:44 2018 (r466185)
@@ -0,0 +1,18 @@
+mp++ is a C++11 library for multiprecision arithmetic, currently supporting
+arbitrary-precision integers, rationals and floats, and quadruple-precision
+floats.
+
+Based on well-known libraries such as GMP, MPFR, and others, mp++ was initially
+conceived as a GMP wrapper with a special focus on performance with small
+operands. In particular, a small buffer optimisation and custom implementations
+of basic mathematical primitives are instrumental in achieving a performance
+increase, with respect to GMP and other integer multiprecision libraries, which
+can be substantial (see the benchmarks section of the documentation). The price
+to pay is a small overhead when operating on large integers.
+
+Eventually, a multiprecision rational class and two multiprecision
+floating-point classes were added, and today a secondary objective of mp++ is to
+provide a modern, consistent and unified C++ interface to several lower-level
+multiprecision libraries.
+
+WWW: https://github.com/bluescarni/mppp
Added: head/math/mppp/pkg-plist
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/math/mppp/pkg-plist Sun Apr 1 21:54:44 2018 (r466185)
@@ -0,0 +1,22 @@
+include/mp++/concepts.hpp
+include/mp++/config.hpp
+include/mp++/detail/demangle.hpp
+include/mp++/detail/fwd_decl.hpp
+include/mp++/detail/gmp.hpp
+include/mp++/detail/mpfr.hpp
+include/mp++/detail/quadmath.hpp
+include/mp++/detail/type_traits.hpp
+include/mp++/detail/utils.hpp
+include/mp++/exceptions.hpp
+include/mp++/extra/pybind11.hpp
+include/mp++/integer.hpp
+include/mp++/mp++.hpp
+include/mp++/rational.hpp
+include/mp++/real.hpp
+include/mp++/real128.hpp
+lib/cmake/mp++/FindGMP.cmake
+lib/cmake/mp++/FindMPFR.cmake
+lib/cmake/mp++/FindQuadmath.cmake
+lib/cmake/mp++/mp++-config-version.cmake
+lib/cmake/mp++/mp++-config.cmake
+lib/cmake/mp++/mp++_export.cmake
More information about the svn-ports-all
mailing list