#12237: erf of complex arguments
-------------------------+--------------------------------------------------
   Reporter:  vbraun     |          Owner:  jason, jkantor
       Type:  defect     |         Status:  new           
   Priority:  major      |      Milestone:  sage-4.8      
  Component:  numerical  |       Keywords:                
Work_issues:             |       Upstream:  N/A           
   Reviewer:             |         Author:  Volker Braun  
     Merged:             |   Dependencies:                
-------------------------+--------------------------------------------------
 The erf function doesn't work for complex arguments, even though we use
 Pari and Pari does support it. This is also annoying because maxima
 sometimes returns `erf(complex argument)` in integrations:
 {{{
 sage: integrate(sin(x)*(x^(1/2)),x,0,1)
 -1/8*((I + 1)*sqrt(2)*erf((1/2*I - 1/2)*sqrt(2)) + (I -
 1)*sqrt(2)*erf((1/2*I + 1/2)*sqrt(2)))*sqrt(pi) - cos(1)
 sage: _.n()
 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', (1111, 0))

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

 /home/vbraun/opt/sage-weak/sage-4.8.alpha5/<ipython console> in <module>()

 /home/vbraun/opt/sage-4.8.alpha4/local/lib/python2.6/site-
 packages/sage/symbolic/expression.so in
 sage.symbolic.expression.Expression._numerical_approx
 (sage/symbolic/expression.cpp:18004)()

 /home/vbraun/opt/sage-4.8.alpha4/local/lib/python2.6/site-
 packages/sage/symbolic/expression.so in
 sage.symbolic.expression.Expression._convert
 (sage/symbolic/expression.cpp:5089)()

 /home/vbraun/opt/sage-4.8.alpha4/local/lib/python2.6/site-
 packages/sage/functions/other.pyc in _evalf_(self, x, parent)
      79         if prec > 53:
      80             raise NotImplementedError, "erf not implemented for
 precision higher than 53"
 ---> 81         return parent(1 - pari(float(x)).erfc())
      82
      83     def _derivative_(self, x, diff_param=None):

 /home/vbraun/opt/sage-4.8.alpha4/local/lib/python2.6/site-
 packages/sage/rings/complex_number.so in
 sage.rings.complex_number.ComplexNumber.__float__
 (sage/rings/complex_number.c:7501)()

 TypeError: Unable to convert -0.707106781186547 + 0.707106781186547*I to
 float; use abs() or real_part() as desired
 }}}

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