Template Function sequant::home_scope

Function Documentation

template<meta::eval_node Node>
container::svector<Index> const &sequant::home_scope(Node const &n) noexcept

The home residency of n: the loops opened at or above this node filtered to its own result slots, stamped per occurrence by stamp_occurrence_homes. The body – n->occurrence_home() – is the definition.

It is not a cross-occurrence meet. EvalExpr::sliced_modes (stamped by eval::stamp_lifetime_masks) is the meet, and it is a different quantity, read by the forest-descent route only; one node sliced along different modes in different terms keeps each occurrence’s own slicing here, and value identity (value_key_of) tells those occurrences apart. See the developer guide, doc/developer/batched_evaluation.rst, “Loop identity and value identity”.