Learn more about our quantum error correction milestone

Module: openfermion.transforms.opconversions

Modules

binary_codes module: Pre-existing codes for Fermion-qubit mappings

bksf module: bravyi_kitaev_fast transform on fermionic operators.

commutator_diagonal_coulomb_operator module: Faster commutators for two-body operators with diagonal Coulomb terms.

conversions module

fenwick_tree module: Class to represent a Fenwick tree.

qubitoperator_to_paulisum module

remove_symmetry_qubits module: Module to remove two qubits from the problem space using conservation

term_reordering module: Functions to reorder terms within SymbolicOperators

verstraete_cirac module: Verstraete-Cirac transform on fermionic operators.

Classes

class FenwickNode: Fenwick Tree node.

class FenwickTree: Recursive implementation of the Fenwick tree.

Functions

binary_code_transform(...): Transforms a Hamiltonian written in fermionic basis into a Hamiltonian

bravyi_kitaev(...): Apply the Bravyi-Kitaev transform.

bravyi_kitaev_code(...): The Bravyi-Kitaev transform as binary code. The implementation

bravyi_kitaev_fast(...): Find the Pauli-representation of InteractionOperator for Bravyi-Kitaev

bravyi_kitaev_fast_edge_matrix(...): Use InteractionOperator to construct edge matrix required for the algorithm

bravyi_kitaev_fast_interaction_op(...): Transform from InteractionOperator to QubitOperator for Bravyi-Kitaev fast

bravyi_kitaev_tree(...): Apply the "tree" Bravyi-Kitaev transform.

check_no_sympy(...): Checks whether a SymbolicOperator contains any

checksum_code(...): Checksum code for either even or odd Hamming weight. The Hamming weight

chemist_ordered(...): Puts a two-body fermion operator in chemist ordering.

commutator_ordered_diagonal_coulomb_with_two_body_operator(...): Compute the commutator of two-body operators provided that both are

dissolve(...): Decomposition helper. Takes a product of binary variables

edge_operator_aij(...): Calculate the edge operator A_ij. The definitions used here are

edge_operator_b(...): Calculate the edge operator B_i. The definitions used here are

edit_hamiltonian_for_spin(...): Removes the Z terms acting on the orbital from the Hamiltonian.

extractor(...): Applies the extraction superoperator to a binary expression

generate_fermions(...): The QubitOperator for generating fermions in bravyi_kitaev_fast

get_boson_operator(...): Convert to BosonOperator.

get_fermion_operator(...): Convert to FermionOperator.

get_majorana_operator(...): Convert to MajoranaOperator.

get_quad_operator(...): Convert to QuadOperator.

inline_product(...): Computes a product, using the imul operator.

inline_sum(...): Computes a sum, using the iadd operator.

interleaved_code(...): Linear code that reorders orbitals from even-odd to up-then-down.

jordan_wigner(...): Apply the Jordan-Wigner transform to a FermionOperator,

jordan_wigner_code(...): The Jordan-Wigner transform as binary code.

jordan_wigner_one_body(...): Map the term a^\dagger_p a_q + h.c. to QubitOperator.

jordan_wigner_two_body(...): Map the term a^\dagger_p a^\dagger_q a_r a_s + h.c. to QubitOperator.

linearize_decoder(...): Outputs linear decoding function from input matrix

make_parity_list(...): Create the parity list from the decoder of the input code.

normal_ordered(...): Compute and return the normal ordered form of a FermionOperator,

normal_ordered_ladder_term(...): Return a normal ordered FermionOperator or BosonOperator corresponding

normal_ordered_quad_term(...): Return a normal ordered QuadOperator corresponding to single term.

number_operator(...): Find the qubit operator for the number operator in bravyi_kitaev_fast

parity_code(...): The parity transform (arXiv:1208.5986) as binary code. This code is

qubit_operator_to_pauli_sum(...): Convert QubitOperator to a sum of PauliString.

reorder(...): Changes the ladder operator order of the Hamiltonian based on the

reverse_jordan_wigner(...): Transforms a QubitOperator into a FermionOperator using the

symmetry_conserving_bravyi_kitaev(...): Returns the qubit Hamiltonian for the fermionic Hamiltonian

vacuum_operator(...): Use the stabilizers to find the vacuum state in bravyi_kitaev_fast.

verstraete_cirac_2d_square(...): Apply the Verstraete-Cirac transform on a 2-d square lattice.

vertical_edges_snake(...): Obtain the vertical edges in the 2-d snake ordering.

weight_one_binary_addressing_code(...): Weight-1 binary addressing code (arXiv:1712.07067). This highly

weight_one_segment_code(...): Weight-1 segment code (arXiv:1712.07067). Outputs a 3-mode, 2-qubit

weight_two_segment_code(...): Weight-2 segment code (arXiv:1712.07067). Outputs a 5-mode, 4-qubit