Skip to content

Commit 2463cda

Browse files
Transpiler pass that converts a generic circuit to PBC (#15502)
* add a function to replace gates by Pauli rotations * add pbc_transformation pass in rust (initial version) * minor fix, formatting * add python pbc transpiler pass * add initial test * minor fix * formatting * handle non param gates * add test for non-param gates * add UGate, handle several parameters * minor update following PR 15434 * fix comment * complete handling all 1-qubit gates * add CUGate, CU3Gate * fix test * complete handling all 2-qubit gates * reduce code duplication. add generate_pauli_evolution_gate function * handle barrier and measure * handle parameters, not only floats * remove un-needed if-else * enhance test * add a test for parametrized gates * do not panic. raise TranspilerError instead * fix error * improved synthesis for H, CH, ECR * update docs * add release notes * fix reno * unify U and U3 * remove with_capacity * add PPM instead of measure, delay and reset * remove PyGate, following PR 15277 * handle unreachable * unify the cases of 0 and 1 parametrs. reduce code duplication * raise error for GlobalPhaseGate * simplify tests using get_standard_gate_name_mapping * update tests following review * update release notes following review * fix comments * fix header * fix header * fix header * replace function by a table * add check that a gate is not an instruction * replace unreachble by panic * handle GlobalPhaseGate * update tests * update docstring * enhance and fix docs following review * update types * nicer handle of barrier/reset/delay * move original_qubits outside the loop * fix typos * add PBC transform for the 3-qubit gates * update comment * update tests * simplify RCCX * rename pass to ConvertToPauliRotations * remove pbc_transformation files * formatting * fix misprint * replace PauliEvolutioGate by PauliProductRotationGate * update tests to check PPR gate * update docs to use PPR * update release notes to use PPR * Update crates/transpiler/src/passes/convert_to_pauli_rotations.rs Co-authored-by: Alexander Ivrii <alexi@il.ibm.com> * Update crates/transpiler/src/passes/convert_to_pauli_rotations.rs Co-authored-by: Alexander Ivrii <alexi@il.ibm.com> * Update crates/transpiler/src/passes/convert_to_pauli_rotations.rs Co-authored-by: Alexander Ivrii <alexi@il.ibm.com> * Update crates/transpiler/src/passes/convert_to_pauli_rotations.rs Co-authored-by: Alexander Ivrii <alexi@il.ibm.com> * Update crates/transpiler/src/passes/convert_to_pauli_rotations.rs Co-authored-by: Alexander Ivrii <alexi@il.ibm.com> * Update crates/transpiler/src/passes/convert_to_pauli_rotations.rs Co-authored-by: Alexander Ivrii <alexi@il.ibm.com> * Update qiskit/transpiler/passes/optimization/convert_to_pauli_rotations.py Co-authored-by: Alexander Ivrii <alexi@il.ibm.com> * update docs and reno following review --------- Co-authored-by: Alexander Ivrii <alexi@il.ibm.com>
1 parent ea19cb8 commit 2463cda

9 files changed

Lines changed: 828 additions & 0 deletions

File tree

crates/pyext/src/lib.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,5 +91,6 @@ fn _accelerate(m: &Bound<PyModule>) -> PyResult<()> {
9191
add_submodule(m, ::qiskit_transpiler::passes::wrap_angles_mod, "wrap_angles")?;
9292
add_submodule(m, ::qiskit_transpiler::passes::optimize_clifford_t_mod, "optimize_clifford_t")?;
9393
add_submodule(m, ::qiskit_transpiler::passes::substitute_pi4_rotations_mod, "substitute_pi4_rotations")?;
94+
add_submodule(m, ::qiskit_transpiler::passes::convert_to_pauli_rotations_mod, "convert_to_pauli_rotations")?;
9495
Ok(())
9596
}

0 commit comments

Comments
 (0)