Example #1
0
 def _main(expr):
     _new = []
     for a in expr.args:
         is_V = False
         if isinstance(a, V):
             is_V = True
             a = a.expr
         if a.is_Function:
             name = a.__class__.__name__
             for i in a.args:
                 if i.is_Function:
                     func = i
                     break
             if ',' in name:
                 variables = [eval(i) for i in name.split(',')[1]]
                 a = Derivative(func, *variables)
             if 'V' in name:
                 #TODO remove this V and use class
                 a = V(a)
                 a.function = func
         #TODO add more, maybe all that have args
         elif a.is_Add or a.is_Mul or a.is_Pow:
             a = _main(a)
         if is_V:
             a = V(a)
             a.function = func
         _new.append( a )
     return expr.func(*tuple(_new))
Example #2
0
 def _main(expr):
     _new = []
     for a in expr.args:
         is_V = False
         if isinstance(a, V):
             is_V = True
             a = a.expr
         if a.is_Function:
             name = a.__class__.__name__
             for i in a.args:
                 if i.is_Function:
                     func = i
                     break
             if ',' in name:
                 variables = [eval(i) for i in name.split(',')[1]]
                 a = Derivative(func, *variables)
             if 'V' in name:
                 #TODO remove this V and use class
                 a = V(a)
                 a.function = func
         #TODO add more, maybe all that have args
         elif a.is_Add or a.is_Mul or a.is_Pow:
             a = _main(a)
         if is_V:
             a = V(a)
             a.function = func
         _new.append(a)
     return expr.func(*tuple(_new))