RBF_INTERP_ND is a C++ library which defines and evaluates radial basis function (RBF) interpolants to multidimensional data.
A radial basis interpolant is a useful, but expensive, technique for definining a smooth function which interpolates a set of function values specified at an arbitrary set of data points.
Given nd multidimensional points xd with function values fd, and a basis function phi(r), the form of the interpolant is
f(x) = sum ( 1 <= i <= nd ) w(i) * phi(||x-xd(i)||)where the weights w have been precomputed by solving
sum ( 1 <= i <= nd ) w(i) * phi(||xd(j)-xd(i)||) = fd(j)
Four families of radial basis functions are provided.
RBF_INTERP_ND needs access to the R8LIB library.
The computer code and data files described and made available on this web page are distributed under the GNU LGPL license.
RBF_INTERP_ND is available in a C version and a C++ version and a FORTRAN77 version and a FORTRAN90 version and a MATLAB version.
LAGRANGE_INTERP_ND, a C++ library which defines and evaluates the Lagrange polynomial p(x) which interpolates a set of data depending on a multidimensional argument x that was evaluated on a product grid, so that p(x(i)) = z(i).
R8LIB, a C++ library which contains many utility routines using double precision real (R8) arithmetic.
RBF_INTERP_1D, a C++ library which defines and evaluates radial basis function (RBF) interpolants to 1D data.
RBF_INTERP_2D, a C++ library which defines and evaluates radial basis function (RBF) interpolants to 2D data.
SHEPARD_INTERP_ND, a C++ library which defines and evaluates Shepard interpolants to multidimensional data, based on inverse distance weighting.
SPARSE_INTERP_ND a C++ library which can be used to define a sparse interpolant to a function f(x) of a multidimensional argument.
SPINTERP, a MATLAB library which carries out piecewise multilinear hierarchical sparse grid interpolation; an earlier version of this software is ACM TOMS Algorithm 847, by Andreas Klimke;
TEST_INTERP_ND, a C++ library which defines test problems for interpolation of data z(x), depending on an M-dimensional argument.
You can go up one level to the C++ source codes.