pompBuilder is a facility for producing compiled pomp objects.pompBuilder(data, times, t0, name, statenames, paramnames,
tcovar, covar,
rmeasure, dmeasure, step.fn, step.fn.delta.t,
skeleton, skeleton.type = c("map","vectorfield"),
skelmap.delta.t = 1,
parameter.transform, parameter.inv.transform,
rprior, dprior,
globals, ..., link = TRUE, save = FALSE)pomp for more information.
data must be a data-frame.covar is a data-frame containing covariates (variables in columns, timepoints in rows);
tcovar is the name of the column containing time.step.fn is a C code that implements an Euler step function.
The Euler time-step is step.fn.delta.t, which should be a positive number.skeleton is a C code that implements the deterministic skeleton.
As in pomp, skeleton.type indicates whether the skeleton is a map (discrete-time) or vectorfield (continuous-time)parameter.transform maps parameters from the estimation scale to the natural scale;
parameter.inv.transformation maps them from the natural scale to the estimatiopomppomp object.
A side-effect is the writing and compilation of a C code into a dynamics shared object.
These files will reside in the current working directory (see getwd).
If pompBuilder has been called with link=FALSE, this dynamic shared object must be linked (see dyn.load) before the pomp object can be used. Parallel computing caution:
note that, since a side-effect of running pompBuilder is the writing and compilation of a file, caution must be used when running parallel computations.
Simultaneous execution of pompBuilder on nodes sharing a common disk will cause all nodes to attempt to write the same file at the same time;
the results will be undefined.
If multiple nodes are to work on the same pomp object built by pompBuilder, first run pompBuilder once (perhaps with link=FALSE) to write the C file and compile it into a dynamic shared object file.
The pomp object returned by pompBuilder can then be shared with all worker nodes.
Note, however, that all worker nodes must dynamically load (using dyn.load) the dynamic shared object file before anything can be done with the pomp object.
pompBuilder with save=TRUE assumes that files can be written to the current working directory and that dynamic shared objects can be compiled and linked, i.e., that R CMD SHLIB will work.
This will not typically be the case in out-of-the-box Windows installations.pomp and the demos.