About cookies on this site Our websites require some cookies to function properly (required). In addition, other cookies may be used with your consent to analyze site usage, improve the user experience and for advertising. For more information, please review your options. By visiting our website, you agree to our processing of information as described in IBM’sprivacy statement. To provide a smooth navigation, your cookie preferences will be shared across the IBM web domains listed here.
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
Was this page helpful?
Report a bug or request content on GitHub.