Skip to content

Mv.collect(deep=True) raises TypeError #148

@eric-wieser

Description

@eric-wieser

As found via LGTM, this code calls collect(x) (line 930), but sympy.collect needs at least two arguments.

galgebra/galgebra/mv.py

Lines 906 to 933 in 7995365

def collect(self,deep=False):
"""
group coeffients of blades of multivector
so there is only one coefficient per grade
"""
""" # dead code
self.obj = expand(self.obj)
if self.is_blade_rep or Mv.Ga.is_ortho:
c = self.Ga.blades_lst
else:
c = self.Ga.bases_lst
self.obj = self.obj.collect(c)
return self
"""
coefs, bases = metric.linear_expand(self.obj)
obj_dict = {}
for (coef, base) in zip(coefs, bases):
if base in list(obj_dict.keys()):
obj_dict[base] += coef
else:
obj_dict[base] = coef
obj = S(0)
for base in list(obj_dict.keys()):
if deep:
obj += collect(obj_dict[base])*base
else:
obj += obj_dict[base]*base
return Mv(obj, ga=self.Ga)

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions