FAQ¤
Why not just use distrax?¤
The simple answer to that question is "I tried". Distrax is a the product of a lot of great work, especially helpful for working with TFP, but in the current era of jax packages lacks important elements:
- It's only semi-maintained (there have been no responses to any issues in the last >6 months)
- It doesn't always play nice with other jax packages and can be slow (see: #193, #383, #252, #269, #16, #16170)
- You need Tensorflow to use it
Why use equinox?¤
The Jittable
class is basically an equinox module (if you squint) and while we could reimplement a custom Module class (like GPJax does), why reinvent the wheel? Equinox is actively being developed and should it become inactive is still possible to maintain.
What about flowjax?¤
When I started this project, I was unaware of flowjax. Although flowjax does provide a lot of advanced tooling for NFs and bijections, there are notable differences. distreqx
is less specialized and provides a broader baseline set of tools (e.g. distributions). flowjax has more advanced NF tools. distreqx
also adheres to an abstract/final design pattern from the development side. flowjax also approaches the concept of "transformed" distributions in a different manner.