PauliEvolutionSynthesisRustiq
class qiskit.transpiler.passes.synthesis.hls_plugins.PauliEvolutionSynthesisRustiq
Bases: HighLevelSynthesisPlugin
Synthesize a PauliEvolutionGate
using Rustiq.
This plugin name is :PauliEvolution.rustiq
which can be used as the key on an HLSConfig
object to use this method with HighLevelSynthesis
.
The Rustiq synthesis algorithm is described in [1], and is implemented in Rust-based quantum circuit synthesis library available at https://github.com/smartiel/rustiq-core.
On large circuits the plugin may take a significant runtime.
The plugin supports the following additional options:
-
optimize_count (bool): if True the synthesis algorithm will try to optimize
the 2-qubit gate count; and if False then the 2-qubit depth.
-
preserve_order (bool): whether the order of paulis should be preserved, up to
commutativity.
-
upto_clifford (bool): if True, the final Clifford operator is not synthesized.
-
upto_phase (bool): if True, the global phase of the returned circuit may
differ from the global phase of the given pauli network.
-
resynth_clifford_method (int): describes the strategy to synthesize the final
Clifford operator. Allowed values are 0 (naive approach), 1 (qiskit greedy synthesis), 2 (rustiq isometry synthesis).
References
- Timothée Goubault de Brugière and Simon Martiel, Faster and shorter synthesis of Hamiltonian simulation circuits, arXiv:2404.03280 [quant-ph]
Methods
run
run(high_level_object, coupling_map=None, target=None, qubits=None, **options)
Run synthesis for the given Operation.
Parameters
- high_level_object (Operation) – The Operation to synthesize to a
DAGCircuit
object. - coupling_map (CouplingMap) – The coupling map of the backend in case synthesis is done on a physical circuit.
- target (Target) – A target representing the target backend.
- qubits (list) – List of qubits over which the operation is defined in case synthesis is done on a physical circuit.
- options – Additional method-specific optional kwargs.
Returns
The quantum circuit representation of the Operation
when successful, and None
otherwise.
Return type