solve parenthesis bug for op.pw

This commit is contained in:
Lafrite 2015-04-27 19:16:08 +02:00
parent 0545d73751
commit fcee4a8942
2 changed files with 19 additions and 3 deletions

View File

@ -565,6 +565,21 @@ class op(object):
""" Calling this operator performs the rigth calculus """ """ Calling this operator performs the rigth calculus """
return getattr(op1, "__pow__")(op2) return getattr(op1, "__pow__")(op2)
def l_parenthesis(self, opl, str_join=False):
""" Add parenthesis for left operand if necessary """
ans = opl
try:
if opl.mainOp.priority < self.priority:
ans = flatten_list(["(", opl, ")"])
except AttributeError as e:
# op has not the attribute priority
pass
ans = flatten_list([ans])
if str_join:
ans = ' '.join([str(i) for i in ans])
return ans
caract = { caract = {
"operator" : "^", \ "operator" : "^", \
"name" : "pw",\ "name" : "pw",\
@ -573,6 +588,7 @@ class op(object):
"actions" : ("__pow__",""), \ "actions" : ("__pow__",""), \
"txt" : "{op1} ^ {op2}",\ "txt" : "{op1} ^ {op2}",\
"tex" : "{op1}^{{ {op2} }}",\ "tex" : "{op1}^{{ {op2} }}",\
"l_parenthesis": l_parenthesis,\
"_call":_call,\ "_call":_call,\
} }

View File

@ -77,11 +77,11 @@ if __name__ == '__main__':
from itertools import permutations from itertools import permutations
from pymath import Polynom from pymath import Polynom
from pymath import Expression from pymath import Expression
coefs_p = [[(i-2),(j-2)] for i,j in permutations(range(3),2)] coefs_p = [[(i-2),(j-2)] for i,j in permutations(range(5),2)]
coefs_q = [[2*(i-2),2*(j-2)] for i,j in permutations(range(3),2)] coefs_q = [[2*(i-2),2*(j-2)] for i,j in permutations(range(5),2)]
l_p = [Polynom(i) for i in coefs_p] l_p = [Polynom(i) for i in coefs_p]
l_q = [Polynom(i) for i in coefs_q] l_q = [Polynom(i) for i in coefs_q]
operations = [Expression([l_p[i],l_q[j],op.mul]) for i,j in permutations(range(len(coefs_p)),2)] operations = [Expression([l_p[i],l_q[j],op.pw]) for i,j in permutations(range(len(coefs_p)),2)]
for i in operations: for i in operations:
print(i) print(i)