Learn R Programming

nlsr (version 2021.8.19)

findSubexprs: Find common subexpressions

Description

This function finds common subexpressions in an expression vector so that duplicate computation can be avoided.

Usage

findSubexprs(expr, simplify = FALSE, tag = ".expr", verbose = FALSE, ...)

Value

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.

Arguments

expr

An expression vector or language object.

simplify

Whether to call nlsSimplify on each subexpression before looking for common subexpressions.

tag

The prefix to use for locally created variables.

verbose

If TRUE, diagnostics are printed as simplifications are recognized.

...

Additional parameters to pass to nlsSimplify. Used only if simplify is TRUE.

Author

Duncan Murdoch

Details

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.

See Also

deriv in the stats package, nlsSimplify

Examples

Run this code
findSubexprs(expression(x^2, x-y, y^2-x^2))

Run the code above in your browser using DataLab