HopEvolutionSynthesis¶
- class HopEvolutionSynthesis(*, atol=1e-12)¶
Bases:
HighLevelSynthesisPluginA high-level synthesis plugin for the evolution under a hop between two qubits.
A
PauliEvolutionGatewhose operator is a hop (seematch_hop()), such as the image of a fermionic hop between adjacent modes under Jordan-Wigner, is synthesized as a singleXXPlusYYGate. That is the exact evolution. The generic synthesis of the same operator costs several times as many two-qubit gates, and a target whose only two-qubit gate is theXXPlusYYGatecannot be reached by it at all.Any other gate is declined (the plugin returns
None), so that the next method of theHLSConfigis tried.Note
The
synthesisof a matched gate does not apply: the result is exact, whereas a product formula approximates the evolution of a hop with a complex amplitude (its \(XX + YY\) and \(XY - YX\) parts do not commute). A matched gate therefore differs from the generic synthesis by that Trotter error, and is the more accurate of the two.Register it ahead of the default method:
HLSConfig(PauliEvolution=[HopEvolutionSynthesis(), "default"])
The
generate_preset_jw_pass_manager()does so unconditionally, and merges the entry into anyhls_configpassed to it. That mirrors how the preset has always lowered an orbital rotation: it emits anXXPlusYYGatefor each Givens factor, and the configuration cannot turn that off.Initializing this plugin can be done with the arguments listed below.
- Parameters:
atol (float) – the absolute tolerance on the coefficients of the operator, within which it is still considered a hop.
Attributes
- atol¶
The absolute coefficient tolerance with which an operator is recognized as a hop.
Methods
- run(high_level_object, coupling_map=None, target=None, qubits=None, **options)¶
Runs this plugin.
- Parameters:
high_level_object – the operation to synthesize.
coupling_map – unused.
target – unused.
qubits – unused.
options – unused.
- Returns:
A circuit with a single
XXPlusYYGateifhigh_level_objectis aPauliEvolutionGateof a hop with a fixed evolution time, andNoneotherwise.