@@ -1594,15 +1594,15 @@ def __call__(self, arg):
15941594 terms = []
15951595 for (coef , pdiff ) in self .terms :
15961596 new_terms = pdiff (arg .terms )
1597- new_terms = [ (coef * x [ 0 ], x [ 1 ] ) for x in new_terms ]
1597+ new_terms = [(coef * c , p ) for c , p in new_terms ]
15981598 terms += new_terms
15991599 return Sdop (terms , ga = self .Ga )
16001600 else :
1601- return sum ([x [ 0 ] * x [ 1 ] (arg ) for x in self .terms ], S (0 ))
1601+ return sum ([coef * pdiff (arg ) for coef , pdiff in self .terms ], S (0 ))
16021602
16031603
16041604 def __neg__ (self ):
1605- return Sdop ([(- x [ 0 ], x [ 1 ] ) for x in self .terms ], ga = self .Ga )
1605+ return Sdop ([(- coef , pdiff ) for coef , pdiff in self .terms ], ga = self .Ga )
16061606
16071607 @staticmethod
16081608 def Add (sdop1 , sdop2 ):
@@ -1658,15 +1658,15 @@ def __mul__(self, sdopr):
16581658 terms = []
16591659 for (coef , pdiff ) in sdopl .terms :
16601660 Dsdopl = pdiff (sdopr .terms ) # list of terms
1661- Dsdopl = [(coef * x [ 0 ], x [ 1 ] ) for x in Dsdopl ]
1661+ Dsdopl = [(coef * c , p ) for c , p in Dsdopl ]
16621662 terms += Dsdopl
16631663 product = Sdop (terms , ga = sdopl .Ga )
16641664 return Sdop .consolidate_coefs (product )
16651665 else : # sdopr is a scalar or a multivector
1666- return sum ([x [ 0 ] * x [ 1 ] (sdopr ) for x in sdopl .terms ], S (0 )) # returns scalar
1666+ return sum ([coef * pdiff (sdopr ) for coef , pdiff in sdopl .terms ], S (0 )) # returns scalar
16671667
1668- def __rmul__ (self ,sdop ):
1669- terms = [(sdop * x [ 0 ], x [ 1 ] ) for x in self .terms ]
1668+ def __rmul__ (self , sdop ):
1669+ terms = [(sdop * coef , pdiff ) for coef , pdiff in self .terms ]
16701670 return Sdop (terms , ga = self .Ga )
16711671
16721672#################### Partial Derivative Operator Class #################
@@ -2066,14 +2066,14 @@ def Mul(dopl, dopr, op='*'): # General multiplication of Dop's
20662066 terms = []
20672067 for (coef , pdiff ) in dopl .terms : #Apply each dopl term to dopr
20682068 Ddopl = pdiff (dopr .terms ) # list of terms
2069- Ddopl = [(Mv .Mul (coef , x [ 0 ] , op = op ), x [ 1 ] ) for x in Ddopl ]
2069+ Ddopl = [(Mv .Mul (coef , c , op = op ), p ) for c , p in Ddopl ]
20702070 terms += Ddopl
20712071 product = Dop (terms , ga = ga )
20722072 else : # dopl and dopr operate on left argument
20732073 terms = []
20742074 for (coef , pdiff ) in dopr .terms :
20752075 Ddopr = pdiff (dopl .terms ) # list of terms
2076- Ddopr = [(Mv .Mul (x [ 0 ] , coef , op = op ), x [ 1 ] ) for x in Ddopr ]
2076+ Ddopr = [(Mv .Mul (c , coef , op = op ), p ) for c , p in Ddopr ]
20772077 terms += Ddopr
20782078 product = Dop (terms , ga = ga , cmpflg = True )
20792079 else :
@@ -2085,20 +2085,20 @@ def Mul(dopl, dopr, op='*'): # General multiplication of Dop's
20852085 ga = dopl .Ga
20862086
20872087 if not dopr .cmpflg : # dopr operates on right argument
2088- terms = [(Mv .Mul (dopl , x [ 0 ] , op = op ), x [ 1 ] ) for x in dopr .terms ]
2088+ terms = [(Mv .Mul (dopl , coef , op = op ), pdiff ) for coef , pdiff in dopr .terms ]
20892089 return Dop (terms , ga = ga ) # returns Dop
20902090 else :
2091- product = sum ([Mv .Mul (x [ 1 ] (dopl ), x [ 0 ] , op = op ) for x in dopr .terms ], Mv (0 , ga = ga )) # returns multivector
2091+ product = sum ([Mv .Mul (pdiff (dopl ), coef , op = op ) for coef , pdiff in dopr .terms ], Mv (0 , ga = ga )) # returns multivector
20922092 else : # dopr is a scalar or a multivector
20932093
20942094 if isinstance (dopr , Mv ) and dopl .Ga != dopr .Ga :
20952095 raise ValueError ('In Dop.Mul Dop arguments are not from same geometric algebra' )
20962096 ga = dopl .Ga
20972097
20982098 if not dopl .cmpflg : # dopl operates on right argument
2099- return sum ([Mv .Mul (x [ 0 ], x [ 1 ] (dopr ), op = op ) for x in dopl .terms ], Mv (0 , ga = ga )) # returns multivector
2099+ return sum ([Mv .Mul (coef , pdiff (dopr ), op = op ) for coef , pdiff in dopl .terms ], Mv (0 , ga = ga )) # returns multivector
21002100 else :
2101- terms = [(Mv .Mul (x [ 0 ] , dopr , op = op ), x [ 1 ] ) for x in dopl .terms ]
2101+ terms = [(Mv .Mul (coef , dopr , op = op ), pdiff ) for coef , pdiff in dopl .terms ]
21022102 product = Dop (terms , ga = dopl .Ga , cmpflg = True ) # returns Dop complement
21032103 if isinstance (product , Dop ):
21042104 product = product .consolidate_coefs ()
@@ -2177,8 +2177,8 @@ def _repr_latex_(self):
21772177 return latex_str
21782178
21792179 def is_scalar (self ):
2180- for x in self .terms :
2181- if isinstance (x [ 0 ] , Mv ) and not x [ 0 ] .is_scalar ():
2180+ for coef , pdiff in self .terms :
2181+ if isinstance (coef , Mv ) and not coef .is_scalar ():
21822182 return False
21832183 return True
21842184
0 commit comments