Skip to content

Get record util

insert_get_records

insert_get_records(
    node: Statement,
    measure_id_tuple: MeasureIdTuple,
    meas_count_at_stmt: int,
)

Insert GetRecord statements before the given node

Source code in .venv/lib/python3.12/site-packages/bloqade/stim/rewrite/get_record_util.py
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
def insert_get_records(
    node: ir.Statement, measure_id_tuple: MeasureIdTuple, meas_count_at_stmt: int
):
    """
    Insert GetRecord statements before the given node
    """
    get_record_ssas = []
    for measure_id_bool in measure_id_tuple.data:
        assert isinstance(measure_id_bool, MeasureIdBool)
        target_rec_idx = (measure_id_bool.idx - 1) - meas_count_at_stmt
        idx_stmt = py.constant.Constant(target_rec_idx)
        idx_stmt.insert_before(node)
        get_record_stmt = auxiliary.GetRecord(idx_stmt.result)
        get_record_stmt.insert_before(node)
        get_record_ssas.append(get_record_stmt.result)

    return get_record_ssas