View source: R/interpolation.R
interpolation | R Documentation |
Parallel version of multilinear interpolation generator for function approximation
The primary method is ipol
which
dispatches to some other method. All the generated
interpolants accept as an argument a matrix of column
vectors. The generated functions also accept an argument
threads=getOption('ipol.threads')
to utilize more than
one CPU if a matrix of column vectors is evaluated. The option
ipol.threads
is initialized from the environment variable
IPOL_THREADS
upon loading of the package. It defaults to 1
.
interpolation(evalfun, grid_list, cores = detectCores(), int = FALSE, ...)
evalfun |
The objective function to be approximated. |
grid_list |
A list for grid points (each element of list is a vector represents ticklabels on a dimension). The number of list elements are the dimension of function inputs. |
cores |
The numbers of cores (threads) of your machine to conduct parallel computing. |
int |
Logical indicator. |
... |
Other inputs for objective functions to be passed through. |
The interpolants are ordinary R-objects and can be saved with save()
and loaded
later with load()
or serialized/unserialized with other tools, just like any R-object.
However, they contain calls to functions in the package, and while the author will make efforts
to ensure that generated interpolants are compatible with future versions of ipol,
I can issue no such absolute guarantee.
interpolation
returns
value: A list of of length p corresponding to each variable. Returns NA for continuous variable; proportion of zeros for binary/truncated variables; the cumulative proportions of zeros and ones (e.g. first value is proportion of zeros, second value is proportion of zeros and ones) for ternary variable.
interpolant: An interpolant function generated by chebpol::chebpol
for interplation.
ipol, interpolant
## Not run: grid_list = list(seq(-0.5, 0.5, by = 0.5), seq(-0.5, 0.5, by = 0.5)) objfun = function(x, y) {x^2 + sqrt(y)} evalfun = function(X) {objfun(X[1], X[2])} value = interpolation(evalfun = evalfun, grid_list = grid_list)$value interpolant = interpolation(evalfun = evalfun, grid_list = grid_list)$interpolant ## End(Not run)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.