From 22cea26c9cb4db4539f2e814e3206f8af930d44e Mon Sep 17 00:00:00 2001 From: James Logan Date: Fri, 14 Nov 2025 17:50:57 -0500 Subject: [PATCH 1/2] Update readme --- README.md | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 57fcbb2..a63242b 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,11 @@ # InterpN + + +[Writeup](https://jlogan.dev/blog/#2025-11-10-interpn-fast-interpolation) | [Repo](https://github.com/jlogan03/interpn) | [Python Docs](https://interpnpy.readthedocs.io/en/latest/) | [Rust Docs](https://docs.rs/interpn/latest/interpn/) @@ -9,11 +15,6 @@ prioritizing correctness, performance, and compatiblity with memory-constrained Available as a rust crate and python library. -These methods perform zero allocation when evaluated (except, optionally, for the output). -Because of this, they have minimal per-call overhead, and are particularly -effective when examining small numbers of observation points. See the -[performance](https://interpnpy.readthedocs.io/en/latest/perf/) page for detailed benchmarks. - ## Features | Feature →
↓ Interpolant Method | Regular
Grid | Rectilinear
Grid | Json
Serialization | @@ -28,10 +29,12 @@ The methods provided here, while more limited in scope than scipy's, * use almost no RAM (and perform no heap allocations at all) * produce significantly improved floating-point error (by several orders of magnitude) * are json-serializable using Pydantic -* can also be used easily in web and embedded applications via the Rust library +* can also be used easily in web, embedded and gpu applications via the Rust library * are permissively licensed -![ND throughput 1000 obs](./docs/throughput_vs_dims_1000_obs.svg) +
+ + See [here](https://interpnpy.readthedocs.io/en/latest/perf/) for more info about quality-of-fit, throughput, and memory usage. @@ -43,8 +46,7 @@ pip install interpn ## Profile-Guided Optimization -To build the extension with profile-guided optimization using pre-built profiles, do `sh ./scripts/distr_pgo_install.sh`. -You can also generate your own PGO profiles like `sh ./scripts/distr_pgo_profile.sh`. +To build the extension with profile-guided optimization, do `sh ./scripts/distr_pgo.sh` after installing this extra compiler dependency: ```bash From 3ab26c00a0bddc543cd2cc55b1bfb1c16c45e950 Mon Sep 17 00:00:00 2001 From: James Logan Date: Fri, 14 Nov 2025 17:54:51 -0500 Subject: [PATCH 2/2] invert plot manually in svg --- README.md | 7 +------ docs/speedup_vs_dims_1_obs_linear_inverted.svg | 6 ++++++ 2 files changed, 7 insertions(+), 6 deletions(-) create mode 100644 docs/speedup_vs_dims_1_obs_linear_inverted.svg diff --git a/README.md b/README.md index a63242b..cc74655 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,5 @@ # InterpN - - [Writeup](https://jlogan.dev/blog/#2025-11-10-interpn-fast-interpolation) | [Repo](https://github.com/jlogan03/interpn) | [Python Docs](https://interpnpy.readthedocs.io/en/latest/) | @@ -34,7 +29,7 @@ The methods provided here, while more limited in scope than scipy's,
- + See [here](https://interpnpy.readthedocs.io/en/latest/perf/) for more info about quality-of-fit, throughput, and memory usage. diff --git a/docs/speedup_vs_dims_1_obs_linear_inverted.svg b/docs/speedup_vs_dims_1_obs_linear_inverted.svg new file mode 100644 index 0000000..274262c --- /dev/null +++ b/docs/speedup_vs_dims_1_obs_linear_inverted.svg @@ -0,0 +1,6 @@ + + +123456050100150200InterpN Speedup vs. ScipyLinear, 1 Observation PointNumber of DimensionsSpeedup vs. Scipy \ No newline at end of file