def test(): machine=pq.init_quantum_machine(pq.QMachineType.CPU) qlist=machine.qAlloc_many(4) clist = machine.cAlloc_many(4) prog=pq.QProg() prog.insert(pq.H(qlist[2])).insert(pq.meas_all(qlist,clist)) data = {'shots':1000} result=machine.run_with_configuration(prog,clist,data) pq.destroy_quantum_machine(machine) machine2=pq.init_quantum_machine(pq.QMachineType.CPU) qlist2=machine2.qAlloc_many(3) prog2=pq.QProg() prog2.insert(pq.H(qlist2[0])).insert(pq.CNOT(qlist2[0],qlist2[1])) result2=machine2.prob_run_dict(prog2,qlist2,-1) pq.destroy_quantum_machine(machine2) pq.init(pq.QMachineType.CPU) qlist3=pq.qAlloc_many(5) clist3=pq.cAlloc_many(5) prog3=pq.QProg() prog3.insert(pq.H(qlist3[0])).insert(pq.CNOT(qlist3[0],qlist3[1]))\ .insert(pq.CNOT(qlist3[1],qlist3[2])).insert(pq.CNOT(qlist3[2],qlist3[3]))\ .insert(pq.meas_all(qlist3,clist3)) result3=pq.run_with_configuration(prog3,clist3,100) pq.finalize() return result,result2,result3
def Bell_State(): machine=pq.init_quantum_machine(pq.QMachineType.CPU) qlist=machine.qAlloc_many(2) clist=machine.cAlloc_many(2) qprog=pq.QProg() qprog.insert(pq.H(qlist[0]))\ .insert(pq.CNOT(qlist[0],qlist[1])) qprog.insert(pq.meas_all(qubit_list=qlist,cbit_list=clist)) machine.load(qprog) machine.run() result=machine.getResultMap() return result
def test_decompose(): machine = pq.init_quantum_machine(pq.QMachineType.CPU) q = machine.qAlloc_many(2) c = machine.cAlloc_many(2) x = [(0.6477054522122977 + 0.1195417767870219j), (-0.16162176706189357 - 0.4020495632468249j), (-0.19991615329121998 - 0.3764618308248643j), (-0.2599957197928922 - 0.35935248873007863j), (-0.16162176706189363 - 0.40204956324682495j), (0.7303014482204584 - 0.4215172444390785j), (-0.15199187936216693 + 0.09733585496768032j), (-0.22248203136345918 - 0.1383600597660744j), (-0.19991615329122003 - 0.3764618308248644j), (-0.15199187936216688 + 0.09733585496768032j), (0.6826630277354306 - 0.37517063774206166j), (-0.3078966462928956 - 0.2900897445133085j), (-0.2599957197928923 - 0.3593524887300787j), (-0.22248203136345912 - 0.1383600597660744j), (-0.30789664629289554 - 0.2900897445133085j), (0.6640994547408099 - 0.338593803336005j)] cir = pq.matrix_decompose(q, x) result_mat = pq.get_matrix(cir) #draw_qprog(cir, 'text') draw_qprog(cir, 'pic', filename='d:/test_cir_draw-88.jpg') x1 = np.round(np.array(x), 3) print('x1') print(x1) mat2 = np.round(np.array(result_mat), 3) print('mat2') print(mat2) if np.all(x1 == mat2): print('ok') else: print('falsh') print('The decomposed cir matrix:') pq.print_matrix(result_mat, 15)
def __init__(self, machineType=pq.QMachineType.CPU): self.m_machine = pq.init_quantum_machine(machineType)
def __init__(self, quBitCnt, cBitCnt, machineType=pq.QMachineType.CPU): self.m_machine = pq.init_quantum_machine(machineType) self.m_qlist = self.m_machine.qAlloc_many(quBitCnt) self.m_clist = self.m_machine.cAlloc_many(cBitCnt) self.m_prog = pq.QProg()