Function sequant::eval::forced_split_types

Function Documentation

inline container::svector<Index> sequant::eval::forced_split_types(CellLegality const &cell)

Group cell's forced_split_axes by axis space type (base_key()), collapsing multiple same-type Index instances into the single loop (axis) they jointly force to split.

forced_split_axes is recorded per Index instance (see its field doc): an outer product like A{;i_3}*A{;i_4} lists both i_3 and i_4, both LoopCarried on the occ space, but they name only one occ loop that must re-enter. This returns one representative Index per distinct base_key(), in forced_split_axes's

discovery order, so a consumer that needs “which loops must split” (not “which indices are

carried”) gets a de-duplicated-by-type answer.