Skip to content

Commit 298399c

Browse files
committed
Fix get_sparse_operator to handle unsimplified QubitOperator
1 parent a1c4fac commit 298399c

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

src/openfermion/linalg/sparse_tools.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import scipy
1919
import scipy.sparse
2020
import scipy.sparse.linalg
21+
import warnings
2122

2223
from openfermion.ops.operators import FermionOperator, QubitOperator, BosonOperator, QuadOperator
2324
from openfermion.ops.representations import DiagonalCoulombHamiltonian, PolynomialTensor
@@ -1268,7 +1269,13 @@ def get_sparse_operator(operator, n_qubits=None, trunc=None, hbar=1.0):
12681269
elif isinstance(operator, FermionOperator):
12691270
return jordan_wigner_sparse(operator, n_qubits)
12701271
elif isinstance(operator, QubitOperator):
1271-
operator.simplify()
1272+
if hasattr(operator, "simplify"):
1273+
operator.simplify()
1274+
else:
1275+
warnings.warn(
1276+
"QubitOperator.simplify() not found. "
1277+
"Ensure your operator is simplified to avoid errors."
1278+
)
12721279
return qubit_operator_sparse(operator, n_qubits)
12731280
elif isinstance(operator, (BosonOperator, QuadOperator)):
12741281
return boson_operator_sparse(operator, trunc, hbar)

0 commit comments

Comments
 (0)