#3401: Make Li symbolic and work with complex input
---------------------------------+------------------------------------------
       Reporter:  was            |         Owner:  gfurnish                     
                                  
           Type:  enhancement    |        Status:  needs_review                 
                                  
       Priority:  major          |     Milestone:  sage-5.3                     
                                  
      Component:  calculus       |    Resolution:                               
                                  
       Keywords:  beginner       |   Work issues:                               
                                  
Report Upstream:  N/A            |     Reviewers:  Mike Hansen, Karl-Dieter 
Crisman, Burcin Erocal, Benjamin Jones
        Authors:  Michael Yurko  |     Merged in:                               
                                  
   Dependencies:  #11143         |      Stopgaps:                               
                                  
---------------------------------+------------------------------------------

Comment (by benjaminfjones):

 Don't worry about the coding conventions, some of them are unwritten and
 some of them are subtle. I found a few doctest errors after running `make
 ptestlong` with the patches applied. These should be simple to fix:

 Change 9 to 10:
 {{{
 File "/home/jonesbe/sage/sage-5.2/devel/sage-11143/sage/misc/sagedoc.py",
 line 971:
     sage: len(search_src('log', 'derivative',
 interact=False).splitlines()) < 9
 Expected:
     True
 Got:
     False
 }}}

 simple change, `Li` is now fully symbolic:
 {{{
 File
 
"/home/jonesbe/sage/sage-5.2/devel/sage-11143/sage/functions/transcendental.py",
 lin
 e 195:
     sage: Li(100)
 Expected:
     29.080977804
 Got:
     -log_integral(2) + log_integral(100)
 }}}

 This one is more mysterious:
 {{{
 File
 "/home/jonesbe/sage/sage-5.2/devel/sage-11143/sage/symbolic/random_tests.py",
 line 2
 36:
     sage: print "ignore this";  random_expr(50, nvars=3,
 coeff_generator=CDF.random_eleme
 nt) # random
 Exception raised:
     Traceback (most recent call last):      File
 "/home/jonesbe/sage/sage-5.2/local/bin/ncadoctest.py", line 1231, in
 run_one_test
         self.run_one_example(test, example, filename, compileflags)
       File "/home/jonesbe/sage/sage-5.2/local/bin/sagedoctest.py", line
 38, in run_one_ex
 ample
         OrigDocTestRunner.run_one_example(self, test, example, filename,
 compileflags)
       File "/home/jonesbe/sage/sage-5.2/local/bin/ncadoctest.py", line
 1172, in run_one_e
 xample
         compileflags, 1) in test.globs
       File "<doctest __main__.example_5[4]>", line 1, in <module>
         print "ignore this";  random_expr(Integer(50), nvars=Integer(3),
 coeff_generator=CDF.random_element) # random###line 236:
     sage: print "ignore this";  random_expr(50, nvars=3,
 coeff_generator=CDF.random_element) # random

     sage: print "ignore this";  random_expr(50, nvars=3,
 coeff_generator=CDF.random_element) # random
       File "/home/jonesbe/sage/sage-5.2/local/lib/python/site-
 packages/sage/symbolic/random_tests.py", line 258, in random_expr
         return random_expr_helper(size, internal, leaves, verbose)
       File "/home/jonesbe/sage/sage-5.2/local/lib/python/site-
 packages/sage/symbolic/random_tests.py", line 206, in random_expr_helper
         children = [random_expr_helper(n+1, internal, leaves, verbose) for
 n in nodes_per_child]
       File "/home/jonesbe/sage/sage-5.2/local/lib/python/site-
 packages/sage/symbolic/random_tests.py", line 209, in random_expr_helper
         return r[1](*children)
       File "function.pyx", line 432, in
 sage.symbolic.function.Function.__call__ (sage/symbolic/function.cpp:4941)
         res = g_function_evalv(self._serial, vec, hold)
       File "/home/jonesbe/sage/sage-5.2/local/lib/python/site-
 packages/sage/symbolic/integration/integral.py", line 173, in _eval_
         return integrator(*args)
       File "/home/jonesbe/sage/sage-5.2/local/lib/python/site-
 packages/sage/symbolic/integration/external.py", line 21, in
 maxima_integrator
         result = maxima.sr_integral(expression, v, a, b)
       File "/home/jonesbe/sage/sage-5.2/local/lib/python/site-
 packages/sage/interfaces/maxima_lib.py", line 746, in sr_integral
         raise error
     RuntimeError: ECL says: Error executing code in Maxima: defint: upper
 limit of integration must be real; found
      elliptic_eu(.18648175298340663*I-.7457199773032457,
                  coth(v3)*(v3*(.12348638361486497*I+.29875723285490263)
                           +v1*(.12348638361486497*I+.29875723285490263)
 -sinh(v3^(.5481180571998028*I-.5534231539946481))))
 }}}

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