Skip to content

Home

Codecov MSRV Crates.io PyPI - Python Version PyPI - Version GitHub License

NeoPDF is a fast, reliable, and scalable interpolation library for Non-Perturbative Distribution Functions with modern features, designed for both present and future hadron collider experiments. It aims to be a modern, high-performance alternative to both LHAPDF and TMDlib, focusing on:

🚀 Performance

Written in Rust 🦀 for speed and safety, with zero-cost abstractions and efficient memory management.

🧩 Flexibility

Easy support for different interpolation strategies, enabling seamless/efficient implementation of new methods.

🌐 Multi-Language Support

Native Rust 🦀 API, with bindings for various programming languages such as Python, Fortran, C, C++, Mathematica.

📊 (Physics) Features & Extensibility

Very extensible, which makes it easy to introduce new (Physics) features without introducing technical debts.

Motivation

The need for a fast and reliable PDF interpolation is critical in high-energy physics, especially for precision calculations at hadron colliders. Existing solutions like LHAPDF or TMDlib, while widely used, have limitations in terms of extensibility and features. NeoPDF addresses these by:

  • Providing a modern and modular codebase with efficient file format
  • Enabling easy integration into new and existing workflows
  • Supporting advanced features such as multi-dimensional interpolations for up to 6D data

High-Level Architecture

  • Core Library (Rust): Implements all the interpolation logics, grid management, and PDF metadata handling.
  • FFI Bindings: Exposes the core functionalities to Python, Fortran, C, C++, and Mathematica, enabling easier interoperability with other codes that can link to these programming languages.
  • CLI Tools: Command-line utilities that allow users to inspect the contents of a gird, convert LHAPDF/TMDlib format into NeoPDF, and perform interpolations.

Getting Started


Additional Resources

For more detailed information about NeoPDF development, see the GitHub repository.