Skip to main contentIBM Quantum Documentation
Important

IBM Quantum Platform is moving and this version will be sunset on July 1. To get started on the new platform, read the migration guide.

PauliEvolutionSynthesisRustiq

class qiskit.transpiler.passes.synthesis.hls_plugins.PauliEvolutionSynthesisRustiq

GitHub

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

  1. 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)

GitHub

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

QuantumCircuit

Was this page helpful?
Report a bug or request content on GitHub.