From a1c4faca2ba553d10be1cd6b5db84a520b31856f Mon Sep 17 00:00:00 2001 From: Aniket Singh Yadav Date: Sun, 21 Sep 2025 09:33:17 +0530 Subject: [PATCH 1/3] Fix: Ensure QubitOperator is simplified before sparse conversion --- src/openfermion/linalg/sparse_tools.py | 1 + 1 file changed, 1 insertion(+) diff --git a/src/openfermion/linalg/sparse_tools.py b/src/openfermion/linalg/sparse_tools.py index 28e5731a2..967e1ce17 100644 --- a/src/openfermion/linalg/sparse_tools.py +++ b/src/openfermion/linalg/sparse_tools.py @@ -1268,6 +1268,7 @@ def get_sparse_operator(operator, n_qubits=None, trunc=None, hbar=1.0): elif isinstance(operator, FermionOperator): return jordan_wigner_sparse(operator, n_qubits) elif isinstance(operator, QubitOperator): + operator.simplify() return qubit_operator_sparse(operator, n_qubits) elif isinstance(operator, (BosonOperator, QuadOperator)): return boson_operator_sparse(operator, trunc, hbar) From 1bd29ca2afdb9e596105f2e9aa6fac1edceef38c Mon Sep 17 00:00:00 2001 From: Aniket Singh Yadav Date: Sun, 21 Sep 2025 09:52:56 +0530 Subject: [PATCH 2/3] Fix: Exclude zero-valued same-spin two-body terms in generate_hamiltonian --- src/openfermion/hamiltonians/hartree_fock.py | 1 + 1 file changed, 1 insertion(+) diff --git a/src/openfermion/hamiltonians/hartree_fock.py b/src/openfermion/hamiltonians/hartree_fock.py index 87840ffe3..b9537c93e 100644 --- a/src/openfermion/hamiltonians/hartree_fock.py +++ b/src/openfermion/hamiltonians/hartree_fock.py @@ -289,6 +289,7 @@ def generate_hamiltonian( two_body_integrals[p, q, r, s] / 2.0 ) + if not (p == q or r == s): # Same spin two_body_coefficients[2 * p, 2 * q, 2 * r, 2 * s] = ( two_body_integrals[p, q, r, s] / 2.0 From dbc97368ba642786864e1b4cabb00e818c8fb781 Mon Sep 17 00:00:00 2001 From: Aniket Singh Yadav Date: Sun, 21 Sep 2025 09:59:40 +0530 Subject: [PATCH 3/3] Fix: Exclude zero-valued same-spin two-body terms in generate_hamiltonian --- src/openfermion/linalg/sparse_tools.py | 1 - 1 file changed, 1 deletion(-) diff --git a/src/openfermion/linalg/sparse_tools.py b/src/openfermion/linalg/sparse_tools.py index 967e1ce17..28e5731a2 100644 --- a/src/openfermion/linalg/sparse_tools.py +++ b/src/openfermion/linalg/sparse_tools.py @@ -1268,7 +1268,6 @@ def get_sparse_operator(operator, n_qubits=None, trunc=None, hbar=1.0): elif isinstance(operator, FermionOperator): return jordan_wigner_sparse(operator, n_qubits) elif isinstance(operator, QubitOperator): - operator.simplify() return qubit_operator_sparse(operator, n_qubits) elif isinstance(operator, (BosonOperator, QuadOperator)): return boson_operator_sparse(operator, trunc, hbar)