FermionicGivensDecomposition

class FermionicGivensDecomposition(*, atol=1e-12)

Bases: object

The decomposition of an orbital rotation into Givens rotations and phases.

The unitary \(U\) of the OrbitalRotation is factorized with givens_decomposition() into at most \(n(n-1)/2\) rotations between adjacent modes plus \(n\) single-mode phases, the rectangular mesh of Clements et al. [1]. Every factor \(F\) is itself an orbital rotation, whose many-body unitary is \(e^{-i H_F}\) for the Hermitian generator \(H_F = \sum_{ij} i \log(F)_{ij} \, a^\dagger_i a_j\). It is therefore emitted as an Evolution gate at unit time on the one or two modes it acts on.

The emitted gates are atomic, and the operator of each holds a single group. The terms of a two-mode generator, \(a^\dagger_0 a_1\) and \(a^\dagger_1 a_0\), do not commute with each other, so splitting it up any further would only approximate the factor: the fermion-to-qubit stage maps and synthesizes it whole. Under Jordan-Wigner, the generator of a rotation between adjacent modes is a hop between adjacent qubits, which the qubit stage can recognize (see HopEvolutionSynthesis).

Because \(U \mapsto \exp(\sum_{ij} \log(U)_{ij} a^\dagger_i a_j)\) is a group homomorphism, the product of the factors equals the full rotation exactly. The decomposition itself therefore adds no error: only the synthesis of the individual factors can.

Initializing an instance of this synthesis method can be done with the arguments below.

Parameters:

atol (float) – the absolute tolerance below which factors and entries are dropped. This is applied to the entries of the generator of a factor and to the angle of a single-mode phase.

Attributes

atol

The magnitude below which entries of a generator and angles of a phase are dropped.

Methods

synthesize(gate)

Synthesizes the gate into the mesh of atomic Evolution gates.

See the class documentation for the decomposition this implements.

Parameters:

gate (OrbitalRotation) – the gate to synthesize.

Returns:

A FermionicCircuit holding one Evolution gate per two-mode rotation and per non-trivial phase, in the order in which they are applied. The rotations come first, then the phases.

Return type:

FermionicCircuit