#6636: Simplification of factorials and binomial coefficients is not very good
-------------------------+--------------------------------------------------
 Reporter:  jbandlow     |       Owner:                                         
     
     Type:  enhancement  |      Status:  new                                    
     
 Priority:  major        |   Milestone:  sage-4.1.1                             
     
Component:  symbolics    |    Keywords:  symbolics, factorials, binomial 
coefficients
 Reviewer:               |      Author:                                         
     
   Merged:               |  
-------------------------+--------------------------------------------------
 Maple can simplify all but the first of the following examples:

 {{{
 %maple
 print(simplify(binomial(n,2)+binomial(n+1,2)));
 print(simplify(factorial(n)/factorial(n-2)/2 +
 factorial(n+1)/factorial(n-1)/2));
 print(simplify(factorial(n+1)/factorial(n)));
 print(simplify(binomial(n,k)*factorial(k)*factorial(n-k)));
 }}}

 returns
 {{{
 binomial(n,2)+binomial(n+1,2)
 n^2
 n+1
 n!
 }}}

 Sage can simplify only the first:
 {{{
 var('n,k')
 print (binomial(n,2) + binomial(n+1,2)).simplify_full()
 print (factorial(n)/factorial(n-2)/2 +
 factorial(n+1)/factorial(n)/2).simplify_full()
 print (factorial(n+1)/factorial(n)).simplify_full()
 print (binomial(n,k)*factorial(k)*factorial(n-k)).simplify_full()
 }}}

 returns
 {{{
 n^2
 1/2*(factorial(n - 2)*factorial(n + 1) + factorial(n)^2)/(factorial(n -
 2)*factorial(n))
 factorial(n + 1)/factorial(n)
 Traceback (most recent call last):
   File "<stdin>", line 1, in <module>
   File "/home/jason/.sage/sage_notebook/worksheets/admin/10/code/49.py",
 line 11, in <module>
     exec compile(ur'print
 (binomial(n,k)*factorial(k)*factorial(n-k)).simplify_full()' + '\n', '',
 'single')
   File "", line 1, in <module>

   File "expression.pyx", line 4837, in
 sage.symbolic.expression.Expression.simplify_full
 (sage/symbolic/expression.cpp:19979)
   File "expression.pyx", line 4864, in
 sage.symbolic.expression.Expression.simplify_trig
 (sage/symbolic/expression.cpp:20076)
   File "expression.pyx", line 418, in
 sage.symbolic.expression.Expression._maxima_
 (sage/symbolic/expression.cpp:3415)
   File "sage_object.pyx", line 364, in
 sage.structure.sage_object.SageObject._interface_
 (sage/structure/sage_object.c:3384)
   File "sage_object.pyx", line 451, in
 sage.structure.sage_object.SageObject._maxima_init_
 (sage/structure/sage_object.c:5065)
   File "expression.pyx", line 443, in
 sage.symbolic.expression.Expression._interface_init_
 (sage/symbolic/expression.cpp:3544)
   File "/home/jason/sage-4.0/local/lib/python2.6/site-
 packages/sage/symbolic/expression_conversions.py", line 214, in __call__
     return self.arithmetic(ex, operator)
   File "/home/jason/sage-4.0/local/lib/python2.6/site-
 packages/sage/symbolic/expression_conversions.py", line 497, in arithmetic
     args = ["(%s)"%self(op) for op in ex.operands()]
   File "/home/jason/sage-4.0/local/lib/python2.6/site-
 packages/sage/symbolic/expression_conversions.py", line 206, in __call__
     operator = ex.operator()
   File "expression.pyx", line 3088, in
 sage.symbolic.expression.Expression.operator
 (sage/symbolic/expression.cpp:15127)
 RuntimeError: cannot find SFunction in table
 }}}

-- 
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/6636>
Sage <http://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