Esempio n. 1
0
#faulty_gate = circuits[0].gates[37]
#faulty_qubit = faulty_gate.qubits[1]
#new_g = circuits[0].insert_gate(faulty_gate, [faulty_qubit], '', 'Y', False)
#new_g.is_error = True
#brow.from_circuit(circuits, True)
#i = 0
#for supra_gate in circuits.gates:
#    i += 1
#    print 'gate', i
#    print supra_gate.gate_name
#sys.exit(0)

chp_loc = './chp_extended'

# create the initial state (|+> ctrl; |0> targ; all |0> anc)
init_state_ctrl = wrapper.prepare_stabs_Steane('+X')
init_state_targ = wrapper.prepare_stabs_Steane('+Z')
init_state_anc = wrapper.prepare_stabs_Steane('+Z')
#anc_stabs, anc_destabs = [], []
#for i in range(n_code):
#    anc_stab = ['Z' if i==j else 'I' for j in range(n_code)]
#    anc_stab.insert(0, '+')
#    anc_destab = ['X' if i==j else 'I' for j in range(n_code)]
#    anc_destab.insert(0, '+')
#    anc_stabs += [''.join(anc_stab)]
#    anc_destabs += [''.join(anc_destab)]
#init_state_anc = anc_stabs, anc_destabs

all_stabs = [init_state_ctrl[0]] + [init_state_targ[0]] + [init_state_anc[0]]
all_destabs = [init_state_ctrl[1]] + [init_state_targ[1]] + [init_state_anc[1]]
init_state = qfun.combine_stabs(all_stabs, all_destabs)
Esempio n. 2
0
output_folder = './MC_results/QECd3_flags/all_flags/ion_trap3/CNOT/latt_surg/noQEC/%s%s/' %(init_state1, init_state2)

# Define the error information
# For the subset sampler, these error rates are just place-holders;
# their exact values don't matter.
p1, p2, p_meas, p_prep, p_sm, p_cross, p_5q = 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1
error_dict, Is_after2q, Is_after1q, faulty_groups = wrapper.dict_for_error_model(
                                                        error_model=error_model,
                                                        p_1q=p1, p_2q=p2,
                                                        p_meas=p_meas, p_prep=p_prep,
                                                        p_sm=p_sm, p_cross=p_cross,
                                                        p_5q=p_5q)
error_info = mc.read_error_info(error_dict)

# create the initial state (|+> ctrl; |0> targ; all |0> anc)
init_state_ctrl = wrapper.prepare_stabs_Steane('+%s'%init_state1)
init_state_targ = wrapper.prepare_stabs_Steane('+%s'%init_state2)
init_state_anc = wrapper.prepare_stabs_Steane('+Z')
all_stabs = [init_state_ctrl[0]]+[init_state_targ[0]]+[init_state_anc[0]]
all_destabs = [init_state_ctrl[1]]+[init_state_targ[1]]+[init_state_anc[1]]
initial_state = qfun.combine_stabs(all_stabs, all_destabs)

# create the circuit
latt_circ = qfun.create_latt_surg_CNOT(False,True,True,False,True,True,True)
#brow.from_circuit(latt_circ, True)
#sys.exit(0)

# Define the list of error-prone gates
# For now, we have 6 groups: (a) preps and meas, (b) MS2, (c) I_idle, (d) I_cross, 
#                            (e) 1-q gates, (f) MS5
gates_indices = wrapper.gates_list_CNOT_general(latt_circ, faulty_groups)