diff --git a/src/qiskit_quimb/gate.py b/src/qiskit_quimb/gate.py index 49bc051..6af3e52 100644 --- a/src/qiskit_quimb/gate.py +++ b/src/qiskit_quimb/gate.py @@ -181,6 +181,12 @@ def _(op: Instruction, qubits: Sequence[int], kwargs: dict[str, Any]): return quimb.tensor.Gate("X", params=[], qubits=qubits, **kwargs) +@_register_gate_func("xx_minus_yy") +def _(op: Instruction, qubits: Sequence[int], kwargs: dict[str, Any]): + theta, beta = op.params + return quimb.tensor.Gate("XXMINUSYY", params=[theta, beta], qubits=qubits, **kwargs) + + @_register_gate_func("xx_plus_yy") def _(op: Instruction, qubits: Sequence[int], kwargs: dict[str, Any]): theta, beta = op.params diff --git a/tests/circuit_test.py b/tests/circuit_test.py index d9c1cb2..0d3e9ef 100644 --- a/tests/circuit_test.py +++ b/tests/circuit_test.py @@ -38,6 +38,7 @@ U2Gate, U3Gate, XGate, + XXMinusYYGate, XXPlusYYGate, YGate, ZGate, @@ -60,6 +61,9 @@ def test_quimb_circuit(): circuit.append(XXPlusYYGate(rng.uniform(-10, 10), rng.uniform(-10, 10)), [b, c]) circuit.append(XXPlusYYGate(rng.uniform(-10, 10), rng.uniform(-10, 10)), [a, b]) circuit.append(XXPlusYYGate(rng.uniform(-10, 10), rng.uniform(-10, 10)), [c, d]) + circuit.append(XXMinusYYGate(rng.uniform(-10, 10), rng.uniform(-10, 10)), [b, c]) + circuit.append(XXMinusYYGate(rng.uniform(-10, 10), rng.uniform(-10, 10)), [a, b]) + circuit.append(XXMinusYYGate(rng.uniform(-10, 10), rng.uniform(-10, 10)), [c, d]) circuit.append(CPhaseGate(rng.uniform(-10, 10)), [b, c]) circuit.append(CPhaseGate(rng.uniform(-10, 10)), [a, b]) circuit.append(CPhaseGate(rng.uniform(-10, 10)), [c, d])