Skip to main content

Jax-based library for nonlinear reconciliation and learning

Project description

JNLR Jax-based non-linear reconciliation and learning

JNLR Logo

J-NLR is a Python library for non-linear reconciliation, learning, and geometric analysis on constraint manifolds. Built on JAX, it leverages automatic differentiation and GPU/TPU acceleration to efficiently project predicted values onto surfaces defined by implicit constraints $f(z) = 0$.

📚 Documentation - Full API reference, examples, and interactive notebooks

Key Features

  • Non-linear Reconciliation: Multiple solvers (Augmented Lagrangian, curvature-aware Newton, vanilla projections) for projecting forecasts onto constraint manifolds
  • SHOULD Analysis: Curvature-based methods to determine when reconciliation is beneficial—verify if RMSE is guaranteed to reduce before applying corrections
  • Manifold Sampling: Sample from explicit (graph) or implicit manifolds using volume-weighted sampling, Latin hypercube, or Langevin dynamics on the constraint surface
  • Mesh Generation: Create triangulated meshes from explicit parameterizations for visualization and geodesic computation
  • Geodesics: Compute geodesic distances and shortest paths on manifolds via exact MMP algorithm or fast graph-based approximations; includes probabilistic scores like pointcloud geodesic distance
  • Visualization: Interactive 3D rendering of manifolds, projections, and geodesic paths with Plotly
  • JAX-native: Fully JIT-compiled and vectorized (vmap) for high-performance batch processing

Running the notebooks

If you want to run the notebooks, the suggested way is to install uv packet manager, cloning the repo and, from a terminal: uv pip install -e .

Citation

If you use JNLR in academic work, please cite the associated paper:

Lorenzo Nespoli, Anubhab Biswas, Roberto Rocchetta, and Vasco Medici.
"Nonlinear reconciliation: Error reduction theorems."
Transactions on Machine Learning Research (TMLR), 2026.
OpenReview: https://openreview.net/forum?id=dXRWuogm3J

BibTeX

@article{nespoli2026nonlinear_reconciliation,
  title   = {Nonlinear reconciliation: Error reduction theorems},
  author  = {Nespoli, Lorenzo and Biswas, Anubhab and Rocchetta, Roberto and Medici, Vasco},
  journal = {Transactions on Machine Learning Research},
  year    = {2026},
  url     = {https://openreview.net/forum?id=dXRWuogm3J},
  note    = {Accepted by TMLR}
}

Acknowledgements

This work has been funded by the Swiss State Secretariat for Education, Research and Innovation (SERI) under the Swiss contribution to the Horizon Europe projects DR-RISE (Horizon Europe, Grant Agreement No. 101104154) and REEFLEX (Horizon Europe, Grant Agreement No. 101096192).

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

jnlr-0.1.1.tar.gz (45.4 kB view details)

Uploaded Source

Built Distribution

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

jnlr-0.1.1-py3-none-any.whl (46.6 kB view details)

Uploaded Python 3

File details

Details for the file jnlr-0.1.1.tar.gz.

File metadata

  • Download URL: jnlr-0.1.1.tar.gz
  • Upload date:
  • Size: 45.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for jnlr-0.1.1.tar.gz
Algorithm Hash digest
SHA256 c673b11ae2d7c9cebe209e7737b7b41e83061874586593e31332cf42fd50ba63
MD5 3fbf495fd6afa5befbd9d33135280f85
BLAKE2b-256 00482d6b7454ac5f1dd70bc50bc03cde24e1b8a157958ebf403c139802fd85cf

See more details on using hashes here.

Provenance

The following attestation bundles were made for jnlr-0.1.1.tar.gz:

Publisher: publish.yml on supsi-dacd-isaac/JNLR

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

File details

Details for the file jnlr-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: jnlr-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 46.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for jnlr-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 61730496f43a88d5d4ce8862ea8c8748d7ac538fb700e52a627bb60fc92417cd
MD5 a43c6079672117e1ed56999bf7697d5e
BLAKE2b-256 4e0fb6749433f3d6b2f50c3f183b3e26c730d7ae8c52c974627bee8a755a2524

See more details on using hashes here.

Provenance

The following attestation bundles were made for jnlr-0.1.1-py3-none-any.whl:

Publisher: publish.yml on supsi-dacd-isaac/JNLR

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