piblin-jax Documentation

piblin-jax is a modern JAX-powered framework for measurement data science, providing a complete reimplementation of piblin with dramatic performance improvements and advanced uncertainty quantification.

Python Version Ruff

Key Features

  • JAX-Powered Performance: 5-10x CPU speedup, 50-100x GPU acceleration

  • Bayesian Uncertainty Quantification: NumPyro integration for rigorous uncertainty propagation

  • 100% piblin Compatibility: Drop-in replacement with import piblin_jax as piblin

  • Modern Python 3.12+: Type-safe with modern syntax and functional programming

  • Non-Linear Fitting: NLSQ integration for advanced curve fitting

  • Automatic GPU Acceleration: Transparent device placement without configuration

Performance Targets

  • CPU: 5-10x speedup over piblin baseline

  • GPU: 50-100x speedup for large datasets

  • Memory: Efficient batch processing with lazy evaluation

  • Coverage: >95% test coverage

Quick Start

Installation:

pip install piblin-jax

Basic usage:

import piblin_jax

# Read data
data = piblin_jax.read_file('experiment.csv')

# Create a transform pipeline
from piblin_jax.transform import Pipeline, Interpolate1D, Smoothing

pipeline = Pipeline([
    Interpolate1D(new_x=new_points),
    Smoothing(window_size=5)
])

# Apply transformations
result = pipeline.apply_to(data)

# Visualize
result.visualize()

piblin Compatibility

For seamless migration from piblin:

import piblin_jax as piblin

# All your existing piblin code works!
data = piblin.read_file('experiment.csv')
# ... rest of your piblin code ...

Contents

Indices and tables