NIFTy-PPL / JAXbind

Bind any function written in another language to JAX with support for JVP/VJP/batching/jit compilation
BSD 2-Clause "Simplified" License
61 stars 0 forks source link

[JOSS 6532] Case Study #24

Closed wsmoses closed 4 months ago

wsmoses commented 4 months ago

You do already have the example primitive written in the paper. However, I think it would be more compelling and/or easier to use if you also included an end-to-end example demonstrating an application which required the use of jaxbind. For example binding to a python odesolver [which calls c++ under the hood].

I think this would be quite valuable for users to see how they might apply it to their application (beyond the abstract evaluation individual description in the picture).

For now I'm going to wait on marking the checkbox " Example usage: Do the authors include examples of how to use the software (ideally to solve real-world analysis problems)." pending a response here.

ref: https://github.com/openjournals/joss-reviews/issues/6532

roth-jakob commented 4 months ago

Thanks for your comment! In the paper, we believe it makes sense to keep the example simple as it makes it easier to understand the concepts. The paper is also already on the long side for the JOSS standards. In the GitHub repository, we have additional examples in the demos folder and on the webpage .

In jaxbind/contrib, we provide JAX bindings for some of the functionality of the DUCC library. Specifically, we provide bindings for Hartly transformations, Fourier transformations, spherical harmonics transformations, and the wgridder (a transformation used in radio interferometry). To make these real-world applications of JAXbind more accessible for users, we add comments to the file with PR #26 and link to it as a real-world example in the README. Additionally, with PR, we export this file to the webpage, similar to what we do for the demos.