#10682: sum fails with lower bound != 0 or 1 (upgrade maxima to 5.26)
-----------------------------------------------------------------------------------------------+
   Reporter:  fmaltey                                                           
               |          Owner:  burcin    
       Type:  defect                                                            
               |         Status:  needs_work
   Priority:  critical                                                          
               |      Milestone:  sage-5.0  
  Component:  symbolics                                                         
               |       Keywords:            
Work_issues:  several doctests need to be patched due to  changes in output 
format/term order  |       Upstream:  N/A       
   Reviewer:                                                                    
               |         Author:            
     Merged:                                                                    
               |   Dependencies:            
-----------------------------------------------------------------------------------------------+

Comment(by nbruin):

 Replying to [comment:32 jpflori]:
 > Anyway, isn't there something in Maxima which "knows" that a variable is
 real after such assumptions ?

 It's just a little weak in its deductions:
 {{{
 (%i1) domain: complex;
 (%o1)                               complex
 (%i2) display2d: false;
 (%o2) false
 (%i3) sqrt(x^2);
 (%o3) sqrt(x^2)
 (%i4) assume(x>0);
 (%o4) [x > 0]
 (%i5) sqrt(x^2);
 (%o5) x
 (%i6) sqrt(4/x^2);
 (%o6) sqrt(4/x^2)
 (%i7) domain:real;
 (%o7) real
 (%i8) sqrt(4/x^2);
 (%o8) 2/x
 }}}
 It is ingrained now that the calculus maxima runs with `domain: complex`,
 so if you want to temporarily switch to `domain: real`, you should switch
 back afterwards. In principle this could play havoc with multiple threads,
 but maxima is not threadsafe anyway and our signal management isn't
 compatible with ECL's ideas of dealing with threads either. So, if in
 `desolve` (conditional on domain="real") we just do:
 {{{
 P("load('contrib_ode)")
 ...
 try:
     P("domain: real")
     soln = P(cmd)
 finally:
     P("domain: complex")
 }}}
 we should be fine (the "try ... finally" should guard that we end up with
 `domain: complex`). I don't think performance is a concern if we're doing
 a "load" every time anyway!.

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