You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
gh-36422: replace wrongly placed sig_on/off pair with sig_check
fixes the bug noted in mpmath/mpmath#723
The problem comes from the `sig_on/off` pair guarding non-Cython
statements; we replace it by `sig_check()`
```
sage: from mpmath import *
sage: mp.dps=16
sage: zeta(-0.01 + 1000j)
------------------------------------------------------------------------
---
SystemError Traceback (most recent call
last)
Cell In [3], line 1
----> 1 zeta(-RealNumber('0.01') + ComplexNumber(0, '1000'))
File /usr/lib/python3.11/site-packages/mpmath/functions/zeta.py:580, in
zeta(ctx, s, a, derivative, method, **kwargs)
578 if ctx.re(s) > 2*ctx.prec and a == 1 and not derivative:
579 return ctx.one + ctx.power(2, -s)
--> 580 return +ctx._hurwitz(s, a, d, **kwargs)
File /usr/lib/python3.11/site-packages/mpmath/functions/zeta.py:595, in
_hurwitz(ctx, s, a, d, **kwargs)
593 print("zeta: Attempting reflection formula")
594 try:
--> 595 return _hurwitz_reflection(ctx, s, a, d, atype)
596 except NotImplementedError:
597 pass
File /usr/lib/python3.11/site-packages/mpmath/functions/zeta.py:654, in
_hurwitz_reflection(ctx, s, a, d, atype)
652 p += shift*q
653 assert 1 <= p <= q
--> 654 g = ctx.fsum(ctx.cospi(t/2-2*k*b)*ctx._hurwitz(t,(k,q)) \
655 for k in range(1,q+1))
656 g *= 2*ctx.gamma(t)/(2*ctx.pi*q)**t
657 v += g
File /mnt/opt/Sage/sage-dev/src/sage/libs/mpmath/ext_main.pyx:767, in
sage.libs.mpmath.ext_main.Context.fsum()
765 workopts.rounding = ROUND_D
766 unknown = global_context.zero
--> 767 sig_on()
768 try: # Way down, there is a ``finally`` with sig_off()
769 MPF_init(&sre)
SystemError: calling remove_from_pari_stack() inside sig_on()
```
URL: #36422
Reported by: Dima Pasechnik
Reviewer(s): Dima Pasechnik, Kwankyu Lee
0 commit comments