Skip to main content
Google Quantum AI
Software
  • Tools for quantum computing research and development
  • Learn about our software stack and available resources to help you with your work
  • See all tools
  • Programming framework
  • Cirq
    An open source Python framework and simulators for writing, optimizing, and running quantum programs
  • Computing service
  • Quantum Virtual Machine
    Run your quantum program on a virtual grid on our quantum hardware
  • Libraries and extensions
  • OpenFermion
    The electronic structure package for quantum computers
  • qsim
    Schrödinger and Schrödinger-Feynman simulators for quantum circuits
  • TensorFlow Quantum
    A library for hybrid quantum-classical machine learning
Hardware
  • Overview
  • Our lab
Research
  • Overview
  • Publications
  • Conferences
  • Outreach
  • Diversity
Education Team
  • Overview
  • Careers
/
Sign in
  • OpenFermion
Overview Guide & Tutorials Reference
Google Quantum AI
  • Software
    • More
    • Overview
    • Guide & Tutorials
    • Reference
  • Hardware
    • More
  • Research
    • More
  • Education
  • Team
    • More
  • OpenFermion
  • All Symbols
  • openfermion
    • Overview
    • fixed_trace_positive_projection
    • heaviside
    • higham_polynomial
    • higham_root
    • map_to_matrix
    • map_to_tensor
  • openfermion.chem
    • Overview
    • MolecularData
    • angstroms_to_bohr
    • antisymtei
    • bohr_to_angstroms
    • geometry_from_file
    • geometry_from_pubchem
    • j_mat
    • k_mat
    • load_molecular_hamiltonian
    • make_atom
    • make_atomic_lattice
    • make_atomic_ring
    • make_reduced_hamiltonian
    • name_molecule
    • chemical_series
      • Overview
      • MolecularLatticeError
    • molecular_data
      • Overview
      • MissingCalculationError
      • MoleculeNameError
      • spinorb_from_spatial
    • pubchem
      • Overview
    • reduced_hamiltonian
      • Overview
  • openfermion.circuits
    • Overview
    • AsymmetricSplitOperatorTrotterStep
    • CRxxyy
    • CRyxxy
    • ControlledAsymmetricSplitOperatorTrotterStep
    • ControlledSymmetricSplitOperatorTrotterStep
    • CubicFermionicSimulationGate
    • DoubleExcitation
    • DoubleExcitationGate
    • FSWAP
    • FSwapPowGate
    • InteractionOperatorFermionicGate
    • LinearSwapNetworkTrotterAlgorithm
    • LowRankTrotterAlgorithm
    • ParityPreservingFermionicGate
    • QuadraticFermionicSimulationGate
    • QuarticFermionicSimulationGate
    • Rxxyy
    • Ryxxy
    • Rzz
    • SplitOperatorTrotterAlgorithm
    • SplitOperatorTrotterStep
    • SymmetricSplitOperatorTrotterStep
    • TrotterAlgorithm
    • TrotterStep
    • bit_mask_of_modes_acted_on_by_fermionic_terms
    • bogoliubov_transform
    • diagonal_coulomb_potential_and_kinetic_terms_as_arrays
    • error_bound
    • error_operator
    • fermionic_simulation_gates_from_interaction_operator
    • fermionic_swap_trotter_error_operator_diagonal_two_body
    • ffft
    • gaussian_state_preparation_circuit
    • get_chemist_two_body_coefficients
    • jw_get_gaussian_state
    • jw_slater_determinant
    • lambda_norm
    • low_depth_second_order_trotter_error_bound
    • low_depth_second_order_trotter_error_operator
    • low_rank_two_body_decomposition
    • optimal_givens_decomposition
    • pauli_exp_to_qasm
    • prepare_gaussian_state
    • prepare_one_body_squared_evolution
    • prepare_slater_determinant
    • preprocess_lcu_coefficients_for_reversible_sampling
    • rot11
    • rot111
    • simulate_trotter
    • simulation_ordered_grouped_hubbard_terms_with_info
    • simulation_ordered_grouped_low_depth_terms_with_info
    • slater_determinant_preparation_circuit
    • split_operator_trotter_error_operator_diagonal_two_body
    • stagger_with_info
    • state_swap_eigen_component
    • sum_of_interaction_operator_gate_generators
    • swap_network
    • trotter_operator_grouping
    • trotter_steps_required
    • trotterize_exp_qubop_to_qasm
    • uccsd_convert_amplitude_format
    • uccsd_generator
    • uccsd_singlet_generator
    • uccsd_singlet_get_packed_amplitudes
    • uccsd_singlet_paramsize
    • vpe_circuits_single_timestep
    • vpe_single_circuit
    • gates
      • Overview
      • common_gates
        • Overview
      • fermionic_simulation
        • Overview
      • four_qubit_gates
        • Overview
      • three_qubit_gates
        • Overview
    • lcu_util
      • Overview
    • low_rank
      • Overview
    • primitives
      • Overview
      • state_preparation
        • Overview
    • slater_determinants
      • Overview
    • trotter
      • Overview
      • algorithms
        • Overview
        • linear_swap_network
          • Overview
          • AsymmetricLinearSwapNetworkTrotterStep
          • ControlledAsymmetricLinearSwapNetworkTrotterStep
          • ControlledSymmetricLinearSwapNetworkTrotterStep
          • SymmetricLinearSwapNetworkTrotterStep
        • low_rank
          • Overview
          • AsymmetricLowRankTrotterStep
          • ControlledAsymmetricLowRankTrotterStep
          • LowRankTrotterStep
        • split_operator
          • Overview
      • diagonal_coulomb_trotter_error
        • Overview
      • hubbard_trotter_error
        • Overview
      • low_depth_trotter_error
        • Overview
        • ordered_low_depth_terms_no_info
      • trotter_algorithm
        • Overview
        • Hamiltonian
      • trotter_error
        • Overview
        • ceil
        • commutator
        • sqrt
        • trivially_commutes
        • trivially_double_commutes
    • trotter_exp_to_qgates
      • Overview
    • unitary_cc
      • Overview
    • vpe_circuits
      • Overview
  • openfermion.config
    • Overview
  • openfermion.contextuality
    • Overview
    • is_contextual
  • openfermion.contrib
    • Overview
    • representability
      • Overview
  • openfermion.functionals
    • Overview
    • get_one_norm_int
    • get_one_norm_int_woconst
    • get_one_norm_mol
    • get_one_norm_mol_woconst
    • get_one_norm
      • Overview
  • openfermion.hamiltonians
    • Overview
    • FermiHubbardModel
    • HartreeFockFunctional
    • RichardsonGaudin
    • bose_hubbard
    • dual_basis_external_potential
    • dual_basis_jellium_model
    • dual_basis_kinetic
    • dual_basis_potential
    • fermi_hubbard
    • generate_hamiltonian
    • get_matrix_of_eigs
    • hartree_fock_state_jellium
    • hypercube_grid_with_given_wigner_seitz_radius_and_filling
    • interaction_operator
    • jellium_model
    • jordan_wigner_dual_basis_hamiltonian
    • jordan_wigner_dual_basis_jellium
    • lowest_single_particle_energy_states
    • majorana_operator
    • mean_field_dwave
    • number_difference_operator
    • number_operator
    • plane_wave_external_potential
    • plane_wave_hamiltonian
    • plane_wave_kinetic
    • plane_wave_potential
    • rhf_func_generator
    • rhf_minimization
    • rhf_params_to_matrix
    • s_plus_operator
    • s_squared_operator
    • sx_operator
    • sy_operator
    • sz_operator
    • tunneling_operator
    • wigner_seitz_length_scale
    • general_hubbard
      • Overview
      • InteractionParameter
      • PotentialParameter
      • TunnelingParameter
      • number_operator
    • hartree_fock
      • Overview
      • InputError
    • hubbard
      • Overview
    • jellium
      • Overview
    • jellium_hf_state
      • Overview
    • richardson_gaudin
      • Overview
    • special_operators
      • Overview
      • s_minus_operator
  • openfermion.linalg
    • Overview
    • Davidson
    • DavidsonError
    • DavidsonOptions
    • LinearQubitOperator
    • LinearQubitOperatorOptions
    • ParallelLinearQubitOperator
    • QubitDavidson
    • SparseDavidson
    • append_random_vectors
    • boson_ladder_sparse
    • boson_operator_sparse
    • double_givens_rotate
    • eigenspectrum
    • erpa_eom_hamiltonian
    • expectation
    • expectation_computational_basis_state
    • expectation_db_operator_with_pw_basis_state
    • expectation_one_body_db_operator_computational_basis_state
    • expectation_three_body_db_operator_computational_basis_state
    • expectation_two_body_db_operator_computational_basis_state
    • fermionic_gaussian_decomposition
    • fit_known_frequencies
    • generate_linear_qubit_operator
    • generate_parity_permutations
    • generate_random_vectors
    • get_density_matrix
    • get_gap
    • get_ground_state
    • get_linear_qubit_operator_diagonal
    • get_number_preserving_sparse_operator
    • get_sparse_operator
    • givens_decomposition
    • givens_decomposition_square
    • givens_matrix_elements
    • givens_rotate
    • inner_product
    • jordan_wigner_ladder_sparse
    • jordan_wigner_sparse
    • jw_configuration_state
    • jw_get_ground_state_at_particle_number
    • jw_hartree_fock_state
    • jw_number_indices
    • jw_number_restrict_operator
    • jw_number_restrict_state
    • jw_sparse_givens_rotation
    • jw_sparse_particle_hole_transformation_last_mode
    • jw_sz_indices
    • jw_sz_restrict_operator
    • jw_sz_restrict_state
    • kronecker_operators
    • orthonormalize
    • prony
    • qubit_operator_sparse
    • single_quad_op_sparse
    • singlet_erpa
    • sparse_eigenspectrum
    • swap_columns
    • swap_rows
    • valdemoro_reconstruction
    • variance
    • wedge
    • wrapped_kronecker
    • davidson
      • Overview
    • erpa
      • Overview
      • einsum
    • givens_rotations
      • Overview
    • linear_qubit_operator
      • Overview
      • apply_operator
    • rdm_reconstruction
      • Overview
    • sparse_tools
      • Overview
      • reduce
    • wave_fitting
      • Overview
    • wedge_product
      • Overview
      • factorial
  • openfermion.measurements
    • Overview
    • PhaseFitEstimator
    • apply_constraints
    • binary_partition_iterator
    • constraint_matrix
    • get_interaction_rdm
    • get_phase_function
    • group_into_tensor_product_basis_sets
    • linearize_term
    • one_body_fermion_constraints
    • operator_to_vector
    • pair_between
    • pair_within
    • pair_within_simultaneously
    • pair_within_simultaneously_binned
    • pair_within_simultaneously_symmetric
    • partition_iterator
    • pauli_string_iterator
    • two_body_fermion_constraints
    • unlinearize_term
    • vector_to_operator
    • equality_constraint_projection
      • Overview
    • fermion_partitioning
      • Overview
    • qubit_partitioning
      • Overview
    • rdm_equality_constraints
      • Overview
    • vpe_estimators
      • Overview
  • openfermion.ops
    • Overview
    • BinaryCode
    • BinaryCodeError
    • BinaryPolynomial
    • BinaryPolynomialError
    • BosonOperator
    • DOCIHamiltonian
    • DiagonalCoulombHamiltonian
    • FermionOperator
    • InteractionOperator
    • InteractionOperatorError
    • InteractionRDM
    • InteractionRDMError
    • IsingOperator
    • MajoranaOperator
    • PolynomialTensor
    • PolynomialTensorError
    • QuadOperator
    • QuadraticHamiltonian
    • QuadraticHamiltonianError
    • QubitOperator
    • SymbolicOperator
    • antisymmetric_canonical_form
    • double_decoding
    • general_basis_change
    • shift_decoder
    • operators
      • Overview
      • binary_sum_rule
      • binary_code
        • Overview
      • binary_polynomial
        • Overview
      • boson_operator
        • Overview
      • fermion_operator
        • Overview
      • ising_operator
        • Overview
      • majorana_operator
        • Overview
      • quad_operator
        • Overview
      • qubit_operator
        • Overview
      • symbolic_operator
        • Overview
    • representations
      • Overview
      • get_active_space_integrals
      • get_tensors_from_integrals
      • diagonal_coulomb_hamiltonian
        • Overview
      • doci_hamiltonian
        • Overview
        • get_doci_from_integrals
        • get_projected_integrals_from_doci
        • get_tensors_from_doci
      • interaction_operator
        • Overview
      • interaction_rdm
        • Overview
      • polynomial_tensor
        • Overview
      • quadratic_hamiltonian
        • Overview
  • openfermion.testing
    • Overview
    • EqualsTester
    • assert_equivalent_repr
    • assert_implements_consistent_protocols
    • haar_random_vector
    • module_importable
    • random_antisymmetric_matrix
    • random_diagonal_coulomb_hamiltonian
    • random_hermitian_matrix
    • random_interaction_operator
    • random_interaction_operator_term
    • random_quadratic_hamiltonian
    • random_qubit_operator
    • random_unitary_matrix
    • validate_trotterized_evolution
    • circuit_validation
      • Overview
    • random
      • Overview
    • testing_utils
      • Overview
    • wrapped
      • Overview
  • openfermion.transforms
    • Overview
    • FenwickNode
    • FenwickTree
    • StabilizerError
    • binary_code_transform
    • bravyi_kitaev
    • bravyi_kitaev_code
    • bravyi_kitaev_fast
    • bravyi_kitaev_fast_edge_matrix
    • bravyi_kitaev_fast_interaction_op
    • bravyi_kitaev_tree
    • check_commuting_stabilizers
    • check_no_sympy
    • check_stabilizer_linearity
    • checksum_code
    • chemist_ordered
    • commutator_ordered_diagonal_coulomb_with_two_body_operator
    • fix_single_term
    • fourier_transform
    • freeze_orbitals
    • get_boson_operator
    • get_diagonal_coulomb_hamiltonian
    • get_fermion_operator
    • get_interaction_operator
    • get_majorana_operator
    • get_molecular_data
    • get_quad_operator
    • get_quadratic_hamiltonian
    • interleaved_code
    • inverse_fourier_transform
    • jordan_wigner
    • jordan_wigner_code
    • jordan_wigner_one_body
    • jordan_wigner_two_body
    • linearize_decoder
    • mccoy
    • normal_ordered
    • normal_ordered_ladder_term
    • normal_ordered_quad_term
    • parity_code
    • project_onto_sector
    • projection_error
    • prune_unused_indices
    • qubit_operator_to_pauli_sum
    • reduce_number_of_terms
    • reorder
    • reverse_jordan_wigner
    • rotate_qubit_by_pauli
    • symmetric_ordering
    • symmetry_conserving_bravyi_kitaev
    • taper_off_qubits
    • verstraete_cirac_2d_square
    • vertical_edges_snake
    • weight_one_binary_addressing_code
    • weight_one_segment_code
    • weight_two_segment_code
    • weyl_polynomial_quantization
    • opconversions
      • Overview
      • dissolve
      • edge_operator_aij
      • edge_operator_b
      • edit_hamiltonian_for_spin
      • extractor
      • generate_fermions
      • inline_product
      • inline_sum
      • make_parity_list
      • number_operator
      • vacuum_operator
      • binary_codes
        • Overview
      • bksf
        • Overview
      • commutator_diagonal_coulomb_operator
        • Overview
      • conversions
        • Overview
      • fenwick_tree
        • Overview
      • qubitoperator_to_paulisum
        • Overview
      • remove_symmetry_qubits
        • Overview
        • remove_indices
      • term_reordering
        • Overview
      • verstraete_cirac
        • Overview
        • auxiliary_graph_2d_square
        • coordinates_to_snake_index
        • expand_aux_index
        • expand_sys_index
        • lexicographic_index_to_snake_index
        • row_indices_snake
        • snake_index_to_coordinates
        • stabilizer
        • stabilizer_local_2d_square
    • repconversions
      • Overview
      • conversions
        • Overview
      • fourier_transforms
        • Overview
      • operator_tapering
        • Overview
      • qubit_operator_transforms
        • Overview
      • qubit_tapering_from_stabilizer
        • Overview
      • weyl_ordering
        • Overview
        • binom
  • openfermion.utils
    • Overview
    • Grid
    • HubbardLattice
    • HubbardSquareLattice
    • OperatorSpecificationError
    • OperatorUtilsError
    • Spin
    • SpinPairs
    • amplitude_damping_channel
    • anticommutator
    • bch_expand
    • commutator
    • count_qubits
    • dephasing_channel
    • depolarizing_channel
    • double_commutator
    • down_index
    • get_file_path
    • hermitian_conjugated
    • is_hermitian
    • is_identity
    • kronecker_delta
    • load_operator
    • map_one_hole_dm_to_one_pdm
    • map_one_pdm_to_one_hole_dm
    • map_particle_hole_dm_to_one_pdm
    • map_particle_hole_dm_to_two_pdm
    • map_two_hole_dm_to_one_hole_dm
    • map_two_hole_dm_to_two_pdm
    • map_two_pdm_to_one_pdm
    • map_two_pdm_to_particle_hole_dm
    • map_two_pdm_to_two_hole_dm
    • save_operator
    • trivially_commutes_dual_basis
    • trivially_double_commutes_dual_basis
    • trivially_double_commutes_dual_basis_using_term_info
    • up_index
    • up_then_down
    • bch_expansion
      • Overview
    • channel_state
      • Overview
      • array
      • dot
      • kron
      • log2
      • sqrt
    • commutators
      • Overview
    • grid
      • Overview
      • OrbitalSpecificationError
    • indexing
      • Overview
    • lattice
      • Overview
    • operator_utils
      • Overview
    • rdm_mapping_functions
      • Overview
  • OpenFermion-FQE
  • All Symbols
  • fqe
    • Overview
    • NumberOperator
    • S2Operator
    • SzOperator
    • TimeReversalOp
    • Wavefunction
    • apply
    • apply_generated_unitary
    • dot
    • expectationValue
    • from_cirq
    • get_diagonal_hamiltonian
    • get_diagonalcoulomb_hamiltonian
    • get_general_hamiltonian
    • get_gso_hamiltonian
    • get_hamiltonian_from_openfermion
    • get_number_conserving_wavefunction
    • get_number_operator
    • get_restricted_hamiltonian
    • get_s2_operator
    • get_sparse_hamiltonian
    • get_spin_conserving_wavefunction
    • get_sso_hamiltonian
    • get_sz_operator
    • get_time_reversal_operator
    • get_wavefunction
    • get_wavefunction_multiple
    • time_evolve
    • to_cirq
    • to_cirq_ncr
    • vdot
  • fqe.bitstring
    • Overview
    • check_conserved_bits
    • count_bits
    • count_bits_above
    • count_bits_below
    • count_bits_between
    • gbit_index
    • get_bit
    • integer_index
    • lexicographic_bitstring_generator
    • reverse_integer_index
    • set_bit
    • show_bits
    • unset_bit
  • fqe.cirq_utils
    • Overview
    • X
    • Y
    • Z
    • qubit_op_to_gate
    • qubit_ops_to_circuit
    • qubit_projection
    • qubit_wavefunction_from_vacuum
  • fqe.diagonal_coulomb
    • Overview
    • DiagonalCoulomb
  • fqe.diagonal_hamiltonian
    • Overview
    • Diagonal
  • fqe.fci_graph
    • Overview
    • FciGraph
    • Spinmap
    • binom
  • fqe.fci_graph_set
    • Overview
    • FciGraphSet
  • fqe.fqe_data
    • Overview
    • FqeData
  • fqe.fqe_data_set
    • Overview
    • FqeDataSet
  • fqe.fqe_decorators
    • Overview
    • build_hamiltonian
    • check_diagonal_coulomb
    • fermionops_tomatrix
    • process_rank2_matrix
    • split_openfermion_tensor
    • transform_to_spin_broken
    • wrap_apply
    • wrap_apply_generated_unitary
    • wrap_rdm
    • wrap_time_evolve
  • fqe.fqe_ops
    • Overview
    • fqe_operator
      • Overview
      • FqeOperator
    • fqe_ops
      • Overview
    • fqe_ops_utils
      • Overview
      • switch_broken_symmetry
      • validate_rdm_string
  • fqe.general_hamiltonian
    • Overview
    • General
  • fqe.gso_hamiltonian
    • Overview
    • GSOHamiltonian
  • fqe.hamiltonians
    • Overview
    • hamiltonian
      • Overview
      • Hamiltonian
    • hamiltonian_utils
      • Overview
      • Newop
      • antisymm_four_body
      • antisymm_three_body
      • antisymm_two_body
      • gather_nbody_spin_sectors
      • nbody_matrix
  • fqe.openfermion_utils
    • Overview
    • ascending_index_order
    • bit_to_fermion_creation
    • convert_qubit_wfn_to_fqe_syntax
    • determinant_to_ops
    • fci_fermion_operator_representation
    • fci_qubit_representation
    • fermion_operator_to_bitstring
    • fermion_opstring_to_bitstring
    • fqe_to_fermion_operator
    • integrals_to_fqe_restricted
    • ladder_op
    • largest_operator_index
    • molecular_data_to_restricted_fqe_op
    • mutate_config
    • split_openfermion_tensor
    • update_operator_coeff
  • fqe.restricted_hamiltonian
    • Overview
    • RestrictedHamiltonian
  • fqe.sparse_hamiltonian
    • Overview
    • SparseHamiltonian
  • fqe.sso_hamiltonian
    • Overview
    • SSOHamiltonian
  • fqe.transform
    • Overview
    • cirq_to_fqe_single
    • from_cirq
  • fqe.util
    • Overview
    • alpha_beta_electrons
    • bubblesort
    • configuration_key_intersection
    • configuration_key_union
    • dot
    • init_bitstring_groundstate
    • init_qubit_vacuum
    • invert_bitstring_with_mask
    • ltlt_index_generator
    • map_broken_symmetry
    • paritysort_int
    • paritysort_list
    • qubit_config_sector
    • qubit_particle_number_index
    • qubit_particle_number_index_spin
    • qubit_particle_number_sector
    • rand_wfn
    • reverse_bubble_list
    • sort_configuration_keys
    • validate_config
    • validate_tuple
    • vdot
    • zero_transform
  • fqe.wavefunction
    • Overview
    • Wavefunction
    • jv
  • fqe.wick
    • Overview
    • Mapping
    • wick
    • wickfill
  • Tools for quantum computing research and development
  • See all tools
  • Programming framework
  • Cirq
  • Computing service
  • Quantum Virtual Machine
  • Libraries and extensions
  • OpenFermion
  • qsim
  • TensorFlow Quantum
  • Overview
  • Our lab
  • Overview
  • Publications