rollupTree - Perform Recursive Computations
Mass rollup for a Bill of Materials is an example of a
class of computations in which elements are arranged in a tree
structure and some property of each element is a computed
function of the corresponding values of its child elements.
Leaf elements, i.e., those with no children, have values
assigned. In many cases, the combining function is simple
arithmetic sum; in other cases (e.g., mass properties), the
combiner may involve other information such as the geometric
relationship between parent and child, or statistical relations
such as root-sum-of-squares (RSS). This package implements a
general function for such problems. It is adapted to specific
recursive computations by functional programming techniques;
the caller passes a function as the update parameter to
rollup() (or, at a lower level, passes functions as the get,
set, combine, and override parameters to update_prop()) at
runtime to specify the desired operations. The implementation
relies on graph-theoretic algorithms from the 'igraph' package
of Csárdi, et al. (2006 <doi:10.5281/zenodo.7682609>).