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 += mpfr
|
||||
SUBDIR += mpir
|
||||
SUBDIR += mppp
|
||||
SUBDIR += mprime
|
||||
SUBDIR += msieve
|
||||
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