Source code for localuf.decoders.luf.constants

"""Constants for local Union--Find decoder."""

from enum import IntEnum

BUSY_SIGNAL_SYMBOLS = {
    True: 'b',
    False: ' ',
}
"""How drawer should label a node with(out) a busy signal."""
ACTIVE_SIGNAL_SYMBOLS = {
    True: 'A',
    False: ' ',
}
"""How drawer should label a node with(out) an active signal."""


[docs] class Stage(IntEnum): """Constants for stage values.""" INCREMENT = 1 SV_STAGE_COUNT = 4 """Syndrome validation stage count.""" BP_STAGE_COUNT = 3 """Burning & peeling stage count.""" GROWING, MERGING, PRESYNCING, SYNCING = range(SV_STAGE_COUNT) BURNING, PEELING, DONE = range(SV_STAGE_COUNT, SV_STAGE_COUNT+BP_STAGE_COUNT) def __iadd__(self, other: 'Stage'): return Stage(self.value + other.value) def __imod__(self, other: 'Stage'): return Stage(self.value % other.value) def __str__(self): match self: case Stage.GROWING: return 'G' case Stage.MERGING: return 'M' case Stage.PRESYNCING: return 'PS' case Stage.SYNCING: return 'S' case Stage.BURNING: return 'B' case Stage.PEELING: return 'P' case Stage.DONE: return 'D'