|
26 | 26 | Aer,
|
27 | 27 | IBMQ,
|
28 | 28 | )
|
29 |
| -from qiskit.opflow import PauliTrotterEvolution # type: ignore |
| 29 | +from qiskit.opflow import PauliOp, PauliSumOp, PauliTrotterEvolution, Suzuki # type: ignore |
30 | 30 | from qiskit.opflow.primitive_ops import PauliSumOp # type: ignore
|
| 31 | +from qiskit.quantum_info import Pauli # type: ignore |
31 | 32 | from qiskit.transpiler import PassManager # type: ignore
|
32 | 33 | from qiskit.circuit.library import RYGate, MCMT # type: ignore
|
33 | 34 | from qiskit.circuit import Parameter # type: ignore
|
@@ -716,3 +717,15 @@ def test_rebased_conversion() -> None:
|
716 | 717 | u1 = tket_circzz.get_unitary()
|
717 | 718 | u2 = tket_circzz2.get_unitary()
|
718 | 719 | assert compare_unitaries(u1, u2)
|
| 720 | + |
| 721 | + |
| 722 | +# https://github.com/CQCL/pytket-qiskit/issues/24 |
| 723 | +def test_parametrized_evolution() -> None: |
| 724 | + pauli_blocks = [PauliOp(Pauli("XXZ"), coeff=1.0), PauliOp(Pauli("YXY"), coeff=0.5)] |
| 725 | + operator: PauliSumOp = sum(pauli_blocks) * Parameter("x") |
| 726 | + evolved_circ_op = PauliTrotterEvolution( |
| 727 | + trotter_mode=Suzuki(reps=2, order=4) |
| 728 | + ).convert(operator.exp_i()) |
| 729 | + qc: QuantumCircuit = evolved_circ_op.primitive |
| 730 | + tk_qc: Circuit = qiskit_to_tk(qc) |
| 731 | + assert len(tk_qc.free_symbols()) == 1 |
0 commit comments