Fermionic Synthesis
This module provides the synthesis methods with which an Evolution gate is broken down into a FermionicCircuit of smaller fermionic gates. Pass one to the gate’s synthesis argument to choose how its time evolution gets decomposed:
Evolution(num_modes, operator, time=1.0, synthesis=FermionicLieTrotter())Both sides of this rewrite live in fermionic space, so these methods can exploit the groups of the evolved operator (see Group operator terms: use the operator structure) – unlike the fermion-to-qubit synthesis that follows, which only sees the mapped operator, where the grouping is no longer available.
This fermion-to-fermion step is optional. An Evolution gate can be handed straight to the fermion-to-qubit stage regardless of how many terms its operator holds; decomposing it in fermionic space first is a choice, taken to obtain cheaper factors or to expose structure that the later stage can exploit.
Column 1 | Column 2 |
|---|---|
FermionicEvolutionSynthesis() | The interface for fermion-to-fermion synthesis of an Evolution gate. |
FermionicLieTrotter([reps]) | The first-order Lie-Trotter product formula, applied in fermionic space. |
FermionicSuzukiTrotter([order, reps]) | The higher-order Suzuki-Trotter product formula, applied in fermionic space. |