コード例 #1
0
ファイル: hadamard_test_0.py プロジェクト: samn33/qlazy
def hadamard_test_imag():

    print("== expectaion value prediction (imaginary part) == ")

    # prepare initial state

    qs_0 = QState(1)
    qs_psi = QState(2).h(0).h(1)
    qs = qs_0.tenspro(qs_psi)

    # circuit for hadamard test

    qs.h(0).s(0)
    qs.ch(0, 1).crx(0, 2, phase=0.25)
    qs.h(0)

    shots = 1000
    md = qs.m([0], shots=shots)
    p0 = md.frq[0] / shots
    p1 = md.frq[1] / shots
    exp_pred = p1 - p0
    print("expectation value (predict) = {0:.3f}".format(exp_pred))

    # theoretical expactation value

    qs_op = qs_psi.clone()
    qs_op.h(0).rx(1, phase=0.25)
    exp_theo = qs_psi.inpro(qs_op).imag
    print("expectation value (theoretical) = {0:.3f}".format(exp_theo))
コード例 #2
0
ファイル: test_QState.py プロジェクト: samn33/qlazy
 def test_clone(self):
     """test 'clone'
     """
     qs_src = QState(qubit_num=3).h(0).h(1).h(2)
     qs_dst = qs_src.clone()
     actual_src = qs_src.amp
     actual_dst = qs_dst.amp
     ans = equal_vectors(actual_src, actual_dst)
     self.assertEqual(ans, True)