OpenFermion-Cirq icon indicating copy to clipboard operation
OpenFermion-Cirq copied to clipboard

Consider removing/modifying LetterWithSubscripts

Open bryano opened this issue 5 years ago • 1 comments

The current implementation seems pretty hacky and brittle.

For one, LetterWithSubscripts('x', 1, 2) == LetterWithSubscripts('x_1_2') == LetterWithSubscripts('x', '1_2'). According to @Strilanc, this is necessary because of how poorly Sympy treats subclasses of sympy.Symbol.

One possible alternative replace the class entirely with a function letter_with_subscripts that returns a sympy.Symbol object directly with the right name. The function could set the letter and subscripts attributes of the object, but that might not play well with mypy.

bryano avatar Feb 27 '19 17:02 bryano

If it's left as is, the inputs should at least be validated or parsed so that LetterWithSubscripts('x_1_2') either throws an error or evaluates to LetterWithSubscripts('x', 1, 2).

bryano avatar Feb 27 '19 17:02 bryano