You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I found that when using sympy expression as coefficients in FermionOperator, the expression would be transformed automatically into float numbers. For example:
from openfermion.ops import FermionOperator
from sympy import Rational
a = FermionOperator('0^ 0', Rational(1, 2))
a
This gives the output:
1/2 [0^ 0]
But when doing:
a = FermionOperator('0^ 0', Rational(1, 2))
b = FermionOperator('1^ 1', Rational(1, 2))
a + b
Then it outputs:
1/2 [0^ 0] +
0.500000000000000 [1^ 1]
Which is not what I would expect. This is probably due to that, in the SymbolicOperator class' addition method (line 435-436):
for term in addend.terms:
self.terms[term] = self.terms.get(term, 0.0) + addend.terms[term]
When term isn't find in self, its coefficient is set to 0.0, which might cause some type conversion for sympy expression. Since it originates in SymbolicOperator , it would probably happen in other operator classes.
Version: 1.6.1
The text was updated successfully, but these errors were encountered:
I found that when using sympy expression as coefficients in
FermionOperator
, the expression would be transformed automatically into float numbers. For example:This gives the output:
But when doing:
Then it outputs:
Which is not what I would expect. This is probably due to that, in the
SymbolicOperator
class' addition method (line 435-436):When
term
isn't find in self, its coefficient is set to0.0
, which might cause some type conversion for sympy expression. Since it originates inSymbolicOperator
, it would probably happen in other operator classes.Version: 1.6.1
The text was updated successfully, but these errors were encountered: