1.. _changelog:
2
3Changelog
4=========
5
60.16.0 (2021-11-20)
7-------------------
8
9New
10~~~
11
12- **BREAKING**: add support for continuous output
13  to the ``propagate_for/until()`` methods
14  (`#81 <https://github.com/bluescarni/heyoka.py/pull/81>`__).
15  This is a :ref:`breaking change <bchanges_0_16_0>`.
16- Event detection is now available also in batch mode
17  (`#80 <https://github.com/bluescarni/heyoka.py/pull/80>`__).
18- Attributes can now be dynamically added to the main heyoka.py
19  classes (`#78 <https://github.com/bluescarni/heyoka.py/pull/78>`__).
20- Add a tutorial on the computation of event sensitivity
21  (`#77 <https://github.com/bluescarni/heyoka.py/pull/77>`__).
22
23Changes
24~~~~~~~
25
26- heyoka.py now requires at least version 0.16.0 of the
27  heyoka C++ library
28  (`#75 <https://github.com/bluescarni/heyoka.py/pull/75>`__).
29
300.15.1 (2021-10-10)
31-------------------
32
33Fix
34~~~
35
36- Fix conversion from SymPy rationals.
37
380.15.0 (2021-09-28)
39-------------------
40
41New
42~~~
43
44- Add a tutorial on the simulation of tides
45  (`#70 <https://github.com/bluescarni/heyoka.py/pull/70>`__).
46- The conversion of expressions from/to SymPy now takes advantage
47  of reference semantics, which leads to large
48  performance improvements when dealing with expressions
49  with a high degree of internal repetition
50  (`#70 <https://github.com/bluescarni/heyoka.py/pull/70>`__).
51- Add the possibility to customise the behaviour of the
52  ``from_sympy()`` function
53  (`#70 <https://github.com/bluescarni/heyoka.py/pull/70>`__).
54- Add :math:`\pi` as a symbolic constant to the expression system
55  (`#70 <https://github.com/bluescarni/heyoka.py/pull/70>`__).
56- Add a function to compute the size of an expression
57  (`#69 <https://github.com/bluescarni/heyoka.py/pull/69>`__).
58- Add an example on the computation of definite integrals
59  (`#68 <https://github.com/bluescarni/heyoka.py/pull/68>`__).
60- Add an implementation of the VSOP2013 analytical solution
61  for the motion of the planets of the Solar System, usable
62  in the definition of differential equations
63  (`#67 <https://github.com/bluescarni/heyoka.py/pull/67>`__).
64  An example describing this new feature is available in
65  the documentation.
66- Add support for the two-argument inverse tangent function
67  ``atan2()`` in the expression system
68  (`#64 <https://github.com/bluescarni/heyoka.py/pull/64>`__).
69
70Changes
71~~~~~~~
72
73- heyoka.py now requires at least version 0.15.0 of the
74  heyoka C++ library
75  (`#64 <https://github.com/bluescarni/heyoka.py/pull/64>`__).
76
77Fix
78~~~
79
80- Test fixes on PPC64
81  (`#69 <https://github.com/bluescarni/heyoka.py/pull/69>`__).
82
830.14.0 (2021-08-03)
84-------------------
85
86New
87~~~
88
89- Add a new example on the numerical detection of integrals
90  of motion
91  (`#59 <https://github.com/bluescarni/heyoka.py/pull/59>`__).
92- The tolerance value is now stored in the integrator objects
93  (`#58 <https://github.com/bluescarni/heyoka.py/pull/58>`__).
94
95Changes
96~~~~~~~
97
98- heyoka.py now requires at least version 0.14.0 of the
99  heyoka C++ library
100  (`#58 <https://github.com/bluescarni/heyoka.py/pull/58>`__).
101
1020.12.0 (2021-07-23)
103-------------------
104
105New
106~~~
107
108- Add support for 64-bit ARM processors
109  (`#55 <https://github.com/bluescarni/heyoka.py/pull/55>`__).
110- Pickling support has been added to all classes
111  (`#53 <https://github.com/bluescarni/heyoka.py/pull/53>`__).
112- Event properties can now be accessed after construction
113  (`#53 <https://github.com/bluescarni/heyoka.py/pull/53>`__).
114
115Changes
116~~~~~~~
117
118- heyoka.py now depends on the
119  `Boost <https://www.boost.org/>`__ C++ libraries
120  (`#53 <https://github.com/bluescarni/heyoka.py/pull/53>`__).
121- heyoka.py now requires at least version 0.12.0 of the
122  heyoka C++ library
123  (`#53 <https://github.com/bluescarni/heyoka.py/pull/53>`__).
124
1250.11.0 (2021-07-06)
126-------------------
127
128New
129~~~
130
131- New tutorial on transit timing variations
132  (`#50 <https://github.com/bluescarni/heyoka.py/pull/50>`__).
133
134Changes
135~~~~~~~
136
137- heyoka.py now requires at least version 0.11.0 of the
138  heyoka C++ library
139  (`#50 <https://github.com/bluescarni/heyoka.py/pull/50>`__).
140
1410.10.0 (2021-06-09)
142-------------------
143
144New
145~~~
146
147- The callback that can be passed to the ``propagate_*()`` methods
148  can now be used to stop the integration
149  (`#48 <https://github.com/bluescarni/heyoka.py/pull/48>`__).
150- New tutorial on SymPy interoperability
151  (`#47 <https://github.com/bluescarni/heyoka.py/pull/47>`__).
152- Add a pairwise product primitive
153  (`#46 <https://github.com/bluescarni/heyoka.py/pull/46>`__).
154- heyoka.py expressions can now be converted to/from SymPy expressions
155  (`#46 <https://github.com/bluescarni/heyoka.py/pull/46>`__).
156
157Changes
158~~~~~~~
159
160- **BREAKING**: a :ref:`breaking change <bchanges_0_10_0>`
161  in the ``propagate_*()`` callback API
162  (`#48 <https://github.com/bluescarni/heyoka.py/pull/48>`__).
163- Division by zero in the expression system now raises an error
164  (`#48 <https://github.com/bluescarni/heyoka.py/pull/48>`__).
165- heyoka.py now requires at least version 0.10.0 of the
166  heyoka C++ library
167  (`#46 <https://github.com/bluescarni/heyoka.py/pull/46>`__).
168
1690.9.0 (2021-05-25)
170------------------
171
172New
173~~~
174
175- Add time polynomials to the expression system
176  (`#44 <https://github.com/bluescarni/heyoka.py/pull/44>`__).
177- New tutorial on Mercury's relativistic precession
178  (`#42 <https://github.com/bluescarni/heyoka.py/pull/42>`__).
179- Add the inverse of Kepler's elliptic equation to the expression system
180  (`#41 <https://github.com/bluescarni/heyoka.py/pull/41>`__).
181- New tutorial on planetary embryos
182  (`#39 <https://github.com/bluescarni/heyoka.py/pull/39>`__).
183- Initial exposition of the ``llvm_state`` class
184  (`#39 <https://github.com/bluescarni/heyoka.py/pull/39>`__).
185
186Changes
187~~~~~~~
188
189- heyoka.py now requires at least version 0.9.0 of the
190  heyoka C++ library
191  (`#41 <https://github.com/bluescarni/heyoka.py/pull/41>`__).
192
1930.8.0 (2021-04-28)
194------------------
195
196New
197~~~
198
199- The ``propagate_for/until()`` functions now support writing
200  the Taylor coefficients at the end of each timestep
201  (`#37 <https://github.com/bluescarni/heyoka.py/pull/37>`__).
202
203Changes
204~~~~~~~
205
206- **BREAKING**: :ref:`breaking changes <bchanges_0_8_0>`
207  in the event detection API
208  (`#37 <https://github.com/bluescarni/heyoka.py/pull/37>`__).
209- heyoka.py now requires at least version 0.8.0 of the
210  heyoka C++ library
211  (`#37 <https://github.com/bluescarni/heyoka.py/pull/37>`__).
212
2130.7.0 (2021-04-22)
214------------------
215
216New
217~~~
218
219- The ``propagate_*()`` functions now accept an optional
220  ``max_delta_t`` argument to limit the size of a timestep,
221  and an optional ``callback`` argument that will be invoked
222  at the end of each timestep
223  (`#34 <https://github.com/bluescarni/heyoka.py/pull/34>`__).
224- ``update_d_output()`` can now be called with a relative
225  (rather than absolute) time argument
226  (`#34 <https://github.com/bluescarni/heyoka.py/pull/34>`__).
227
228Changes
229~~~~~~~
230
231- **BREAKING**: the time coordinates in batch integrators
232  cannot be directly modified any more, and the new
233  ``set_time()`` function must be used instead
234  (`#34 <https://github.com/bluescarni/heyoka.py/pull/34>`__).
235- heyoka.py now requires at least version 0.7.0 of the
236  heyoka C++ library
237  (`#34 <https://github.com/bluescarni/heyoka.py/pull/34>`__).
238
2390.6.1 (2021-04-08)
240------------------
241
242New
243~~~
244
245- Add the wavy ramp tutorial
246  (`#32 <https://github.com/bluescarni/heyoka.py/pull/32>`__).
247
248Changes
249~~~~~~~
250
251- heyoka.py now requires at least version 0.6.1 of the
252  heyoka C++ library
253  (`#32 <https://github.com/bluescarni/heyoka.py/pull/32>`__).
254
2550.6.0 (2021-04-06)
256------------------
257
258New
259~~~
260
261- Add a tutorial about Brouwer's law
262  (`#31 <https://github.com/bluescarni/heyoka.py/pull/31>`__).
263- Add a tutorial about batch mode
264  (`#30 <https://github.com/bluescarni/heyoka.py/pull/30>`__).
265- Add tutorials about gravitational billiards
266  (`#29 <https://github.com/bluescarni/heyoka.py/pull/29>`__,
267  `#28 <https://github.com/bluescarni/heyoka.py/pull/28>`__).
268- Expose propagation over a time grid for the batch integrator
269  (`#29 <https://github.com/bluescarni/heyoka.py/pull/29>`__).
270- Add a tutorial about the computation of Poincaré sections
271  (`#27 <https://github.com/bluescarni/heyoka.py/pull/27>`__).
272- Add a tutorial on optimal control
273  (`#24 <https://github.com/bluescarni/heyoka.py/pull/24>`__).
274- Initial version of the event detection system
275  (`#23 <https://github.com/bluescarni/heyoka.py/pull/23>`__).
276- Expose low-level functions to compute the jet of derivatives
277  for an ODE system
278  (`#21 <https://github.com/bluescarni/heyoka.py/pull/21>`__).
279
280Changes
281~~~~~~~
282
283- **BREAKING**: the ``propagate_grid()`` method now requires
284  monotonically-ordered grid points
285  (`#25 <https://github.com/bluescarni/heyoka.py/pull/25>`__).
286- heyoka.py now depends on the `spdlog <https://github.com/gabime/spdlog>`__ library
287  (`#23 <https://github.com/bluescarni/heyoka.py/pull/23>`__).
288- heyoka.py now requires at least version 0.6.0 of the
289  heyoka C++ library
290  (`#21 <https://github.com/bluescarni/heyoka.py/pull/21>`__).
291
292Fix
293~~~
294
295- Properly restore the original ``mpmath`` precision after
296  importing heyoka.py
297  (`#21 <https://github.com/bluescarni/heyoka.py/pull/21>`__).
298
2990.5.0 (2021-02-25)
300------------------
301
302New
303~~~
304
305- Expose symbolic differentiation.
306- Add a new tutorial (restricted three-body problem).
307
308Changes
309~~~~~~~
310
311- The interface of the integrator in batch mode has changed
312  to work with arrays in which the batch size has its own dimension,
313  instead of being flattened out
314  (`#20 <https://github.com/bluescarni/heyoka.py/pull/20>`__).
315- heyoka.py now depends on the `{fmt} <https://fmt.dev/latest/index.html>`__ library
316  (`#20 <https://github.com/bluescarni/heyoka.py/pull/20>`__).
317- heyoka.py now requires at least version 0.5.0 of the
318  heyoka C++ library
319  (`#20 <https://github.com/bluescarni/heyoka.py/pull/20>`__).
320
3210.4.0 (2021-02-20)
322------------------
323
324New
325~~~
326
327- Expose the new ``powi()`` function from heyoka 0.4.0
328  (`#18 <https://github.com/bluescarni/heyoka.py/pull/18>`__).
329- Add support for ``propagate_grid()``
330  (`#17 <https://github.com/bluescarni/heyoka.py/pull/17>`__).
331- Add support for dense output and for storing
332  the Taylor coefficients at the end of a timestep
333  (`#11 <https://github.com/bluescarni/heyoka.py/pull/11>`__).
334- Various doc additions
335  (`#15 <https://github.com/bluescarni/heyoka.py/pull/15>`__,
336  `#14 <https://github.com/bluescarni/heyoka.py/pull/14>`__,
337  `#13 <https://github.com/bluescarni/heyoka.py/pull/13>`__,
338  `#12 <https://github.com/bluescarni/heyoka.py/pull/12>`__,
339  `#11 <https://github.com/bluescarni/heyoka.py/pull/11>`__).
340
341Changes
342~~~~~~~
343
344- heyoka.py now requires at least version 0.4.0 of the
345  heyoka C++ library.
346
3470.3.0 (2021-02-13)
348------------------
349
350- This is the initial public release of heyoka.py
351