示例#1
0
def test_from_braket_non_parameterized_two_qubit_gates():
    braket_circuit = BKCircuit()
    instructions = [
        Instruction(braket_gates.CNot(), target=[2, 3]),
        Instruction(braket_gates.Swap(), target=[3, 4]),
        Instruction(braket_gates.ISwap(), target=[2, 3]),
        Instruction(braket_gates.CZ(), target=(3, 4)),
        Instruction(braket_gates.CY(), target=(2, 3)),
    ]
    for instr in instructions:
        braket_circuit.add_instruction(instr)
    cirq_circuit = from_braket(braket_circuit)

    qreg = LineQubit.range(2, 5)
    expected_cirq_circuit = Circuit(
        ops.CNOT(*qreg[:2]),
        ops.SWAP(*qreg[1:]),
        ops.ISWAP(*qreg[:2]),
        ops.CZ(*qreg[1:]),
        ops.ControlledGate(ops.Y).on(*qreg[:2]),
    )
    assert np.allclose(
        protocols.unitary(cirq_circuit),
        protocols.unitary(expected_cirq_circuit),
    )
示例#2
0
def _(cy: qml.CY, _parameters):
    return gates.CY()
示例#3
0
 (Circuit().swap(0, 1), gates.Swap().to_matrix()),
 (Circuit().iswap(1, 0), gates.ISwap().to_matrix()),
 (Circuit().iswap(0, 1), gates.ISwap().to_matrix()),
 (Circuit().pswap(1, 0, 0.15), gates.PSwap(0.15).to_matrix()),
 (Circuit().pswap(0, 1, 0.15), gates.PSwap(0.15).to_matrix()),
 (Circuit().xy(1, 0, 0.15), gates.XY(0.15).to_matrix()),
 (Circuit().xy(0, 1, 0.15), gates.XY(0.15).to_matrix()),
 (Circuit().cphaseshift(1, 0,
                        0.15), gates.CPhaseShift(0.15).to_matrix()),
 (Circuit().cphaseshift00(1, 0,
                          0.15), gates.CPhaseShift00(0.15).to_matrix()),
 (Circuit().cphaseshift01(1, 0,
                          0.15), gates.CPhaseShift01(0.15).to_matrix()),
 (Circuit().cphaseshift10(1, 0,
                          0.15), gates.CPhaseShift10(0.15).to_matrix()),
 (Circuit().cy(1, 0), gates.CY().to_matrix()),
 (Circuit().cz(1, 0), gates.CZ().to_matrix()),
 (Circuit().xx(1, 0, 0.15), gates.XX(0.15).to_matrix()),
 (Circuit().yy(1, 0, 0.15), gates.YY(0.15).to_matrix()),
 (Circuit().zz(1, 0, 0.15), gates.ZZ(0.15).to_matrix()),
 (Circuit().ccnot(2, 1, 0), gates.CCNot().to_matrix()),
 (
     Circuit().ccnot(2, 1, 0).add_result_type(
         ResultType.Expectation(observable=Observable.Y(), target=[1])),
     gates.CCNot().to_matrix(),
 ),
 (Circuit().ccnot(1, 2, 0), gates.CCNot().to_matrix()),
 (Circuit().cswap(2, 1, 0), gates.CSwap().to_matrix()),
 (Circuit().cswap(2, 0, 1), gates.CSwap().to_matrix()),
 (Circuit().h(1), np.kron(gates.H().to_matrix(), np.eye(2))),
 (Circuit().x(1).i(2),