ZERNIPAX: A fast and accurate Zernike polynomial calculator in Python

Yigit Gunsur Elmacioglu, Rory Conlin, Daniel W. Dudt, Dario Panici, Egemen Kolemen

Research output: Contribution to journalArticlepeer-review

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.

Original languageEnglish (US)
Article number129534
JournalApplied Mathematics and Computation
Volume505
DOIs
StatePublished - Nov 15 2025

All Science Journal Classification (ASJC) codes

  • Computational Mathematics
  • Applied Mathematics

Keywords

  • Astrophysics
  • CPU/GPU computing
  • JAX
  • Optics
  • Python
  • Spectral simulations
  • Zernike polynomials

Fingerprint

Dive into the research topics of 'ZERNIPAX: A fast and accurate Zernike polynomial calculator in Python'. Together they form a unique fingerprint.

Cite this