-
-
Notifications
You must be signed in to change notification settings - Fork 662
Closed
Description
Currently we have
sage: bessel_K(10 * I, 10)
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
/home/bober/sage-3.0.2/devel/sage-bober/sage/functions/<ipython console> in <module>()
/home/bober/sage/local/lib/python2.5/site-packages/sage/functions/special.py in bessel_K(nu, z, algorithm, prec)
586 from sage.libs.pari.all import pari
587 RR,a = _setup(prec)
--> 588 b = RR(pari(nu).besselk(z))
589 pari.set_real_precision(a)
590 return b
/home/bober/sage-3.0.2/devel/sage-bober/sage/functions/real_mpfr.pyx in sage.rings.real_mpfr.RealField.__call__ (sage/rings/real_mpfr.c:3138)()
/home/bober/sage-3.0.2/devel/sage-bober/sage/functions/real_mpfr.pyx in sage.rings.real_mpfr.RealNumber._set (sage/rings/real_mpfr.c:5905)()
TypeError: Unable to convert x (='0.000000098241574381992468+0.E-161*I') to real number.
sage: bessel_K(10 * I, 10)
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
/home/bober/sage-3.0.2/devel/sage-bober/sage/functions/<ipython console> in <module>()
/home/bober/sage/local/lib/python2.5/site-packages/sage/functions/special.py in bessel_K(nu, z, algorithm, prec)
586 from sage.libs.pari.all import pari
587 RR,a = _setup(prec)
--> 588 b = RR(pari(nu).besselk(z))
589 pari.set_real_precision(a)
590 return b
/home/bober/sage-3.0.2/devel/sage-bober/sage/functions/real_mpfr.pyx in sage.rings.real_mpfr.RealField.__call__ (sage/rings/real_mpfr.c:3138)()
/home/bober/sage-3.0.2/devel/sage-bober/sage/functions/real_mpfr.pyx in sage.rings.real_mpfr.RealNumber._set (sage/rings/real_mpfr.c:5905)()
TypeError: Unable to convert x (='0.000000098241574381992468+0.E-161*I') to real number.
In this case the result actually should be a real number, so we fix this by discarding the imaginary part of the result from pari. In other cases, however, the result is actually a complex number, and we shouldn't always be attempting to cast it to a real number (which the attached patch also fixes).
CC: @burcin @kcrisman @benjaminfjones
Component: calculus
Keywords: bessel, bessel_K
Reviewer: Karl-Dieter Crisman, Benjamin Jones
Issue created by migration from https://trac.sagemath.org/ticket/3426