Home
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:
Written in Rust 🦀 for speed and safety, with zero-cost abstractions and efficient memory management.
Easy support for different interpolation strategies, enabling seamless/efficient implementation of new methods.
Native Rust 🦀 API, with bindings for various programming languages such as Python, Fortran, C, C++, Mathematica.
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
- Installation Guide: Complete installation instructions for all platforms and APIs
- Development with Pixi: Comprehensive guide for using Pixi environment manager
- CLI Tutorials: Showcase how to use the command-line interface
- Examples: Code examples for Python, C++, C, and Fortran APIs
Additional Resources
For more detailed information about NeoPDF development, see the GitHub repository.