neuralqx.utils.symmetries.types.cycle module

class Cycle(mapping_canon, domain, shift, name='cyc')

Bases: Symmetry

Cycle symmetry representing a cyclic shift of the canonical edge ordering.

A cycle is defined by a mapping on canonical (orientation-agnostic) edges. When queried with an oriented edge, the result is re-oriented to match the query edge’s orientation, so indexing respects the caller’s orientation convention.

Iteration and printing preserve the original oriented edges provided in domain.

Parameters:
  • mapping_canon (Dict[Tuple[int, int, int], Tuple[int, int, int]]) – Mapping from canonical edges to canonical edges implementing the cycle.

  • domain (List[Tuple[int, int, int]]) – Oriented edges supplied by the user; used for iteration/printing.

  • shift (int) – The shift amount (in positions) that produced this cycle.

  • name (str) – Optional name for the cycle. Defaults to "cyc".

name: str = 'cyc'

Default name of a cycle.