git: 8b65c127626c - main - math/{,py-}heyoka: update 1.0.0 → 5.0.0
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Fri, 14 Jun 2024 21:32:13 UTC
The branch main has been updated by yuri:
URL: https://cgit.FreeBSD.org/ports/commit/?id=8b65c127626c86e615dc66f379d1a81c579fed52
commit 8b65c127626c86e615dc66f379d1a81c579fed52
Author: Yuri Victorovich <yuri@FreeBSD.org>
AuthorDate: 2024-06-14 19:00:34 +0000
Commit: Yuri Victorovich <yuri@FreeBSD.org>
CommitDate: 2024-06-14 21:31:32 +0000
math/{,py-}heyoka: update 1.0.0 → 5.0.0
Reported by: portscout
---
math/heyoka/Makefile | 15 ++++-
math/heyoka/distinfo | 14 ++++-
math/heyoka/files/patch-CMakeLists.txt | 14 ++---
math/heyoka/pkg-plist | 61 ++++++++++++++++--
math/py-heyoka/Makefile | 5 +-
math/py-heyoka/distinfo | 6 +-
.../files/example-restricted-three-body-problem.py | 73 +++++++++++++++++++---
math/py-heyoka/pkg-plist | 9 +++
8 files changed, 163 insertions(+), 34 deletions(-)
diff --git a/math/heyoka/Makefile b/math/heyoka/Makefile
index 17ca6f164cdc..c46f9c458961 100644
--- a/math/heyoka/Makefile
+++ b/math/heyoka/Makefile
@@ -1,9 +1,14 @@
PORTNAME= heyoka
DISTVERSIONPREFIX= v
-DISTVERSION= 1.0.0
-PORTREVISION= 7
+DISTVERSION= 5.0.0
CATEGORIES= math
+PATCH_SITES= https://github.com/${GH_ACCOUNT}/${GH_PROJECT}/commit/
+PATCHFILES= e9ca3726897a0b114876f4486d8903740c167893.patch:-p1 # 4 release followup patches from https://github.com/bluescarni/heyoka/pull/428
+PATCHFILES+= 86e10d0115074b347d74e78102d59395091c66ac.patch:-p1
+PATCHFILES+= c5609ec799822a3a44044d061a8376221863f747.patch:-p1
+PATCHFILES+= f60ce702cb5d2005598c139c87a2b93460f0771a.patch:-p1
+
MAINTAINER= yuri@FreeBSD.org
COMMENT= C++ library for ODE integration via Taylor's method and LLVM
WWW= https://bluescarni.github.io/heyoka/
@@ -23,7 +28,7 @@ LIB_DEPENDS= libboost_serialization.so:devel/boost-libs \
TEST_DEPENDS= xtensor>0:math/xtensor \
xtensor-blas>0:math/xtensor-blas
-USES= cmake:testing compiler:c++17-lang llvm:min=15,build,run
+USES= cmake:testing compiler:c++17-lang llvm:min=16,build,run
USE_LDCONFIG= yes
USE_GITHUB= yes
@@ -33,4 +38,8 @@ CMAKE_ON= HEYOKA_WITH_MPPP HEYOKA_WITH_SLEEF
CMAKE_ARGS= -DFREEBSD_LLVM_VERSION=${LLVM_VERSION}
CMAKE_TESTING_ON= HEYOKA_BUILD_TESTS # 1 test fails, see https://github.com/bluescarni/heyoka/issues/338
+# 2 tests fail:
+# * https://github.com/bluescarni/heyoka/issues/429
+# * https://github.com/bluescarni/heyoka/issues/430
+
.include <bsd.port.mk>
diff --git a/math/heyoka/distinfo b/math/heyoka/distinfo
index 8387d403e93d..bd390a29c892 100644
--- a/math/heyoka/distinfo
+++ b/math/heyoka/distinfo
@@ -1,3 +1,11 @@
-TIMESTAMP = 1691728123
-SHA256 (bluescarni-heyoka-v1.0.0_GH0.tar.gz) = 96f2e049e0518c49dbe224fc268ab1ad80abeaa306e2fe7a30e2acffb79c04af
-SIZE (bluescarni-heyoka-v1.0.0_GH0.tar.gz) = 103578659
+TIMESTAMP = 1718356708
+SHA256 (bluescarni-heyoka-v5.0.0_GH0.tar.gz) = e9a4b5683a08706addc1b448e232f1e269d78586859fe3f4d93d4c5eee3bc8ae
+SIZE (bluescarni-heyoka-v5.0.0_GH0.tar.gz) = 104391096
+SHA256 (e9ca3726897a0b114876f4486d8903740c167893.patch) = ebc1dcf41e0b827512fd7551152c3b16b188b69b8b3e6236e594859aa79a8c61
+SIZE (e9ca3726897a0b114876f4486d8903740c167893.patch) = 1198
+SHA256 (86e10d0115074b347d74e78102d59395091c66ac.patch) = 9813a89a0f749872424715827f31a7683df290bc58675746583ed0da7337183a
+SIZE (86e10d0115074b347d74e78102d59395091c66ac.patch) = 2573
+SHA256 (c5609ec799822a3a44044d061a8376221863f747.patch) = 96203f43462281e176fec3a50b3e95d1482a98c341d3f51ea2251df6bd3a0ddf
+SIZE (c5609ec799822a3a44044d061a8376221863f747.patch) = 2701
+SHA256 (f60ce702cb5d2005598c139c87a2b93460f0771a.patch) = d1887691e6b13c39dbd551d58f1be647cda9548b48a86732e5eaf8b535568b7a
+SIZE (f60ce702cb5d2005598c139c87a2b93460f0771a.patch) = 1941
diff --git a/math/heyoka/files/patch-CMakeLists.txt b/math/heyoka/files/patch-CMakeLists.txt
index ebc7046cd3fd..833117d9a3d2 100644
--- a/math/heyoka/files/patch-CMakeLists.txt
+++ b/math/heyoka/files/patch-CMakeLists.txt
@@ -1,13 +1,13 @@
- fix llvm version
---- CMakeLists.txt.orig 2021-08-03 13:32:13 UTC
+--- CMakeLists.txt.orig 2024-06-13 17:20:31 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.
+@@ -156,7 +156,7 @@ include(GNUInstallDirs)
+ #
+ # https://github.com/llvm/llvm-project/issues/58558
+ include(GNUInstallDirs)
-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.")
+ if(${LLVM_VERSION_MAJOR} LESS 13 OR ${LLVM_VERSION_MAJOR} GREATER 18)
+ message(FATAL_ERROR "LLVM >= 13 and <= 18 is required.")
diff --git a/math/heyoka/pkg-plist b/math/heyoka/pkg-plist
index f0d22d31e566..bdc5e0fb5b17 100644
--- a/math/heyoka/pkg-plist
+++ b/math/heyoka/pkg-plist
@@ -1,28 +1,65 @@
include/heyoka/callable.hpp
+include/heyoka/callback/angle_reducer.hpp
+include/heyoka/callbacks.hpp
include/heyoka/config.hpp
+include/heyoka/continuous_output.hpp
include/heyoka/detail/binomial.hpp
include/heyoka/detail/cm_utils.hpp
include/heyoka/detail/dfloat.hpp
include/heyoka/detail/div.hpp
+include/heyoka/detail/dtens_impl.hpp
+include/heyoka/detail/ed_data.hpp
+include/heyoka/detail/elp2000/elp2000_10_15.hpp
+include/heyoka/detail/elp2000/elp2000_16_21.hpp
+include/heyoka/detail/elp2000/elp2000_1_3.hpp
+include/heyoka/detail/elp2000/elp2000_22_36.hpp
+include/heyoka/detail/elp2000/elp2000_4_9.hpp
include/heyoka/detail/event_detection.hpp
-include/heyoka/detail/fmt_compat.hpp
+include/heyoka/detail/fast_unordered.hpp
include/heyoka/detail/func_cache.hpp
include/heyoka/detail/fwd_decl.hpp
+include/heyoka/detail/i_data.hpp
include/heyoka/detail/igor.hpp
+include/heyoka/detail/llvm_func_create.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/mdspan/__p0009_bits/compressed_pair.hpp
+include/heyoka/detail/mdspan/__p0009_bits/config.hpp
+include/heyoka/detail/mdspan/__p0009_bits/default_accessor.hpp
+include/heyoka/detail/mdspan/__p0009_bits/dynamic_extent.hpp
+include/heyoka/detail/mdspan/__p0009_bits/extents.hpp
+include/heyoka/detail/mdspan/__p0009_bits/full_extent_t.hpp
+include/heyoka/detail/mdspan/__p0009_bits/layout_left.hpp
+include/heyoka/detail/mdspan/__p0009_bits/layout_right.hpp
+include/heyoka/detail/mdspan/__p0009_bits/layout_stride.hpp
+include/heyoka/detail/mdspan/__p0009_bits/macros.hpp
+include/heyoka/detail/mdspan/__p0009_bits/mdspan.hpp
+include/heyoka/detail/mdspan/__p0009_bits/no_unique_address.hpp
+include/heyoka/detail/mdspan/__p0009_bits/trait_backports.hpp
+include/heyoka/detail/mdspan/__p0009_bits/type_list.hpp
+include/heyoka/detail/mdspan/__p1684_bits/mdarray.hpp
+include/heyoka/detail/mdspan/__p2630_bits/strided_slice.hpp
+include/heyoka/detail/mdspan/__p2630_bits/submdspan.hpp
+include/heyoka/detail/mdspan/__p2630_bits/submdspan_extents.hpp
+include/heyoka/detail/mdspan/__p2630_bits/submdspan_mapping.hpp
+include/heyoka/detail/mdspan/mdarray
+include/heyoka/detail/mdspan/mdspan
include/heyoka/detail/num_identity.hpp
include/heyoka/detail/num_utils.hpp
+include/heyoka/detail/optional_s11n.hpp
include/heyoka/detail/real_helpers.hpp
include/heyoka/detail/simple_timer.hpp
-include/heyoka/detail/sleef.hpp
include/heyoka/detail/string_conv.hpp
include/heyoka/detail/sub.hpp
include/heyoka/detail/sum_sq.hpp
+include/heyoka/detail/tanuki.hpp
+include/heyoka/detail/tanuki_impl.hpp
include/heyoka/detail/taylor_common.hpp
include/heyoka/detail/type_traits.hpp
+include/heyoka/detail/variant_s11n.hpp
+include/heyoka/detail/vector_math.hpp
include/heyoka/detail/visibility.hpp
include/heyoka/detail/vsop2013/vsop2013_1.hpp
include/heyoka/detail/vsop2013/vsop2013_2.hpp
@@ -34,12 +71,15 @@ include/heyoka/detail/vsop2013/vsop2013_7.hpp
include/heyoka/detail/vsop2013/vsop2013_8.hpp
include/heyoka/detail/vsop2013/vsop2013_9.hpp
include/heyoka/ensemble_propagate.hpp
+include/heyoka/events.hpp
include/heyoka/exceptions.hpp
include/heyoka/expression.hpp
include/heyoka/func.hpp
include/heyoka/gp.hpp
+include/heyoka/hamiltonian.hpp
include/heyoka/heyoka.hpp
include/heyoka/kw.hpp
+include/heyoka/lagrangian.hpp
include/heyoka/llvm_state.hpp
include/heyoka/logging.hpp
include/heyoka/math.hpp
@@ -53,12 +93,16 @@ include/heyoka/math/atanh.hpp
include/heyoka/math/constants.hpp
include/heyoka/math/cos.hpp
include/heyoka/math/cosh.hpp
+include/heyoka/math/dfun.hpp
include/heyoka/math/erf.hpp
include/heyoka/math/exp.hpp
+include/heyoka/math/kepDE.hpp
include/heyoka/math/kepE.hpp
+include/heyoka/math/kepF.hpp
include/heyoka/math/log.hpp
include/heyoka/math/pow.hpp
include/heyoka/math/prod.hpp
+include/heyoka/math/relu.hpp
include/heyoka/math/sigmoid.hpp
include/heyoka/math/sin.hpp
include/heyoka/math/sinh.hpp
@@ -67,10 +111,16 @@ include/heyoka/math/sum.hpp
include/heyoka/math/tan.hpp
include/heyoka/math/tanh.hpp
include/heyoka/math/time.hpp
-include/heyoka/math/tpoly.hpp
+include/heyoka/mdspan.hpp
+include/heyoka/model/cart2geo.hpp
+include/heyoka/model/cr3bp.hpp
+include/heyoka/model/elp2000.hpp
+include/heyoka/model/ffnn.hpp
include/heyoka/model/fixed_centres.hpp
+include/heyoka/model/jb08_tn.hpp
include/heyoka/model/mascon.hpp
include/heyoka/model/nbody.hpp
+include/heyoka/model/nrlmsise00_tn.hpp
include/heyoka/model/pendulum.hpp
include/heyoka/model/rotating.hpp
include/heyoka/model/vsop2013.hpp
@@ -81,11 +131,12 @@ include/heyoka/s11n.hpp
include/heyoka/splitmix64.hpp
include/heyoka/step_callback.hpp
include/heyoka/taylor.hpp
+include/heyoka/var_ode_sys.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.22
-lib/libheyoka.so.22.0
+lib/libheyoka.so.28
+lib/libheyoka.so.28.0
diff --git a/math/py-heyoka/Makefile b/math/py-heyoka/Makefile
index df19d5ca939e..b4ed9f9191fc 100644
--- a/math/py-heyoka/Makefile
+++ b/math/py-heyoka/Makefile
@@ -1,7 +1,6 @@
PORTNAME= heyoka
DISTVERSIONPREFIX= v
-DISTVERSION= 1.0.0
-PORTREVISION= 7
+DISTVERSION= 5.0.0
CATEGORIES= math
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -29,7 +28,7 @@ RUN_DEPENDS= ${PYNUMPY} \
${PYTHON_PKGNAMEPREFIX}sympy>0:math/py-sympy@${PY_FLAVOR}
TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}matplotlib>0:math/py-matplotlib@${PY_FLAVOR}
-USES= cmake compiler:c++17-lang python
+USES= cmake compiler:c++17-lang llvm:min=16,build,run python
USE_PYTHON= flavors
USE_GITHUB= yes
diff --git a/math/py-heyoka/distinfo b/math/py-heyoka/distinfo
index c7a0a1c8b49e..4213bc0d8b9b 100644
--- a/math/py-heyoka/distinfo
+++ b/math/py-heyoka/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1691742354
-SHA256 (bluescarni-heyoka.py-v1.0.0_GH0.tar.gz) = 96da8b3d345e3b9a905fc4c5a7dbf21df5d64c6d8565ce9ddffb720b92fa3e46
-SIZE (bluescarni-heyoka.py-v1.0.0_GH0.tar.gz) = 100062902
+TIMESTAMP = 1718389415
+SHA256 (bluescarni-heyoka.py-v5.0.0_GH0.tar.gz) = b0759366eba2b733958a3d22c92ebf79e76bf663366e1a3220ab08b4ebf98114
+SIZE (bluescarni-heyoka.py-v5.0.0_GH0.tar.gz) = 149321377
diff --git a/math/py-heyoka/files/example-restricted-three-body-problem.py b/math/py-heyoka/files/example-restricted-three-body-problem.py
index 03500f8d4b18..57643922ba5f 100644
--- a/math/py-heyoka/files/example-restricted-three-body-problem.py
+++ b/math/py-heyoka/files/example-restricted-three-body-problem.py
@@ -1,9 +1,12 @@
+# Create the symbolic variables.
+# from https://bluescarni.github.io/heyoka.py/notebooks/The%20restricted%20three-body%20problem.html
+
+
+
import heyoka as hy
import numpy as np
# Create the symbolic variables.
-# from https://bluescarni.github.io/heyoka.py/notebooks/The%20restricted%20three-body%20problem.html
-
x, y, z, px, py, pz = hy.make_vars("x", "y", "z", "px", "py", "pz")
# Fix mu to 0.01.
@@ -20,7 +23,7 @@ dpxdt = py - (1. - mu) * rps_32 * (x - mu) - mu * rpj_32 * (x - mu + 1.)
dpydt = -px -((1. - mu) * rps_32 + mu * rpj_32) * y
dpzdt = -((1. - mu) * rps_32 + mu * rpj_32) * z
-# create the integrator object
+
ta = hy.taylor_adaptive(
# The ODEs.
[(x, dxdt), (y, dydt), (z, dzdt),
@@ -32,22 +35,72 @@ ta = hy.taylor_adaptive(
tol = 1e-18, high_accuracy = True
)
-# integrate the RTBP up to time unit
+
t_grid = np.linspace(0, 200, 2500)
+
out = ta.propagate_grid(t_grid)
-print(out)
-# plot
from matplotlib.pylab import plt
-plt.rcParams["figure.figsize"] = (12,6)
+
+fig = plt.figure(figsize = (12, 6))
plt.subplot(1,2,1)
-plt.plot(out[4][:, 0], out[4][:, 1])
+plt.plot(out[5][:, 0], out[5][:, 1])
plt.xlabel("x")
plt.ylabel("y")
plt.subplot(1,2,2)
-plt.plot(out[4][:, 0], out[4][:, 2])
+plt.plot(out[5][:, 0], out[5][:, 2])
plt.xlabel("x")
plt.ylabel("z");
+plt.show()
+
+
+def ham(s):
+ x, y, z, px, py, pz = s
+
+ rps = ((x - mu)**2 + y**2 + z**2)**0.5
+ rpj = ((x - mu + 1.)**2 + y**2 + z**2)**0.5
+
+ return .5 * (px**2 + py**2 + pz**2) + y*px - x*py - (1-mu)/rps - mu/rpj
+
+
+fig = plt.figure(figsize = (8, 5))
+
+plt.plot(t_grid, abs((ham(out[5][0]) - ham(out[5].transpose())) / ham(out[5][0])), 'x')
+plt.xlabel('Time')
+plt.ylabel('Relative error');
+plt.show()
+
+ta.time = 0
+ta.state[:] = [-0.80, 0.0, 0.0, 0.0, -0.6276410653920693, 0.0]
+
+t_grid = np.linspace(0, 2000, 100000)
+
+out = ta.propagate_grid(t_grid)
+
+fig = plt.figure(figsize = (12, 6))
+
+ax = plt.subplot(1,1,1)
+
+plt.axis('equal')
+plt.plot(out[5][:, 0], out[5][:, 1])
+
+cc0 = plt.Circle((0.01 , 0.), 0.012, ec='black', fc='orange', zorder=2)
+cc1 = plt.Circle((-0.99 , 0.), 0.012, ec='black', fc='orange', zorder=2)
+
+ax.add_artist(cc0)
+ax.add_artist(cc1)
+
+plt.xlabel("x")
+plt.ylabel("y");
+
+
+plt.show()
+
+fig = plt.figure(figsize = (12, 6))
-plt.show();
+plt.semilogy(t_grid, abs((ham(out[5][0]) - ham(out[5].transpose()))))
+plt.ylim(1e-16, 1e-11)
+plt.xlabel('Time')
+plt.ylabel('Relative error');
+plt.show()
diff --git a/math/py-heyoka/pkg-plist b/math/py-heyoka/pkg-plist
index f69f4819ed30..befd6b006602 100644
--- a/math/py-heyoka/pkg-plist
+++ b/math/py-heyoka/pkg-plist
@@ -2,16 +2,25 @@
%%PYTHON_SITELIBDIR%%/heyoka/_ensemble_impl.py
%%PYTHON_SITELIBDIR%%/heyoka/_sympy_utils.py
%%PYTHON_SITELIBDIR%%/heyoka/_test_batch_integrator.py
+%%PYTHON_SITELIBDIR%%/heyoka/_test_celmec.py
%%PYTHON_SITELIBDIR%%/heyoka/_test_cfunc.py
%%PYTHON_SITELIBDIR%%/heyoka/_test_dtens.py
+%%PYTHON_SITELIBDIR%%/heyoka/_test_elp2000.py
%%PYTHON_SITELIBDIR%%/heyoka/_test_ensemble.py
%%PYTHON_SITELIBDIR%%/heyoka/_test_expression.py
+%%PYTHON_SITELIBDIR%%/heyoka/_test_lagham.py
+%%PYTHON_SITELIBDIR%%/heyoka/_test_memcache.py
%%PYTHON_SITELIBDIR%%/heyoka/_test_model.py
%%PYTHON_SITELIBDIR%%/heyoka/_test_mp.py
%%PYTHON_SITELIBDIR%%/heyoka/_test_real.py
%%PYTHON_SITELIBDIR%%/heyoka/_test_real128.py
%%PYTHON_SITELIBDIR%%/heyoka/_test_scalar_integrator.py
+%%PYTHON_SITELIBDIR%%/heyoka/_test_sympy.py
+%%PYTHON_SITELIBDIR%%/heyoka/_test_var_integrator.py
+%%PYTHON_SITELIBDIR%%/heyoka/_test_var_ode_sys.py
+%%PYTHON_SITELIBDIR%%/heyoka/_test_vsop2013.py
%%PYTHON_SITELIBDIR%%/heyoka/_version.py
+%%PYTHON_SITELIBDIR%%/heyoka/callback/__init__.py
%%PYTHON_SITELIBDIR%%/heyoka/core%%PYTHON_EXT_SUFFIX%%.so
%%PYTHON_SITELIBDIR%%/heyoka/model/__init__.py
%%PYTHON_SITELIBDIR%%/heyoka/test.py