예제 #1
0
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
예제 #2
0
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
예제 #3
0
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
예제 #4
0
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