Opened 14 years ago

Closed 14 years ago

# [with patch, positive review] error in bessel_J(0,0)

Reported by: Owned by: zimmerma rlm major sage-3.3 basic arithmetic

### Description

```sage: bessel_J(0,0)
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', (284, 0))

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

/users/cacao/zimmerma/.sage/temp/achille.loria.fr/2662/_users_cacao_zimmerma__sage_init_sage_0.py in <module>()
----> 1
2
3
4
5

/usr/local/sage-3.1.4/sage/local/lib/python2.5/site-packages/sage/functions/special.pyc in bessel_J(nu, z, algorithm, prec)
522             K = C
523         K = z.parent()
--> 524         return K(pari(nu).besselj(z, precision=prec))
525     elif algorithm=="scipy":
526         if prec != 53:

/usr/local/sage-3.1.4/sage/local/lib/python2.5/site-packages/sage/libs/pari/gen.so in sage.libs.pari.gen._pari_trap (sage/libs/pari/gen.c:34447)()
7864
7865
-> 7866
7867
7868

PariError:  (8)
```

The other non-default algorithms (maxima and scipy) return the correct answer 1.0000...

### comment:1 Changed 14 years ago by rlm

The problem is somewhere between the Pari interface and Pari itself:

```sage: R = RealField(53)
sage: n = R(0)
sage: z = R(0)
sage: pari(n).besselj(z, precision=53)
BOOM
```

### comment:2 Changed 14 years ago by rlm

• Summary changed from error in bessel_J(0,0) to [with fix, needs patch] error in bessel_J(0,0)

Aha!:

```sage: pari('besselj(0,0)')
1.00000000000000
sage: pari('besselj(0.0,0.0)')
---------------------------------------------------------------------------
PariError                                 Traceback (most recent call last)

/Users/rlmill/<ipython console> in <module>()

/Users/rlmill/sage-3.2.2/local/lib/python2.5/site-packages/sage/libs/pari/gen.so in sage.libs.pari.gen._pari_trap (sage/libs/pari/gen.c:38645)()

PariError:  (8)
sage: pari('besselj(0,0.0)')
1.00000000000000
```

The problem is that Pari is expecting an integer:

```sage: R = RealField(53)
sage: n = Integer(0)
sage: z = R(0)
sage: pari(n).besselj(z, precision=53)
1.00000000000000
```

I'll post a patch once my 3.3.alpha0 builds...

### comment:3 Changed 14 years ago by rlm

• Owner changed from somebody to rlm
• Status changed from new to assigned

### comment:4 Changed 14 years ago by rlm

• Summary changed from [with fix, needs patch] error in bessel_J(0,0) to [with patch, needs review] error in bessel_J(0,0)

### comment:5 Changed 14 years ago by ddrake

• Summary changed from [with patch, needs review] error in bessel_J(0,0) to [with patch, positive review] error in bessel_J(0,0)

Positive review here. It applies cleanly to my 3.3.alpha0 tree and bessel_J(0, 0) works now.

### comment:6 follow-up: ↓ 7 Changed 14 years ago by zimmerma

• Summary changed from [with patch, positive review] error in bessel_J(0,0) to [with patch, needs more work] error in bessel_J(0,0)

I've reported the problem upstream to Pari.

The patch needs more work since non-integer arguments are no longer allowed:

```sage: bessel_J(0.1,0)
...
TypeError: Attempt to coerce non-integral RealNumber to Integer
```

This used to work before the patch:

```sage: bessel_J(0.1,0.1)
0.777264368097005
```

### comment:7 in reply to: ↑ 6 Changed 14 years ago by ddrake

Good catch -- thanks for undoing my positive review. Anyone working on this should probably be aware of #3426, which involves other Pari/Bessel? problems.

### comment:8 Changed 14 years ago by zimmerma

Also, if the doctest did pass with the initial patch, the new one should add a test for say bessel_J(0.1,0.1), and make clear in the documentation which argument types are allowed.

### comment:9 Changed 14 years ago by rlm

• Summary changed from [with patch, needs more work] error in bessel_J(0,0) to [with patch, needs review] error in bessel_J(0,0)

Fixed.

### comment:10 Changed 14 years ago by zimmerma

• Summary changed from [with patch, needs review] error in bessel_J(0,0) to [with patch, positive review] error in bessel_J(0,0)

The new patch is ok for me.

### comment:11 Changed 14 years ago by mabshoff

• Milestone changed from sage-3.4.1 to sage-3.3
• Resolution set to fixed
• Status changed from assigned to closed

Merged in Sage 3.3.alpha0

Cheers,

Michael

Note: See TracTickets for help on using tickets.