New port: math/mppp: Multiprecision for modern C++
tests and benchmarks depend on a not yet committed bug#227102 (math/mpfr update)
This commit is contained in:
parent
5c544cbd5d
commit
a407a23c27
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=466185
5 changed files with 87 additions and 0 deletions
|
@ -323,6 +323,7 @@
|
||||||
SUBDIR += mpexpr
|
SUBDIR += mpexpr
|
||||||
SUBDIR += mpfr
|
SUBDIR += mpfr
|
||||||
SUBDIR += mpir
|
SUBDIR += mpir
|
||||||
|
SUBDIR += mppp
|
||||||
SUBDIR += mprime
|
SUBDIR += mprime
|
||||||
SUBDIR += msieve
|
SUBDIR += msieve
|
||||||
SUBDIR += mtl
|
SUBDIR += mtl
|
||||||
|
|
43
math/mppp/Makefile
Normal file
43
math/mppp/Makefile
Normal file
|
@ -0,0 +1,43 @@
|
||||||
|
# $FreeBSD$
|
||||||
|
|
||||||
|
PORTNAME= mppp
|
||||||
|
DISTVERSIONPREFIX= v
|
||||||
|
DISTVERSION= 0.9-33
|
||||||
|
DISTVERSIONSUFFIX= -g9d18861
|
||||||
|
CATEGORIES= math
|
||||||
|
|
||||||
|
MAINTAINER= yuri@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>
|
3
math/mppp/distinfo
Normal file
3
math/mppp/distinfo
Normal file
|
@ -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
|
18
math/mppp/pkg-descr
Normal file
18
math/mppp/pkg-descr
Normal file
|
@ -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
|
22
math/mppp/pkg-plist
Normal file
22
math/mppp/pkg-plist
Normal file
|
@ -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
|
Loading…
Reference in a new issue