#11948: Fix numeric evaluation of error function
-------------------------+--------------------------------------------------
   Reporter:  jdemeyer   |          Owner:  jason, jkantor
       Type:  defect     |         Status:  new           
   Priority:  major      |      Milestone:  sage-pending  
  Component:  numerical  |       Keywords:  erf erfc      
Work_issues:             |       Upstream:  N/A           
   Reviewer:             |         Author:                
     Merged:             |   Dependencies:  #11130        
-------------------------+--------------------------------------------------
 Because the argument is converted to `float` first, the error function
 `erf()` cannot numerically be evaluated for complex arguments:
 {{{
 sage: erf(pi - 1/2*I).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', (1108, 0))

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

 /usr/local/src/sage-4.7.2.alpha2/<ipython console> in <module>()

 /usr/local/src/sage-4.7.2.alpha2/local/lib/python2.6/site-
 packages/sage/symbolic/expression.so in
 sage.symbolic.expression.Expression._numerical_approx
 (sage/symbolic/expression.cpp:17793)()

 /usr/local/src/sage-4.7.2.alpha2/local/lib/python2.6/site-
 packages/sage/symbolic/expression.so in
 sage.symbolic.expression.Expression._convert
 (sage/symbolic/expression.cpp:5004)()

 /usr/local/src/sage-4.7.2.alpha2/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):

 /usr/local/src/sage-4.7.2.alpha2/local/lib/python2.6/site-
 packages/sage/rings/complex_number.so in
 sage.rings.complex_number.ComplexNumber.__float__
 (sage/rings/complex_number.c:7233)()

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

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