I also found a 4D implementation of this method, with an accompanying NumPy implementation: arXiv:1904.09869v1 [math.NA] 18 Apr 2019 https://arxiv.org/pdf/1904.09869 Stéfan On Wed, Jul 5, 2023, at 14:11, Sara Fridovich-Keil wrote:
Hi Fabian,
Thanks for writing this interpolator! I can offer a little info to Stéfan’s question about what has been done since 2005, though I’m sure my knowledge is also incomplete. In one of my projects I had a similar need and wrote a tricubic interpolator in JAX <https://github.com/sarafridov/plenoxels/blob/main/plenoxel.py#L340> (which provides automatic differentiation, though I’m not sure how the speed/accuracy/memory use compare to your implementation). I’m also aware of implementations of trilinear interpolation in both JAX <https://jax.readthedocs.io/en/latest/_autosummary/jax.scipy.ndimage.map_coor...> and PyTorch <https://pytorch.org/docs/stable/generated/torch.nn.functional.grid_sample.html>—technically trilinear interpolation isn’t smooth, but these library implementations still give “derivatives” (presumably subgradients) that seem fine for optimization purposes, and trilinear runs much faster than tricubic since it requires checking fewer neighbors.
Best, Sara