aboutsummaryrefslogtreecommitdiff
path: root/math
diff options
context:
space:
mode:
authorYuri Victorovich <yuri@FreeBSD.org>2021-08-31 03:27:46 +0000
committerYuri Victorovich <yuri@FreeBSD.org>2021-08-31 04:47:14 +0000
commit9f1881394ed9b1e5bd38f1e02c329674ad537c51 (patch)
treea5635f62a28db05f07c470e980c179e7d5fbe465 /math
parentd0103b3d7afc2d0dd77f2741c09bbea3dfada685 (diff)
downloadports-9f1881394ed9b1e5bd38f1e02c329674ad537c51.tar.gz
ports-9f1881394ed9b1e5bd38f1e02c329674ad537c51.zip
math/py-heyoka: New port: Python library for ODE integration via Taylor's method and LLVM
Diffstat (limited to 'math')
-rw-r--r--math/Makefile1
-rw-r--r--math/py-heyoka/Makefile34
-rw-r--r--math/py-heyoka/distinfo3
-rw-r--r--math/py-heyoka/files/patch-CMakeLists.txt11
-rw-r--r--math/py-heyoka/pkg-descr14
-rw-r--r--math/py-heyoka/pkg-plist5
6 files changed, 68 insertions, 0 deletions
diff --git a/math/Makefile b/math/Makefile
index da4469d661d6..b826e53d0c24 100644
--- a/math/Makefile
+++ b/math/Makefile
@@ -822,6 +822,7 @@
SUBDIR += py-gym
SUBDIR += py-hdbscan
SUBDIR += py-hdmedians
+ SUBDIR += py-heyoka
SUBDIR += py-iminuit
SUBDIR += py-intspan
SUBDIR += py-iohexperimenter
diff --git a/math/py-heyoka/Makefile b/math/py-heyoka/Makefile
new file mode 100644
index 000000000000..8e356ae2261f
--- /dev/null
+++ b/math/py-heyoka/Makefile
@@ -0,0 +1,34 @@
+PORTNAME= heyoka
+DISTVERSIONPREFIX= v
+DISTVERSION= 0.14.0
+CATEGORIES= math
+PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
+
+MAINTAINER= yuri@FreeBSD.org
+COMMENT= Python library for ODE integration via Taylor's method and LLVM
+
+LICENSE= MPL20
+LICENSE_FILE= ${WRKSRC}/LICENSE
+
+BUILD_DEPENDS= pybind11>0:devel/pybind11
+LIB_DEPENDS= libboost_serialization.so:devel/boost-libs \
+ libfmt.so:devel/libfmt \
+ libheyoka.so:math/heyoka \
+ libmp++.so:math/mppp \
+ libspdlog.so:devel/spdlog
+RUN_DEPENDS= ${PYNUMPY} \
+ ${PYTHON_PKGNAMEPREFIX}cloudpickle>0:devel/py-cloudpickle@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}mpmath>0:math/py-mpmath@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}sympy>0:math/py-sympy@${PY_FLAVOR}
+
+USES= cmake compiler:c++17-lang python:3.7+
+USE_PYTHON= flavors
+
+USE_GITHUB= yes
+GH_ACCOUNT= bluescarni
+GH_PROJECT= ${PORTNAME}.py
+
+CMAKE_ON= HEYOKA_PY_ENABLE_IPO
+CMAKE_ARGS= -DFREEBSD_PYTHON_DISTVERSION=${PYTHON_DISTVERSION}
+
+.include <bsd.port.mk>
diff --git a/math/py-heyoka/distinfo b/math/py-heyoka/distinfo
new file mode 100644
index 000000000000..f0bcf70423e6
--- /dev/null
+++ b/math/py-heyoka/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1630378504
+SHA256 (bluescarni-heyoka.py-v0.14.0_GH0.tar.gz) = 20fa3498be323ea2b51ec2ab5057c1193af3189df69ddffff42f62741b05994e
+SIZE (bluescarni-heyoka.py-v0.14.0_GH0.tar.gz) = 60372207
diff --git a/math/py-heyoka/files/patch-CMakeLists.txt b/math/py-heyoka/files/patch-CMakeLists.txt
new file mode 100644
index 000000000000..50838865725d
--- /dev/null
+++ b/math/py-heyoka/files/patch-CMakeLists.txt
@@ -0,0 +1,11 @@
+--- CMakeLists.txt.orig 2021-08-03 13:38:33 UTC
++++ CMakeLists.txt
+@@ -123,7 +123,7 @@ if(${heyoka_VERSION} VERSION_LESS ${_HEYOKA_PY_MIN_HEY
+ endif()
+
+ # Python.
+-find_package(Python3 REQUIRED COMPONENTS Interpreter Development)
++find_package(Python3 ${FREEBSD_PYTHON_DISTVERSION} REQUIRED EXACT COMPONENTS Interpreter Development)
+ message(STATUS "Python3 interpreter: ${Python3_EXECUTABLE}")
+ message(STATUS "Python3 installation directory: ${Python3_SITEARCH}")
+ set(HEYOKA_PY_INSTALL_PATH "" CACHE STRING "heyoka module installation path")
diff --git a/math/py-heyoka/pkg-descr b/math/py-heyoka/pkg-descr
new file mode 100644
index 000000000000..ad94a136fd24
--- /dev/null
+++ b/math/py-heyoka/pkg-descr
@@ -0,0 +1,14 @@
+heyoka.py is a Python 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,
+* interoperability with SymPy,
+* 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.py/
diff --git a/math/py-heyoka/pkg-plist b/math/py-heyoka/pkg-plist
new file mode 100644
index 000000000000..d086b1360d2e
--- /dev/null
+++ b/math/py-heyoka/pkg-plist
@@ -0,0 +1,5 @@
+%%PYTHON_SITELIBDIR%%/heyoka/__init__.py
+%%PYTHON_SITELIBDIR%%/heyoka/_sympy_utils.py
+%%PYTHON_SITELIBDIR%%/heyoka/_version.py
+%%PYTHON_SITELIBDIR%%/heyoka/core%%PYTHON_EXT_SUFFIX%%.so
+%%PYTHON_SITELIBDIR%%/heyoka/test.py