>>> ga, e1, e2, e3, ep, en = galgebra.ga.Ga.build('e_1 e_2 e_3 e_{+} e_{-}',g=[1,1,1, 1, -1])
>>> sympy.simplify(e1)
RecursionError: maximum recursion depth exceeded while calling a Python object
>>> list(e1)
RecursionError: maximum recursion depth exceeded while calling a Python object
This is because:
sympy.simplify and list calls iter(e1)
Mv.__iter__ is not defined, so it defaults to:
def __iter__(self):
i = 0
while True:
try:
yield self[i]
except IndexError:
break
i += 1
```
Mv.__getitem__ will return 0 forever, as it implies grade selection
Possible fixes:
- Have
Mv.__iter__ raise TypeError
- Have
Mv.__iter__ iterate only up to the highest grade present
This is because:
sympy.simplifyandlistcallsiter(e1)Mv.__iter__is not defined, so it defaults to:Mv.__getitem__will return 0 forever, as it implies grade selectionPossible fixes:
Mv.__iter__raise TypeErrorMv.__iter__iterate only up to the highest grade present