Wait, Troels, the problem here is not that the number is close to infinity. It is that numpy.cosh() can't handle numbers >> 100! Try running: """ from numpy import cosh for i in range(10): print("cosh(%i+0.0j): %s" % (i*100, cosh(i*100+0.j))) """ You will see: """ cosh(0+0.0j): (1+0j) cosh(100+0.0j): (1.34405857091e+43+0j) cosh(200+0.0j): (3.61298688406e+86+0j) cosh(300+0.0j): (9.71213197621e+129+0j) cosh(400+0.0j): (2.61073484488e+173+0j) cosh(500+0.0j): (7.01796108926e+216+0j) cosh(600+0.0j): (1.88651015046e+260+0j) cosh(700+0.0j): (5.07116027368e+303+0j) aaa.py:3: RuntimeWarning: overflow encountered in cosh print("cosh(%i+0.0j): %s" % (i*100, cosh(i*100+0.j))) aaa.py:3: RuntimeWarning: invalid value encountered in cosh print("cosh(%i+0.0j): %s" % (i*100, cosh(i*100+0.j))) cosh(800+0.0j): (inf+nan*j) cosh(900+0.0j): (inf+nan*j) """ Therefore summing over the list and checking for isfinite() or isnan() is no good, when you are looking for a small number. I used 100 in the lib.dispersion.cr72 module, but obviously this could be 200 or 300. Regards, Edward On 11 May 2014 21:42, Troels E. Linnet <NO-REPLY.INVALID-ADDRESS@xxxxxxx> wrote:
Follow-up Comment #4, bug #22032 (project relax): Acccording to these guys: http://stackoverflow.com/questions/6736590/fast-check-for-nan-in-numpy The fastest way to check for numpy errors is a sum of the list. That can then be checked for isfinite() or isnan() # Skip the error search. etapos = etapos_part / cpmg_frqs etaneg = etaneg_part / cpmg_frqs fact = Dpos * cosh(etapos) - Dneg * cos(etaneg) if isfinite(sum(fact)): R2eff = r20_kex - cpmg_frqs * arccosh(fact) for i in range(num_points): back_calc[i] = R2eff[i] else: R2eff = array([10**7]*num_points) for i in range(num_points): back_calc[i] = R2eff[i] http://docs.scipy.org/doc/numpy/reference/generated/numpy.isfinite.html http://docs.scipy.org/doc/numpy/reference/generated/numpy.isnan.html http://docs.scipy.org/doc/numpy/reference/generated/numpy.isinf.html _______________________________________________________ Reply to this item at: <http://gna.org/bugs/?22032> _______________________________________________ Message sent via/by Gna! http://gna.org/