------------------------------
Dependencies
^^^^^^^^^^^^
* Switch to the `pymittagleffler <https://github.com/alexfikl/mittagleffler>`__
library to evaluate the Mittag-Leffler function. This should be a lot faster
and generally cleaner. The code in ``pycaputo.mittagleffler`` has been completely
removed.
Features
^^^^^^^^
* Add some more chaotic systems examples: Labyrinth, Chua, Qi, Lorenz-84. They
are all listed in :mod:`pycaputo.fode.gallery`.
* Add some neuron models: FtizHugh-Nagumo, FitzHugh-Rinzel, Morris-Lecar,
Hindmarsh-Rose, Hodgkin-Huxley. This is on top of the existing Integrate-and-Fire
models from :mod:`pycaputo.integrate_fire`. They can be found in
:mod:`pycaputo.fode.gallery`.
* Made :class:`~pycaputo.fode.caputo.Trapezoidal` a bit faster by avoiding
multiple ``einsum``.
* Added an implementation for variable-order fractional operators based on
[Garrappa2023]_. We implement a variable-order Riemann-Liouville integral in
:class:`~pycaputo.quadrature.variable_riemann_liouville.ExponentialRectangular`
and an FODE solver for a variable-order Caputo derivative in
:class:`~pycaputo.fode.variable_caputo.VariableExponentialBackwardEuler`.
As the name suggest, this only supports the exponential decaying order
:math:`\alpha(t) = \alpha_2 + (\alpha_1 - \alpha_2) e^{-c t}` from the paper.
Breaking Changes
^^^^^^^^^^^^^^^^
* :class:`~pycaputo.stepping.FractionalDifferentialEquationMethod` now takes
a tuple of :class:`~pycaputo.derivatives.FractionalOperator` instances, not
just derivative orders. This requires changing ``derivatives=(alpha, ...)``
to ``ds=(CaputoDerivative(alpha), ...)``.
* Removed the ``gamma1p``, ``gamma2p``, ``gamma2m`` functions from
:mod:`pycaputo.stepping`. Maybe the Caputo classes will cache them in the
future.
* All :class:`~pycaputo.stepping.FractionalDifferentialEquationMethod` need to
also define :meth:`~pycaputo.stepping.FractionalDifferentialEquationMethod.make_default_history`.
Maintenance
^^^^^^^^^^^
* Switched to `just <https://just.systems/man/en/>`__ for running all the simple
development and CI commands. ``just`` is less available than ``make``, but it
is much nicer and self-documenting.