git: 8b65c127626c - main - math/{,py-}heyoka: update 1.0.0 → 5.0.0

From: Yuri Victorovich <yuri_at_FreeBSD.org>
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