SEGV in mpmath.findroot

Showing 1-4 of 4 messages
SEGV in mpmath.findroot Georgi Guninski 10/1/12 7:19 AM
import mpmath
mpmath.mp.pretty=True
mpmath.mp.dps=30
def F(x):
        return mpmath.zeta(x)+mpmath.zeta(x,derivative=1)

r=mpmath.findroot(F,[0.1+mpmath.j],solver="muller")

====
Unhandled SIGSEGV: A segmentation fault occurred in Sage.
This probably occurred because a *compiled* component of Sage has a bug
in it and is not properly wrapped with sig_on(), sig_off(). You might
want to run Sage under gdb with 'sage -gdb' to debug this.
Sage will now terminate.
=====
Re: [sage-support] SEGV in mpmath.findroot D. S. McNeil 10/1/12 7:35 AM
Hmm.  My backtrace showed:

/home/mcneil/sagedev/sage-5.4.beta0/local/lib/libcsage.so(print_backtrace+0x3b)[0xb6bd7c49]
/home/mcneil/sagedev/sage-5.4.beta0/local/lib/libcsage.so(sigdie+0x17)[0xb6bd7c89]
/home/mcneil/sagedev/sage-5.4.beta0/local/lib/libcsage.so(sage_signal_handler+0x212)[0xb6bd778c]
[0xb772c400]
/home/mcneil/sagedev/sage-5.4.beta0/local/lib/libgmp.so.7(__gmpn_rshift+0x19c)[0xb6b897dc]

and my standard Python version of mpmath, which I don't think is
gmp-aware, produces

/usr/local/lib/python2.7/dist-packages/mpmath/libmp/libelefun.pyc in
exp_fixed(x, prec, ln2)
   1410         return v << n
   1411     else:
-> 1412         return v >> (-n)
   1413
   1414

OverflowError: long int too large to convert to int


Doug
Re: [sage-support] SEGV in mpmath.findroot Georgi Guninski 10/1/12 7:58 AM
i get the same exception on standalone mpmath, don't know if it uses
gmp.
Re: SEGV in mpmath.findroot Fredrik Johansson 10/2/12 2:50 AM

I have (hopefully) fixed the the crash in mpmath-git.

You still have a problem with your code: the root finder doesn't seem to be converging, so the evaluation points ends up far out in the complex plane. If it doesn't crash, it's still fairly soon going to take extremely long time or run out of memory. I would add a line to F to raise an exception if x doesn't look sane.

Fredrik