VTK

#include <vtkArrayInterpolate.h>
Computes the weighted sum of a collection of slices from a source array, and stores the results in a slice of a target array. Note that the number of source slices and weights must match, and the extents of each source slice must match the extents of the target slice.
Note: The implementation assumes that operator*(T, double) is defined, and that there is an implicit conversion from its result back to T.
If you need to interpolate arrays of T other than double, you will likely want to create your own specialization of this function.
The implementation should produce correct results for dense and sparse arrays, but may perform poorly on sparse.