#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)
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)