Skip to main content

No project description provided

Project description

numerax

tests docs

Statistical and numerical computation functions for JAX, focusing on tools not available in the main JAX API.

📖 Documentation

Installation

pip install numerax

Features

Special Functions

Inverse regularized incomplete gamma function with differentiability support:

import jax.numpy as jnp
import numerax

# Compute gamma quantiles (inverse CDF)
p = jnp.array([0.1, 0.5, 0.9])  # Probabilities
a = 2.0  # Shape parameter

x = numerax.special.gammap_inverse(p, a)
# Returns quantiles where gammainc(a, x) = p

# Fully differentiable with custom JVP
grad_fn = jax.grad(numerax.special.gammap_inverse)
dx_dp = grad_fn(0.5, 2.0)  # Gradient with respect to probability

Key features:

  • Halley's method for fast convergence
  • Custom JVP implementation for exact gradients
  • Numerical stability with adaptive precision
  • Equivalent to gamma distribution inverse CDF

Profile Likelihood

Efficient profile likelihood computation for statistical inference with nuisance parameters:

import jax.numpy as jnp
import numerax

# Example: Normal distribution with mean inference, variance profiling
def normal_llh(params, data):
    mu, log_sigma = params
    sigma = jnp.exp(log_sigma)
    return jnp.sum(-0.5 * jnp.log(2 * jnp.pi) - log_sigma 
                   - 0.5 * ((data - mu) / sigma) ** 2)

# Profile over log_sigma, infer mu
is_nuisance = [False, True]  # mu=inference, log_sigma=nuisance

def get_initial_log_sigma(data):
    return jnp.array([jnp.log(jnp.std(data))])

profile_llh = numerax.stats.make_profile_llh(
    normal_llh, is_nuisance, get_initial_log_sigma
)

# Evaluate profile likelihood
data = jnp.array([1.2, 0.8, 1.5, 0.9, 1.1])
llh_val, opt_nuisance, diff, n_iter = profile_llh(jnp.array([1.0]), data)

Key features:

  • JIT-compiled for performance
  • L-BFGS optimization with convergence diagnostics
  • Configurable tolerance and initial values
  • Handles parameter masking automatically

Utilities

Development utilities for creating JAX functions with custom derivatives while ensuring proper documentation support. Includes decorators for preserving function metadata when using JAX's advanced features.

Requirements

  • Python ≥ 3.12
  • JAX
  • jaxtyping
  • optax

Acknowledgements

This work is supported by the Department of Energy AI4HEP program.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

numerax-0.2.0.tar.gz (11.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

numerax-0.2.0-py3-none-any.whl (10.0 kB view details)

Uploaded Python 3

File details

Details for the file numerax-0.2.0.tar.gz.

File metadata

  • Download URL: numerax-0.2.0.tar.gz
  • Upload date:
  • Size: 11.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for numerax-0.2.0.tar.gz
Algorithm Hash digest
SHA256 7e053a15f446eb636f0ceb274936bd329545247ef3b89ff1f892a00d808cefca
MD5 836ecf04f6e7db3072b43632de235311
BLAKE2b-256 1965592d0a8358afd3d79f7617bae8fd02ce440cb02a51c2179a2e158dd95777

See more details on using hashes here.

Provenance

The following attestation bundles were made for numerax-0.2.0.tar.gz:

Publisher: publish.yml on juehang/numerax

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file numerax-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: numerax-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 10.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for numerax-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 43f8861b43312ac6b2976d423af5c803247305c75e84d40a54e00156efe70b86
MD5 23b75d5bc9ef109dab4bd1558027971b
BLAKE2b-256 4d25f728c4341881f60ecef20d6d18cf3b3ff503a2dcd5b8961a719fca7da042

See more details on using hashes here.

Provenance

The following attestation bundles were made for numerax-0.2.0-py3-none-any.whl:

Publisher: publish.yml on juehang/numerax

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page