예제 #1
0
def test_double_cnot_bit_flip(simulator, p):

    qubit = 1
    U = gates.X(0) + gates.X(2) + gates.CX(0, 1) + gates.CX(2, 1)
    H = paulis.Qm(qubit)
    O = ExpectationValue(U=U, H=H)
    NM = BitFlip(p, 2)

    E = simulate(O, backend=simulator, samples=1, noise=NM)
예제 #2
0
def test_double_cnot_bit_flip(simulator, p):
    qubit = 1
    U = gates.X(0) + gates.X(2) + gates.CX(0, 1) + gates.CX(2, 1)
    H = paulis.Qm(qubit)
    O = ExpectationValue(U=U, H=H)
    NM = BitFlip(p, 2)

    E = simulate(O, backend=simulator, samples=1000, noise=NM)
    assert (numpy.isclose(E, 2 * (p - p * p), atol=1.e-1))
예제 #3
0
def test_bit_flip(simulator, p, controlled):

    qubit = 0

    if controlled:
        U = gates.X(target=1) + gates.CX(1, 0)
        H = paulis.Qm(0)
        NM = BitFlip(p, 2)
    else:
        U = gates.X(target=0)
        NM = BitFlip(p, 1)
        H = paulis.Qm(qubit)
    O = ExpectationValue(U=U, H=H)

    E = simulate(O, backend=simulator, samples=1, noise=NM)
예제 #4
0
def test_bit_flip(simulator, p, controlled):
    qubit = 0

    if controlled:
        U = gates.X(target=1) + gates.CX(1, 0)
        H = paulis.Qm(0)
        NM = BitFlip(p, 2)
    else:
        U = gates.X(target=0)
        NM = BitFlip(p, 1)
        H = paulis.Qm(qubit)
    O = ExpectationValue(U=U, H=H)

    E = simulate(O, backend=simulator, samples=1000, noise=NM)
    assert (numpy.isclose(E, 1.0 - p, atol=1.e-1))