def speed(nb_qbits, nb_circuits, repeat=1, depth=2, gpu=False, multicore = False): if gpu: params = cupy.pi * cupy.random.rand(depth, nb_qbits, nb_circuits) else: params = np.pi * np.random.rand(depth, nb_qbits, nb_circuits) start_time = ftime() for _ in range(repeat): mq.initQreg(nb_qbits, nb_circuits, gpu = gpu, multicore = multicore) for l in range(depth): for i in range(nb_qbits): mq.SX(i) mq.RZ(i, params[l,i]) mq.SX(i) for i in range(nb_qbits - 1): mq.CZ(i, i+1) for i in range(nb_qbits): mq.SX(i) mq.measureAll() end_time = ftime() return (end_time - start_time)/repeat
def __single_input(self, idx, theta): self.__verify_index__(idx) mq.SX(idx) mq.RZ(idx, theta) mq.SX(idx) self.__txt += f"SX({idx})RZ({idx},{theta})SX({idx})"
import manyq as mq import numpy as np angles = np.array([np.pi/3,np.pi/2,2*np.pi/3]) mq.initQreg(2,angles.shape[0]) mq.SX(0) mq.SX(1) mq.RZ(0,angles) mq.SX(0) mq.SX(1) mq.measureAll() shots = mq.makeShots(100) np.set_printoptions(precision=2) print(mq.Qreg.inQ,"\n") print(mq.Qreg.mQ,'\n') print(shots)
import manyq as mq import numpy as np # angles = np.array([[np.pi/3,np.pi/2,2*np.pi/3]]) omega = np.array([[np.pi / 3, np.pi / 2, 2 * np.pi / 3], [-np.pi / 3, -np.pi / 2, 2 * np.pi / 3]]) theta = np.array([-np.pi / 3, np.pi / 3]) mq.initQreg(2, omega.shape[1]) mq.SX(0) mq.SX(1) # mq.RZ(0,angles) mq.RZ(0, omega[0]) mq.RZ(0, theta[0]) mq.RZ(1, omega[1]) mq.RZ(1, theta[1]) # mq.fSIM(0,1,angles,angles) mq.SX(0) mq.SX(1) mq.measureAll() shots = mq.makeShots(100) np.set_printoptions(precision=2, suppress=True) print(mq.Qreg.inQ, "\n") print(mq.Qreg.mQ, '\n') # print(shots)