Jax-based library for nonlinear reconciliation and learning
Project description
JNLR Jax-based non-linear reconciliation and learning
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file jnlr-0.1.0.tar.gz.
File metadata
- Download URL: jnlr-0.1.0.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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ffe9f3e9a16c2ba46319cefab1378496fb8b7ff308c7d0b5242ed1ecf8a70d02
|
|
| MD5 |
19c286eb68cf1cd444599f075a298fcc
|
|
| BLAKE2b-256 |
68fb6ef0f87914a8faf469d348c4a0ae8459082f16334e1c74e36fb228937d9c
|
Provenance
The following attestation bundles were made for jnlr-0.1.0.tar.gz:
Publisher:
publish.yml on supsi-dacd-isaac/JNLR
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
jnlr-0.1.0.tar.gz -
Subject digest:
ffe9f3e9a16c2ba46319cefab1378496fb8b7ff308c7d0b5242ed1ecf8a70d02 - Sigstore transparency entry: 1180127923
- Sigstore integration time:
-
Permalink:
supsi-dacd-isaac/JNLR@16596df17ee99449ce8fbba594ba53d20c451abe -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/supsi-dacd-isaac
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@16596df17ee99449ce8fbba594ba53d20c451abe -
Trigger Event:
release
-
Statement type:
File details
Details for the file jnlr-0.1.0-py3-none-any.whl.
File metadata
- Download URL: jnlr-0.1.0-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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ef2003829676700e836d1cf2506e6134f42558ec07c64a42bb2ee604abc48711
|
|
| MD5 |
5caef6375f1043c37467f54c5d61180f
|
|
| BLAKE2b-256 |
c12472e29a9791bdba28b4823a96282836f10b8f477dbba5510efbf134bdc288
|
Provenance
The following attestation bundles were made for jnlr-0.1.0-py3-none-any.whl:
Publisher:
publish.yml on supsi-dacd-isaac/JNLR
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
jnlr-0.1.0-py3-none-any.whl -
Subject digest:
ef2003829676700e836d1cf2506e6134f42558ec07c64a42bb2ee604abc48711 - Sigstore transparency entry: 1180127948
- Sigstore integration time:
-
Permalink:
supsi-dacd-isaac/JNLR@16596df17ee99449ce8fbba594ba53d20c451abe -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/supsi-dacd-isaac
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@16596df17ee99449ce8fbba594ba53d20c451abe -
Trigger Event:
release
-
Statement type: