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.

Important

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.

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.