Skip to main content

cinx

tests PyPI

cinx is a minimal, non-nonsense library for differentiable and fast cubic spline interpolation in JAX.

It's designed to be fully JAX-native, supporting GPU/TPU/CPU execution, and allowing you to backpropagate through your interpolation steps for seamless integration into your machine learning workflows.

Usage

cinx provides a straightforward interp function that handles both single-variable and multi-variable interpolation. Its pure JAX design means you can trivially use JAX transformations like jax.vmap for batch processing and jax.grad for gradient calculations.

Basic 1D Interpolation

import cinx
import jax.numpy as jnp

xp = jnp.linspace(0, 1, 5)
fp = jnp.sin(xp * jnp.pi)
x = jnp.linspace(0, 1, 100)

f = cinx.interp(x, xp, fp)

Multi-variate Interpolation

import jax.numpy as jnp
from cinx import interp

theta = jnp.linspace(0, 2 * jnp.pi, 5)
X_data = jnp.stack((theta, jnp.sin(theta)), axis=-1)
fp = jnp.dot(X_data, rot_matrix(jnp.pi / 4).T)

xp = jnp.linspace(0, 1, len(fp))
x = jnp.linspace(0, 1, 100)

f = interp(x, xp, fp)

Batch Interpolation

import jax
import jax.numpy as jnp
from cinx import interp

theta = jnp.linspace(0, 2 * jnp.pi, 5)
rot_matrix = lambda a: jnp.array([[jnp.cos(a), -jnp.sin(a)], 
                                  [jnp.sin(a), jnp.cos(a)]])
X_data = jnp.stack((theta, jnp.sin(theta)), axis=-1)

angles_batch = jnp.linspace(0, 2 * jnp.pi, 10)
fp = jnp.stack([jnp.dot(X_data, rot_matrix(a).T) for a in angles_batch], axis=0)

xp = jnp.linspace(0, 1, len(fp[0]))
x = jnp.linspace(0, 1, 100)

interp_vmap = jax.vmap(interp, in_axes=(None, None, 0))
f = interp_vmap(x, xp, fp)

Installation

cinx can be installed from PyPI via pip:

pip install cinx

Citation

You don't have to, but if you use cinx in your research and need to reference it, please cite it as follows:

@software{alonso_zdyb_cinx,
  author = {Alonso, Albert and Zdyb, Frans},
  title = {cinx: Minimal Cubic Spline Interpolation in JAX},
  url = {https://github.com/alonfnt/cinx},
  version = {0.0.1},
  year = {2025}
}

Metadata

Release files for cinx 0.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for cinx 0.0.1
File Size Uploaded
cinx-0.0.1.tar.gz 4.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for cinx 0.0.1
File Interpreter ABI Platform
cinx-0.0.1-py3-none-any.whl Python 3 none any Details

Total release size: 9.0 kB

Release files / cinx-0.0.1.tar.gz

Download URL cinx-0.0.1.tar.gz
Size 4.4 kB
Tags Source
SHA-256 checksum
How to use checksums
c52b9a3c4543ef073daf85946fd83a14d5ff4c82745cdbdb93fa7426dd51c0fd
BLAKE2b-256 checksum
How to use checksums
7d2d0e7d4d61f1682ef0f3f94e92598ae3a83a2909426c34c5db23476034728e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.9

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 4, 2025.

Transparency log

Release files / cinx-0.0.1-py3-none-any.whl

Download URL cinx-0.0.1-py3-none-any.whl
Size 4.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
389f541a298787b4cde2255a09069db703d8b99ba2e59039a3996c91abdc0d47
BLAKE2b-256 checksum
How to use checksums
a4904ae8ec784151dee06b86c674b9b89de58ce9beaf8777b46db1edd1114978
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.9

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 4, 2025.

Transparency log

Release history Release notifications | RSS feed

This release

0.0.1 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page