Module: openfermion.circuits.gates

Gates useful for simulating fermions.

Modules

common_gates module: Gates that are commonly used for quantum simulation of fermions.

fermionic_simulation module

four_qubit_gates module: Gates that target four qubits.

three_qubit_gates module: Common gates that target three qubits.

Classes

class CubicFermionicSimulationGate: w0|110⟩⟨101| + w1|110⟩⟨011| + w2|101⟩⟨011| + h.c. interaction.

class DoubleExcitationGate: Evolve under -|0011⟩⟨1100| + h.c. for some time.

class FSwapPowGate: The FSWAP gate, possibly raised to a power.

class InteractionOperatorFermionicGate: The Jordan-Wigner transform of exp(iH) for a fermionic Hamiltonian H, where H is an interaction operator.

class ParityPreservingFermionicGate: The Jordan-Wigner transform of exp(iH) for a fermionic Hamiltonian H.

class QuadraticFermionicSimulationGate: (w0 |10⟩⟨01| + h.c.) + w1 |11⟩⟨11| interaction.

class QuarticFermionicSimulationGate: Rotates Hamming-weight 2 states into their bitwise complements.

Functions

CRxxyy(...): Controlled version of openfermion.Rxxyy

CRyxxy(...): Controlled version of openfermion.Ryxxy

DoubleExcitation(...): Evolve under -|0011⟩⟨1100| + h.c. for some time.

FSWAP(...): The FSWAP gate, possibly raised to a power.

Rxxyy(...): Returns a gate with the matrix exp(-i rads (X⊗X + Y⊗Y) / 2).

Ryxxy(...): Returns a gate with the matrix exp(-i rads (Y⊗X - X⊗Y) / 2).

Rzz(...): Returns a gate with the matrix exp(-i Z⊗Z rads).

fermionic_simulation_gates_from_interaction_operator(...): Given H=I[n]HI, returns gates \(\left\{G_I\right\} = \left\{e^{i H_I\right\}\).

rot11(...): Phases the |11> state of two qubits by e^{i rads}.

rot111(...): Phases the |111> state of three qubits by e^{i rads}.

state_swap_eigen_component(...): The +/- eigen-component of the operation that swaps states x and y.

sum_of_interaction_operator_gate_generators(...): The interaction operator that is the sum of the generators of the specified fermionic simulation gates.