def esm3(idling=False): """ syndrome extractor circuit for steane circuit 2, two ancillas per face, 6 checks in series """ cirs = [] cirs.append(esmx_anc([4, 5, 6, 7], [12, 13], idling=idling, db=3)) cirs.append(esmx_anc([1, 2, 4, 5], [8, 9], idling=idling)) cirs.append(esmx_anc([1, 3, 4, 7], [10, 11], idling=idling)) cirs.append(esmz_anc([4, 5, 6, 7], [120, 130], idling=idling, db=3)) cirs.append(esmz_anc([1, 2, 4, 5], [80, 90], idling=idling)) cirs.append(esmz_anc([1, 3, 4, 7], [100, 110], idling=idling)) return cirs
def steane_c1_l1(tp='XZ'): """ The circuit to perform each check for the Steane code using two ancillas per face """ timesteps = [] if 'Z' in tp: timesteps += esmz_anc([4, 5, 6, 7], [120, 130], db=3) timesteps += esmz_anc([1, 2, 4, 5], [80, 90]) timesteps += esmz_anc([1, 3, 4, 7], [100, 110]) if 'X' in tp: timesteps += esmx_anc([4, 5, 6, 7], [12, 13], db=3) timesteps += esmx_anc([1, 2, 4, 5], [8, 9]) timesteps += esmx_anc([1, 3, 4, 7], [10, 11]) return timesteps
def esm4(idling=False): """ syndrome extractor circuit for steane circuit 5, two checks in parallel """ cirs = [] cirs.append( esmxs_anc3([3, 7, 2, 5], [3, 7, 1, 4], [8, 10, 9], idling=idling)) cirs.append(esmx_anc([4, 5, 6, 7], [12, 13, 14], idling=idling)) cirs.append( esmzs_anc3([3, 7, 2, 5], [3, 7, 1, 4], [80, 100, 90], idling=idling)) cirs.append(esmz_anc([4, 5, 6, 7], [120, 130, 140], idling=idling)) return cirs
def steane_c2_l2(tp='XZ'): """ The circuit to perform two X or two Z checks in parallel for the Steane code using 3+2 ancillas """ timesteps = [] if 'Z' in tp: timesteps += esmzs_anc3([3, 7, 2, 5], [3, 7, 1, 4], [80, 100, 90]) timesteps += esmz_anc([4, 5, 6, 7], [120, 130]) if 'X' in tp: timesteps += esmxs_anc3([3, 7, 2, 5], [3, 7, 1, 4], [8, 10, 9]) timesteps += esmx_anc([4, 5, 6, 7], [13, 12]) return timesteps