This function finds common subexpressions in an expression vector so that duplicate computation can be avoided.
findSubexprs(expr, simplify = FALSE, tag = ".expr", verbose = FALSE, ...)
A language object which evaluates to an expression vector which would evaluate to the same result as the original vector with less duplicated code but more storage of intermediate results.
An expression vector or language object.
Whether to call nlsSimplify
on each subexpression before
looking for common subexpressions.
The prefix to use for locally created variables.
If TRUE
, diagnostics are printed as simplifications are
recognized.
Additional parameters to pass to nlsSimplify
.
Used only if simplify
is TRUE
.
Duncan Murdoch
This function identifies all repeated subexpressions in an expression vector,
and stores them in locally created variables. It is used by fnDeriv
to share common subexpressions between expression evaluations and gradient
evaluations, for example.
If simplify
is TRUE
, the assumptions behind the simplifications done
by nlsSimplify
must be valid for the result to match the input. With
the default simplifications, this means that all variables should take finite
real values.
deriv
in the stats
package, nlsSimplify
findSubexprs(expression(x^2, x-y, y^2-x^2))
Run the code above in your browser using DataLab