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