def test_generic(self): qpu = xacc.getAccelerator('tnqvm') buffer = qpu.createBuffer('q', 4) @xacc.qpu(accelerator=qpu) def entangle(buffer): H(0) CNOT(0, 1) Measure(0, 0) Measure(1, 1) xacc.Initialize() entangle(buffer) self.assertEqual(entangle.nParameters(), 0) self.assertEqual(entangle.getFunction().toString(), 'H q0\nCNOT q0,q1\nMeasure q0\nMeasure q1\n')
import xacc xacc.Initialize() # Get access to D-Wave QPU and # allocate some qubits dwave = xacc.getAccelerator('dwave') qubits = dwave.createBuffer('q') # Define the function we'd like to # off-load to the QPU, here # we're using a the QMI low-level language @xacc.qpu(accelerator=dwave) def f(buffer, h, j): qmi(0, 0, h) qmi(1, 1, h) qmi(0, 1, j) # Execute on D-Wave f(qubits, 1., 2.) # Print the buffer, this displays # solutions and energies print(qubits) xacc.Finalize()
import xacc import xaccvqe from xaccvqe import PauliOperator xacc.Initialize(['--compiler','quil']) ibm = xacc.getAccelerator('local-ibm') tnqvm = xacc.getAccelerator('tnqvm') rigetti = xacc.getAccelerator('rigetti') #buffer = ibm.createBuffer('q', 2) buffer = tnqvm.createBuffer('q', 2) h2 = PauliOperator(5.906709445) + \ PauliOperator({0:'X',1:'X'}, -2.1433) + \ PauliOperator({0:'Y',1:'Y'}, -2.1433) + \ PauliOperator({0:'Z'}, .21829) + \ PauliOperator({1:'Z'}, -6.125) h3 = h2 + PauliOperator(9.625) + \ PauliOperator({1:'X',2:'X'}, -3.913119) + \ PauliOperator({1:'Y',2:'Y'}, -3.913119) + \ PauliOperator({2:'Z'}, -9.625) @xaccvqe.qpu.vqe(accelerator=tnqvm, observable=h3) def ansatz(buffer, t0, t1): X(0) Ry(t0, 2) CNOT(2, 0) Ry(t1, 1)
0.0906437679061661 1 1 2 1 0 0 3 0 0.3317360224302783 1 1 2 1 2 0 1 0 0.0906437679061661 1 1 3 1 1 0 3 0 0.3317360224302783 1 1 3 1 3 0 1 0 0.3317360224302783 2 1 0 1 0 0 2 0 0.0906437679061661 2 1 0 1 2 0 0 0 0.3317360224302783 2 1 1 1 1 0 2 0 0.0906437679061661 2 1 1 1 3 0 0 0 -0.4759344611440753 2 1 2 0 0.0906437679061661 2 1 3 1 1 0 0 0 0.3486989747346679 2 1 3 1 3 0 2 0 0.3317360224302783 3 1 0 1 0 0 3 0 0.0906437679061661 3 1 0 1 2 0 1 0 0.3317360224302783 3 1 1 1 1 0 3 0 0.0906437679061661 3 1 1 1 3 0 1 0 0.0906437679061661 3 1 2 1 0 0 1 0 0.3486989747346679 3 1 2 1 2 0 3 0 -0.4759344611440753 3 1 3 0 }""" op = vqe.compile(src) buffer = xacc.getAccelerator('tnqvm').createBuffer('q',4) self.assertAlmostEqual(vqe.execute(op, buffer, **{'task':'vqe', 'n-electrons':2}).energy, -1.13727, places=5) if __name__ == '__main__': xacc.Initialize(['--itensor-svd-cutoff','1e-16']) if xacc.hasAccelerator('tnqvm'): unittest.main() xacc.Finalize()