Heyoka

Latest version: v6.1.2

Safety actively analyzes 688293 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 2 of 7

4.0.1

------------------

Fix
~~~

- Fix compilation on PowerPC
(`401 <https://github.com/bluescarni/heyoka/pull/401>`__).

4.0.0

------------------

New
~~~

- heyoka is now available in the `spack <https://github.com/spack/spack>`__
package manager.
- New :ref:`tutorial <tut_cfunc>` on compiled functions
(`396 <https://github.com/bluescarni/heyoka/pull/396>`__).
- New :cpp:class:`~heyoka::cfunc` class to facilitate
the creation and evaluation of compiled functions, supporting
automatic multithreaded parallelisation
(`396 <https://github.com/bluescarni/heyoka/pull/396>`__).
- It is now possible to index into the tensors of derivatives
using indices vectors in sparse format
(`389 <https://github.com/bluescarni/heyoka/pull/389>`__).
- Add support for Lagrangian and Hamiltonian mechanics
(`381 <https://github.com/bluescarni/heyoka/pull/381>`__,
`379 <https://github.com/bluescarni/heyoka/pull/379>`__).
- It is now possible to pass a range of step callbacks to the
``propagate_*()`` functions. The individual callbacks will be
automatically composed into a callback set
(`376 <https://github.com/bluescarni/heyoka/pull/376>`__).
- New ``angle_reducer`` step callback to automatically reduce
angular state variables to the :math:`\left[0, 2\pi\right)` range
(`376 <https://github.com/bluescarni/heyoka/pull/376>`__).
- New ``callback`` module containing ready-made step and event callbacks
(`376 <https://github.com/bluescarni/heyoka/pull/376>`__).

Changes
~~~~~~~

- Speedups for the ``subs()`` primitive
(`394 <https://github.com/bluescarni/heyoka/pull/394>`__).
- **BREAKING**: the :cpp:func:`~heyoka::make_vars()` function
now returns a single expression (rather than an array of expressions)
if a single argument is passed in input
(`386 <https://github.com/bluescarni/heyoka/pull/386>`__).
This is a :ref:`breaking change <bchanges_4_0_0>`.
- **BREAKING**: the signature of callbacks for terminal events
has been simplified
(`385 <https://github.com/bluescarni/heyoka/pull/385>`__).
This is a :ref:`breaking change <bchanges_4_0_0>`.
- **BREAKING**: the way in which the ``propagate_*()`` functions
interact with step callbacks has changed
(`376 <https://github.com/bluescarni/heyoka/pull/376>`__).
This is a :ref:`breaking change <bchanges_4_0_0>`.
- **BREAKING**: the ``propagate_grid()`` functions of the
adaptive integrators now require the first element of the
time grid to be equal to the current integrator time
(`373 <https://github.com/bluescarni/heyoka/pull/373>`__).
This is a :ref:`breaking change <bchanges_4_0_0>`.
- Move the declarations of all :ref:`keyword arguments <kwargs>`
into the ``kw.hpp`` header
(`372 <https://github.com/bluescarni/heyoka/pull/372>`__).
- The call operators of the event callbacks are not
``const`` any more
(`369 <https://github.com/bluescarni/heyoka/pull/369>`__).
- **BREAKING**: the minimum supported LLVM version is now 13
(`369 <https://github.com/bluescarni/heyoka/pull/369>`__).
This is a :ref:`breaking change <bchanges_4_0_0>`.
- **BREAKING**: heyoka now requires C++20
(`369 <https://github.com/bluescarni/heyoka/pull/369>`__).
This is a :ref:`breaking change <bchanges_4_0_0>`.
- **BREAKING**: heyoka now requires fmt>=9
(`369 <https://github.com/bluescarni/heyoka/pull/369>`__).
This is a :ref:`breaking change <bchanges_4_0_0>`.
- **BREAKING**: heyoka now requires mp++ 1.x
(`369 <https://github.com/bluescarni/heyoka/pull/369>`__).
This is a :ref:`breaking change <bchanges_4_0_0>`.

3.2.0

------------------

New
~~~

- Add step callback set classes to compose step callbacks
(`366 <https://github.com/bluescarni/heyoka/pull/366>`__).
- Add support for single-precision computations
(`363 <https://github.com/bluescarni/heyoka/pull/363>`__).
- Add model implementing the ELP2000 analytical lunar theory
(`362 <https://github.com/bluescarni/heyoka/pull/362>`__).

Changes
~~~~~~~

- When the ``fast_math`` mode is active, the SIMD-vectorised
mathematical functions now use low-precision implementations.
This can lead to substantial performance increases in batch mode
(`367 <https://github.com/bluescarni/heyoka/pull/367>`__).
- Initialising a step callback or a callable from an empty
function object (e.g., a null pointer, an empty ``std::function``, etc.)
now results in an empty object
(`366 <https://github.com/bluescarni/heyoka/pull/366>`__).
- Improve performance when creating symbolic expressions for
large sums and products
(`362 <https://github.com/bluescarni/heyoka/pull/362>`__).

3.1.0

------------------

New
~~~

- Implement (leaky) ``ReLU`` and its derivative in the expression
system (`357 <https://github.com/bluescarni/heyoka/pull/357>`__,
`356 <https://github.com/bluescarni/heyoka/pull/356>`__).
- Add feed-forward neural network model
(`355 <https://github.com/bluescarni/heyoka/pull/355>`__).
- Implement the eccentric longitude :math:`F` in the expression
system (`352 <https://github.com/bluescarni/heyoka/pull/352>`__).
- Implement the delta eccentric anomaly :math:`\Delta E` in the expression
system (`352 <https://github.com/bluescarni/heyoka/pull/352>`__).
Taylor derivatives are not implemented yet.

Changes
~~~~~~~

- Substantial speedups in the computation of first-order derivatives
with respect to many variables/parameters
(`360 <https://github.com/bluescarni/heyoka/pull/360>`__,
`358 <https://github.com/bluescarni/heyoka/pull/358>`__).
- Substantial performance improvements in the computation of
derivative tensors of large expressions with a high degree
of internal redundancy
(`354 <https://github.com/bluescarni/heyoka/pull/354>`__).

Fix
~~~

- Fix global constants in an LLVM module being generated in unordered fashion
when compact mode is active. This would result in two logically-identical
modules being considered different by the in-memory cache
(`359 <https://github.com/bluescarni/heyoka/pull/359>`__).
- Fix compiler warning when building without SLEEF support
(`356 <https://github.com/bluescarni/heyoka/pull/356>`__).
- Improve the numerical stability of the VSOP2013 model
(`353 <https://github.com/bluescarni/heyoka/pull/353>`__).
- Improve the numerical stability of the Kepler solver
(`352 <https://github.com/bluescarni/heyoka/pull/352>`__).

3.0.0

------------------

Fix
~~~

- Prevent accidental leaking in the public headers of
serialisation implementation details
(`350 <https://github.com/bluescarni/heyoka/pull/350>`__).
- Fix wrong version compatibility setting in the CMake config-file package
(`350 <https://github.com/bluescarni/heyoka/pull/350>`__).
- Work around test failure on ARM + LLVM 17
(`350 <https://github.com/bluescarni/heyoka/pull/350>`__).
- Fix orbital elements singularity when using the VSOP2013
theory at low precision
(`348 <https://github.com/bluescarni/heyoka/pull/348>`__).

2.0.0

------------------

New
~~~

- Support LLVM 17 (`346 <https://github.com/bluescarni/heyoka/pull/346>`__).
- Add model for the circular restricted three-body problem
(`345 <https://github.com/bluescarni/heyoka/pull/345>`__).
- heyoka can now automatically vectorise scalar calls to
floating-point math functions
(`342 <https://github.com/bluescarni/heyoka/pull/342>`__).
- The LLVM SLP vectorizer can now be enabled
(`341 <https://github.com/bluescarni/heyoka/pull/341>`__).
This feature is opt-in due to the fact that enabling it
can considerably increase JIT compilation times.
- Implement an in-memory cache for ``llvm_state``. The cache is used
to avoid re-optimising and re-compiling LLVM code which has
already been optimised and compiled during the program execution
(`340 <https://github.com/bluescarni/heyoka/pull/340>`__).
- It is now possible to get the LLVM bitcode of
an ``llvm_state``
(`339 <https://github.com/bluescarni/heyoka/pull/339>`__).

Changes
~~~~~~~

- **BREAKING**: the minimum supported LLVM version is now 11
(`342 <https://github.com/bluescarni/heyoka/pull/342>`__).
This is a :ref:`breaking change <bchanges_2_0_0>`.
- The optimisation level for an ``llvm_state`` is now clamped
within the ``[0, 3]`` range
(`340 <https://github.com/bluescarni/heyoka/pull/340>`__).
- The LLVM bitcode is now used internally (instead of the textual
representation of the IR) when copying and serialising
an ``llvm_state``
(`339 <https://github.com/bluescarni/heyoka/pull/339>`__).
- The optimisation pass in an ``llvm_state`` is now automatically
called during compilation
(`339 <https://github.com/bluescarni/heyoka/pull/339>`__).

Fix
~~~

- Fix compilation in C++20 mode
(`340 <https://github.com/bluescarni/heyoka/pull/340>`__).
- Fix the object file of an ``llvm_state`` not being
preserved during copy and deserialisation
(`339 <https://github.com/bluescarni/heyoka/pull/339>`__).
- Fix LLVM module name not being preserved during
copy and deserialisation of ``llvm_state``
(`339 <https://github.com/bluescarni/heyoka/pull/339>`__).
- Fix broken link in the docs.

Page 2 of 7

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.