fn eval(
ancestor: &mut IndexSlice<PreorderIndex, PreorderIndex>,
lastlinked: Option<PreorderIndex>,
semi: &IndexSlice<PreorderIndex, PreorderIndex>,
label: &mut IndexSlice<PreorderIndex, PreorderIndex>,
node: PreorderIndex,
) -> PreorderIndex
Expand description
Evaluate the link-eval virtual forest, providing the currently minimum semi
value for the passed node
(which may be itself).
This maintains that for every vertex v, label[v]
is such that:
semi[eval(v)] = min { semi[label[u]] | root_in_forest(v) +> u *> v }
where +>
is a proper ancestor and *>
is just an ancestor.