interpn 0.11.2

N-dimensional interpolation/extrapolation methods, no-std and no-alloc compatible.
Documentation
[package]
name = "interpn"
version = "0.11.2"
edition = "2024"
rust-version = "1.87" # 2025-05-15
authors = ["James Logan <jlogan03@gmail.com>"]
license = "MIT OR Apache-2.0"
repository = "https://github.com/jlogan03/interpn/"
homepage = "https://github.com/jlogan03/interpn/"
description = "N-dimensional interpolation/extrapolation methods, no-std and no-alloc compatible."
readme = "README.md"

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[lib]
name = "interpn"
crate-type = ["cdylib", "rlib"]

[dependencies]
# Rust lib deps
num-traits = { version = "^0.2.19", default-features = false, features = ["libm"] }
crunchy = { version = "^0.2.4", default-features = false }

# Parallelism
rayon = { version = "^1.12.0", optional = true }
num_cpus = { version = "^1.17.0", optional = true }

# Python bindings
pyo3 = { version = "0.29.0", features = ["extension-module", "abi3-py310", "generate-import-lib"], optional = true }
numpy = { version = "0.29.0", optional = true }

# Test-only utils
itertools = { version = "0.15.0", optional = true }


[dev-dependencies]
rand = "0.10.1"
criterion = "0.8.2"
ndarray = "0.17.2"

[features]
default = ["std", "crunchy/limit_64", "par"]
python = ["numpy", "pyo3", "std"]
std = ["itertools"]
deep-unroll = ["crunchy/limit_256"]
fma = []
par = ["std", "rayon", "num_cpus"]

[profile.release]
opt-level = 3
codegen-units = 4
lto = true
strip = true
overflow-checks = true

[profile.dev]
opt-level = 2
codegen-units = 16
lto = false

[[bench]]
name = "bench"
harness = false

[lints.rust]
unsafe_code = "forbid"