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})"
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 alldiam(self, idx=None): if idx is None: idx = range(self.nbqbits) if isinstance(idx, int): idx = [idx] for i in idx: self.__verify_index__(i) mq.SX(i) self.__txt += f"SX({i})" return self
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)