def test_initialize(): qvm = QVMConnection(type_trans='density') assert isinstance(qvm, QVM_Density)
from pyquil.quil import Program from pyquil.gates import * from pyquil.parameters import Parameter, quil_sin, quil_cos from pyquil.quilbase import DefGate #from pyquil.api import QVMConnection from referenceqvm.api import QVMConnection import numpy as np theta = Parameter('theta') cry = np.array([[1.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0], [0.0, 0.0, quil_cos( theta / 2), -1 * quil_sin(theta / 2)], [0.0, 0.0, quil_sin(theta / 2), quil_cos(theta / 2)]]) dg = DefGate('CRY', cry, [theta]) CRY = dg.get_constructor() p = Program() p.inst(dg) p.inst(X(0)) p.inst(X(1)) p.inst(CRY(4.304)(0, 2)) qvm = QVMConnection() wf = qvm.wavefunction(p) print(wf)
# ax[i].matshow(bas[i].reshape(rows, cols), vmin=-1, vmax=1) # ax[i].set_xticks([]) # ax[i].set_yticks([]) '''sample distribution''' hist_sample = [0 for _ in range(2**n_qubits)] for s in bas: b = ''.join(str(int(e)) for e in s) idx = int(b, 2) hist_sample[idx] += 1. / float(n_points) #plt.show() return np.array(hist_sample) QVM_CXN = QVMConnection() USE_WAVEFUNCTION = True def get_distribution(p): wf = QVM_CXN.wavefunction(p) return np.square(np.abs(wf[0].amplitudes)) # local # return np.square(np.abs(wf.amplitudes)) # Rigetti def kl_div(p, q, eps=1e-8): n = len(p) assert n == len(q) p = np.array(p) q = np.array(q)