math/heyoka: New port: C++ library for ODE integration via Taylor's method and LLVM

This commit is contained in:
Yuri Victorovich 2021-08-30 19:21:23 -07:00
parent 31aad68e55
commit d0103b3d7a
6 changed files with 127 additions and 0 deletions

View file

@ -343,6 +343,7 @@
SUBDIR += gsl SUBDIR += gsl
SUBDIR += half SUBDIR += half
SUBDIR += hexcalc SUBDIR += hexcalc
SUBDIR += heyoka
SUBDIR += highs SUBDIR += highs
SUBDIR += hipmcl SUBDIR += hipmcl
SUBDIR += hmat-oss SUBDIR += hmat-oss

32
math/heyoka/Makefile Normal file
View file

@ -0,0 +1,32 @@
PORTNAME= heyoka
DISTVERSIONPREFIX= v
DISTVERSION= 0.14.0
CATEGORIES= math
MAINTAINER= yuri@FreeBSD.org
COMMENT= C++ library for ODE integration via Taylor's method and LLVM
LICENSE= MPL20
LICENSE_FILE= ${WRKSRC}/COPYING
BUILD_DEPENDS= llvm${LLVM_VERSION}>0:devel/llvm${LLVM_VERSION}
LIB_DEPENDS= libboost_serialization.so:devel/boost-libs \
libfmt.so:devel/libfmt \
libmp++.so:math/mppp \
libsleef.so:math/sleef \
libspdlog.so:devel/spdlog
TEST_DEPENDS= xtensor>0:math/xtensor
USES= cmake:testing compiler:c++17-lang
USE_LDCONFIG= yes
USE_GITHUB= yes
GH_ACCOUNT= bluescarni
LLVM_VERSION= 12
CMAKE_ON= HEYOKA_WITH_MPPP HEYOKA_WITH_SLEEF
CMAKE_ARGS= -DFREEBSD_LLVM_VERSION=${LLVM_VERSION}
CMAKE_TESTING_ON= HEYOKA_BUILD_TESTS # tests can't be compiled: xtensor-blas isn't yet ported
.include <bsd.port.mk>

3
math/heyoka/distinfo Normal file
View file

@ -0,0 +1,3 @@
TIMESTAMP = 1630374700
SHA256 (bluescarni-heyoka-v0.14.0_GH0.tar.gz) = 0f3157fe9cbff66a2b6c0c66b903cff54de3d1691630868e5e30bad47488d315
SIZE (bluescarni-heyoka-v0.14.0_GH0.tar.gz) = 5255001

View file

@ -0,0 +1,13 @@
- fix llvm version
--- CMakeLists.txt.orig 2021-08-03 13:32:13 UTC
+++ CMakeLists.txt
@@ -147,7 +147,7 @@ endif()
# NOTE: do it early so that we can set up
# compiler flags based on the LLVM version
# if needed.
-find_package(LLVM REQUIRED CONFIG)
+find_package(LLVM ${FREEBSD_LLVM_VERSION} REQUIRED CONFIG)
if(${LLVM_VERSION_MAJOR} LESS 10)
message(FATAL_ERROR "LLVM >= 10 is required.")

13
math/heyoka/pkg-descr Normal file
View file

@ -0,0 +1,13 @@
heyoka is a C++ library for the integration of ordinary differential equations
(ODEs) via Taylor's method. Notable features include:
* support for both double-precision and extended-precision floating-point types
(80-bit and 128-bit),
* the ability to maintain machine precision accuracy over tens of billions of
timesteps,
* high-precision zero-cost dense output,
* accurate and reliable event detection,
* batch mode integration to harness the power of modern SIMD instruction sets,
* a high-performance implementation of Taylor's method based on automatic
differentiation techniques and aggressive just-in-time compilation via LLVM.
WWW: https://bluescarni.github.io/heyoka/

65
math/heyoka/pkg-plist Normal file
View file

@ -0,0 +1,65 @@
include/heyoka/callable.hpp
include/heyoka/config.hpp
include/heyoka/detail/binomial.hpp
include/heyoka/detail/dfloat.hpp
include/heyoka/detail/event_detection.hpp
include/heyoka/detail/fwd_decl.hpp
include/heyoka/detail/igor.hpp
include/heyoka/detail/llvm_fwd.hpp
include/heyoka/detail/llvm_helpers.hpp
include/heyoka/detail/llvm_vector_type.hpp
include/heyoka/detail/logging_impl.hpp
include/heyoka/detail/simple_timer.hpp
include/heyoka/detail/sleef.hpp
include/heyoka/detail/string_conv.hpp
include/heyoka/detail/taylor_common.hpp
include/heyoka/detail/type_traits.hpp
include/heyoka/detail/visibility.hpp
include/heyoka/exceptions.hpp
include/heyoka/expression.hpp
include/heyoka/func.hpp
include/heyoka/gp.hpp
include/heyoka/heyoka.hpp
include/heyoka/kw.hpp
include/heyoka/llvm_state.hpp
include/heyoka/logging.hpp
include/heyoka/mascon.hpp
include/heyoka/math.hpp
include/heyoka/math/acos.hpp
include/heyoka/math/acosh.hpp
include/heyoka/math/asin.hpp
include/heyoka/math/asinh.hpp
include/heyoka/math/atan.hpp
include/heyoka/math/atanh.hpp
include/heyoka/math/binary_op.hpp
include/heyoka/math/cos.hpp
include/heyoka/math/cosh.hpp
include/heyoka/math/erf.hpp
include/heyoka/math/exp.hpp
include/heyoka/math/kepE.hpp
include/heyoka/math/log.hpp
include/heyoka/math/neg.hpp
include/heyoka/math/pow.hpp
include/heyoka/math/sigmoid.hpp
include/heyoka/math/sin.hpp
include/heyoka/math/sinh.hpp
include/heyoka/math/sqrt.hpp
include/heyoka/math/square.hpp
include/heyoka/math/tan.hpp
include/heyoka/math/tanh.hpp
include/heyoka/math/time.hpp
include/heyoka/math/tpoly.hpp
include/heyoka/nbody.hpp
include/heyoka/number.hpp
include/heyoka/param.hpp
include/heyoka/s11n.hpp
include/heyoka/splitmix64.hpp
include/heyoka/taylor.hpp
include/heyoka/variable.hpp
lib/cmake/heyoka/heyoka-config-version.cmake
lib/cmake/heyoka/heyoka-config.cmake
lib/cmake/heyoka/heyoka_export-%%CMAKE_BUILD_TYPE%%.cmake
lib/cmake/heyoka/heyoka_export.cmake
lib/libheyoka.so
lib/libheyoka.so.14
lib/libheyoka.so.14.0