#12801: substitute_function misses some substitutions
-----------------------------+----------------------------------------------
       Reporter:  nbruin     |         Owner:  burcin      
           Type:  defect     |        Status:  needs_review
       Priority:  minor      |     Milestone:  sage-5.0    
      Component:  symbolics  |    Resolution:              
       Keywords:             |   Work issues:              
Report Upstream:  N/A        |     Reviewers:              
        Authors:             |     Merged in:              
   Dependencies:             |      Stopgaps:              
-----------------------------+----------------------------------------------

Comment (by mjo):

 Even with the patch I don't think the second case is fixed completely. I
 was going to add a doctest to `Expression.substitute_function()`, but,

 {{{
 sage: f = function('f')
 sage: g = function('g')
 sage: f(g(x)).diff(x).substitute_function(g, sin)
 ERROR: An unexpected error occurred while tokenizing input
 The following traceback may be corrupted or invalid
 The error message is: ('EOF in multi-line statement', (38, 0))

 ---------------------------------------------------------------------------
 NotImplementedError                       Traceback (most recent call
 last)

 /home/mjo/src/sage-5.0.beta11/devel/sage-main/<ipython console> in
 <module>()

 /home/mjo/src/sage-5.0.beta11/local/lib/python2.7/site-
 packages/sage/symbolic/expression.so in
 sage.symbolic.expression.Expression.substitute_function
 (sage/symbolic/expression.cpp:16628)()

 /home/mjo/src/sage-5.0.beta11/local/lib/python2.7/site-
 packages/sage/symbolic/expression_conversions.pyc in __call__(self, ex)
     212                 div = self.get_fake_div(ex)
     213                 return self.arithmetic(div, div.operator())
 --> 214             return self.arithmetic(ex, operator)
     215         elif operator in relation_operators:
     216             return self.relation(ex, operator)

 /home/mjo/src/sage-5.0.beta11/local/lib/python2.7/site-
 packages/sage/symbolic/expression_conversions.pyc in arithmetic(self, ex,
 operator)
    1572             x*bar(x) + pi/bar(x)
    1573         """
 -> 1574         return reduce(operator, map(self, ex.operands()))
    1575
    1576     def composition(self, ex, operator):

 /home/mjo/src/sage-5.0.beta11/local/lib/python2.7/site-
 packages/sage/symbolic/expression_conversions.pyc in __call__(self, ex)
     216             return self.relation(ex, operator)
     217         elif isinstance(operator, FDerivativeOperator):
 --> 218             return self.derivative(ex, operator)
     219         else:
     220             return self.composition(ex, operator)

 /home/mjo/src/sage-5.0.beta11/local/lib/python2.7/site-
 packages/sage/symbolic/expression_conversions.pyc in derivative(self, ex,
 operator)
    1611         """
    1612         if operator.function() == self.original:
    1613             return
 operator.change_function(self.new)(*map(self,ex.operands()))
    1614         else:
 -> 1615             return operator(*map(self, ex.operands()))

 /home/mjo/src/sage-5.0.beta11/local/lib/python2.7/site-
 packages/sage/symbolic/operators.pyc in __call__(self, *args)
      42         if (not all(is_SymbolicVariable(x) for x in args) or
      43             len(args) != len(set(args))):
 ---> 44             raise NotImplementedError, "currently all arguments
 must be distinct variables"
      45         vars = [args[i] for i in self._parameter_set]
      46         return self._f(*args).diff(*vars)

 NotImplementedError: currently all arguments must be distinct variables
 }}}

-- 
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/12801#comment:2>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica, 
and MATLAB

-- 
You received this message because you are subscribed to the Google Groups 
"sage-trac" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/sage-trac?hl=en.

Reply via email to