Each "dot" function accepts arguments as in its "non-dot" counterpart, but peforms computations in place, overwriting the first input argument (which must be a vector of the appropriate length) with the desired output.
.divided_diff(f, z)
.b_mat_mult(v, k, xd, tf_weighting, transpose, inverse)
.h_mat_mult(v, k, xd, di_weighting, transpose, inverse)
These functions should not be used unless you are intentionally doing so for memory considerations and are nonetheless being very careful.
An important warning: each "dot" function only works as expected if its first argument is passed in as a vector of numeric type. If the first argument is passed in as an integer vector, then since the output must (in general) be a numeric vector, it cannot be computed in place (Rcpp performs an implicit cast and copy when it converts this to NumericVector type for use in C++).
Also, each "dot" function does not perform any error checking on its input arguments. Use with care. More details on the computations performed by individual functions are provided below.
.divided_diff()
Overwrites f
with all lower-order divided differences: each element f[i]
becomes the divided difference with respect to centers z[1:i]
.
.b_mat_mult()
Overwrites v
with B %*% v
, where B
is the extended discrete derivative
matrix as returned by b_mat()
.
.h_mat_mult()
Overwrites v
with H %*% v
, where H
is the falling factorial basis
matrix as returned by h_mat()
.