#7742: add a compose function to sage
------------------------------------------------+---------------------------
   Reporter:  was                               |       Owner:  AlexGhitza
       Type:  defect                            |      Status:  needs_work
   Priority:  major                             |   Milestone:  sage-4.6.1
  Component:  basic arithmetic                  |    Keywords:            
     Author:  Christopher Olah, Felix Lawrence  |    Upstream:  N/A       
   Reviewer:  Paul Zimmermann                   |      Merged:            
Work_issues:                                    |  
------------------------------------------------+---------------------------

Comment(by flawrence):

 Replying to [comment:18 jrp]:
 > Replying to [comment:17 jrp]:
 > > At the moment the powers-of-two speed up isn't helping even in the
 symbolic case, because the implementation is to return lambda x: f(g(x)).
 If both inputs to compose are symbolic, then I think we want to just
 return f(g(x)) instead.
 >
 > Given that symbolic functions have named variables, is this the correct
 behavior?
 >
 >
 > sage: f(x) = x+1
 > sage: g(y) = y+1
 > sage: compose(f,g)
 > y + 2
 > sage: compose(g,f)
 > x + 2
 I don't actually know anything about symbolic functions in Sage.  As such,
 all doctests and examples in the patch are for regular python functions
 not symbolic functions.  The compose functions in the patch use lambda
 functions, which may or may not break symbolic functions.

 With normal python functions (such as those in the doctest), the powers-
 of-two provides a major speedup for large n over the other techniques I
 tried, both for the function composition and for the evaluation of the
 resulting function (benchmarked using "timeit").  In fact, without a
 powers-of-two-type algorithm, the self_compose function regularly hit the
 recursion limit and crashed for large n (above 500 or 1000).  But I don't
 know if anyone is interested in large n cases.

-- 
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/7742#comment:19>
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