[SciPy-dev] Sad sad sad... Was: Warning about remaining issues in stats.distributions ?

Yaroslav Halchenko lists at onerussian.com
Mon Mar 16 13:31:22 EDT 2009


Thanks Josef once again.

I have tested s/pow/N.power/ in rdist and it seems to work great! thanks a lot.

numpy is more fun though than I thought ;)

In [12]:np.power(0, -1)
Out[12]:-9223372036854775808

In [14]:np.power(0.0, -1)
Out[14]:inf

In [16]:np.power(0, -1.0)
Out[16]:inf

I know that in my case I will not (or should not) get ints as input but... I
thought it might be worth mentioning... may be it is worth a bug report
in numpy?

On Fri, 13 Mar 2009, josef.pktd at gmail.com wrote:

> > The solution to the rdist problem is trivial:

> >>>> np.power(1-1.,-2)
> > inf
> >>>> pow(1-1.,-2)
> > Traceback (most recent call last):
> >  File "<pyshell#163>", line 1, in <module>
> >    pow(1-1.,-2)
> > ZeroDivisionError: 0.0 cannot be raised to a negative power


> It only partially helped, it doesn't raise an exception anymore, but the inf is
> incorrect

> >>> stats.rdist(1.32, 0, 1).cdf(-1.0+np.finfo(float).eps)
> Warning: Extremely bad integrand behavior occurs at some points of the
>   integration interval.
> Warning: Extremely bad integrand behavior occurs at some points of the
>   integration interval.
> inf
> >>> stats.rdist(1.32, 0, 1).cdf(-1.0+1e-14)
> Warning: Extremely bad integrand behavior occurs at some points of the
>   integration interval.
> inf

> further away from the boundary it looks good
> >>> stats.rdist(1.32, 0, 1).cdf(-1.0+1e-12)
> 5.5125207421811825e-009
> >>> stats.rdist._cdf_skip(-1.0+1e-12, 1.32)
> 5.5260225839681709e-009
> >>> stats.rdist._cdf_skip(-1.0+1e-13, 1.32)
> 1.2092278844910709e-009
> >>> stats.rdist(1.32, 0, 1).cdf(-1.0+1e-13)
> 1.2060822041379395e-009

> so back to fiddling with the boundary ?
> so just do
> >>> stats.rdist.a = -1.0+np.finfo(float).eps
> before calling rdist, this works in some basic tests.

> Josef
> _______________________________________________
> Scipy-dev mailing list
> Scipy-dev at scipy.org
> http://mail.scipy.org/mailman/listinfo/scipy-dev


-- 
                                  .-.
=------------------------------   /v\  ----------------------------=
Keep in touch                    // \\     (yoh@|www.)onerussian.com
Yaroslav Halchenko              /(   )\               ICQ#: 60653192
                   Linux User    ^^-^^    [175555]





More information about the SciPy-Dev mailing list