diffaaable 1.0.1#
diffaaable
is a JAX differentiable version of the AAA algorithm. The derivatives are implemented as custom Jacobian Vector products in accordance to [1].
A detailed derivation of the used matrix expressions is provided in the appendix of [2].
Under the hood diffaaable
uses the AAA implementation of baryrat
.
Additionaly the following application specific extensions to the AAA algorithm are included:
Adaptive: Adaptive refinement strategy to minimize the number of function evaluation needed to precisely locate poles within some domain
Vectorial (also referred to as set-valued): AAA algorithm acting on vector valued functions \(\mathbf{f}(z)\) as presented in [3].
Lorentz: Variant that enforces symmetric poles around the imaginary axis.
Selective Refinement: Use a divide and conquer theme to capture many pole simultaneously and accurately, by limiting the number of poles per AAA solve. Suggested in [4].
Installation#
to install diffaaable
run
pip install diffaaable
Usage#
Please refer to the quickstart tutorial
Contributing#
Feel free to open issues and/or PRs.
Citation#
When using this software package for scientific work please cite the associated publication [2].