ZERNIPAX: A Fast and Accurate Zernike Polynomial Calculator in Python
Yigit Gunsur Elmacioglu, Rory Conlin, Daniel W. Dudt, Dario Panici, Egemen Kolemen

TL;DR
ZERNIPAX is an open-source Python package that efficiently computes Zernike polynomials using GPU acceleration and recursive algorithms, enhancing speed and accuracy for scientific simulations.
Contribution
Developed ZERNIPAX, a fast, accurate, and GPU-compatible Python library for Zernike polynomial calculations, leveraging recursion and parallel computing.
Findings
Significantly faster computation times with recursion and parallelization.
Improved accuracy for high-mode number calculations.
Supports CPU and GPU for versatile deployment.
Abstract
Zernike polynomials serve as an orthogonal basis on the unit disc, and have proven to be effective in optics simulations, astrophysics, and more recently in plasma simulations. Unlike Bessel functions, Zernike polynomials are inherently finite and smooth at the disc center (r=0), ensuring continuous differentiability along the axis. This property makes them particularly suitable for simulations, requiring no additional handling at the origin. We developed ZERNIPAX, an open-source Python package capable of utilizing CPU/GPUs, leveraging Google's JAX package and available on GitHub as well as the Python software repository PyPI. Our implementation of the recursion relation between Jacobi polynomials significantly improves computation time compared to alternative methods by use of parallel computing while still performing more accurately for high-mode numbers.
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsComputational Physics and Python Applications · Soil Moisture and Remote Sensing
