[Scipy-svn] r7031 - trunk/scipy/stats
scipy-svn at scipy.org
scipy-svn at scipy.org
Fri Jan 14 17:03:17 EST 2011
Author: josef
Date: 2011-01-14 16:03:16 -0600 (Fri, 14 Jan 2011)
New Revision: 7031
Modified:
trunk/scipy/stats/distributions.py
Log:
stats.distributions, handle case with no goodargs everywhere, ticket:1291
Modified: trunk/scipy/stats/distributions.py
===================================================================
--- trunk/scipy/stats/distributions.py 2011-01-14 21:03:11 UTC (rev 7030)
+++ trunk/scipy/stats/distributions.py 2011-01-14 22:03:16 UTC (rev 7031)
@@ -1107,9 +1107,10 @@
cond = cond0 & cond1
output = zeros(shape(cond),'d')
putmask(output,(1-cond0)*array(cond1,bool),self.badvalue)
- goodargs = argsreduce(cond, *((x,)+args+(scale,)))
- scale, goodargs = goodargs[-1], goodargs[:-1]
- place(output,cond,self._pdf(*goodargs) / scale)
+ if any(cond):
+ goodargs = argsreduce(cond, *((x,)+args+(scale,)))
+ scale, goodargs = goodargs[-1], goodargs[:-1]
+ place(output,cond,self._pdf(*goodargs) / scale)
if output.ndim == 0:
return output[()]
return output
@@ -1149,9 +1150,10 @@
output = empty(shape(cond),'d')
output.fill(NINF)
putmask(output,(1-cond0)*array(cond1,bool),self.badvalue)
- goodargs = argsreduce(cond, *((x,)+args+(scale,)))
- scale, goodargs = goodargs[-1], goodargs[:-1]
- place(output,cond,self._logpdf(*goodargs) - log(scale))
+ if any(cond):
+ goodargs = argsreduce(cond, *((x,)+args+(scale,)))
+ scale, goodargs = goodargs[-1], goodargs[:-1]
+ place(output,cond,self._logpdf(*goodargs) - log(scale))
if output.ndim == 0:
return output[()]
return output
@@ -1274,8 +1276,9 @@
output = zeros(shape(cond),'d')
place(output,(1-cond0)*(cond1==cond1),self.badvalue)
place(output,cond2,1.0)
- goodargs = argsreduce(cond, *((x,)+args))
- place(output,cond,self._sf(*goodargs))
+ if any(cond):
+ goodargs = argsreduce(cond, *((x,)+args))
+ place(output,cond,self._sf(*goodargs))
if output.ndim == 0:
return output[()]
return output
@@ -1314,8 +1317,9 @@
output.fill(NINF)
place(output,(1-cond0)*(cond1==cond1),self.badvalue)
place(output,cond2,0.0)
- goodargs = argsreduce(cond, *((x,)+args))
- place(output,cond,self._logsf(*goodargs))
+ if any(cond):
+ goodargs = argsreduce(cond, *((x,)+args))
+ place(output,cond,self._logsf(*goodargs))
if output.ndim == 0:
return output[()]
return output
@@ -5029,8 +5033,9 @@
cond = cond0 & cond1
output = zeros(shape(cond),'d')
place(output,(1-cond0)*(cond1==cond1),self.badvalue)
- goodargs = argsreduce(cond, *((k,)+args))
- place(output,cond,self._pmf(*goodargs))
+ if any(cond):
+ goodargs = argsreduce(cond, *((k,)+args))
+ place(output,cond,self._pmf(*goodargs))
if output.ndim == 0:
return output[()]
return output
@@ -5067,8 +5072,9 @@
output = empty(shape(cond),'d')
output.fill(NINF)
place(output,(1-cond0)*(cond1==cond1),self.badvalue)
- goodargs = argsreduce(cond, *((k,)+args))
- place(output,cond,self._logpmf(*goodargs))
+ if any(cond):
+ goodargs = argsreduce(cond, *((k,)+args))
+ place(output,cond,self._logpmf(*goodargs))
if output.ndim == 0:
return output[()]
return output
@@ -5186,8 +5192,9 @@
output = zeros(shape(cond),'d')
place(output,(1-cond0)*(cond1==cond1),self.badvalue)
place(output,cond2,1.0)
- goodargs = argsreduce(cond, *((k,)+args))
- place(output,cond,self._sf(*goodargs))
+ if any(cond):
+ goodargs = argsreduce(cond, *((k,)+args))
+ place(output,cond,self._sf(*goodargs))
if output.ndim == 0:
return output[()]
return output
@@ -5225,8 +5232,9 @@
output.fill(NINF)
place(output,(1-cond0)*(cond1==cond1),self.badvalue)
place(output,cond2,0.0)
- goodargs = argsreduce(cond, *((k,)+args))
- place(output,cond,self._logsf(*goodargs))
+ if any(cond):
+ goodargs = argsreduce(cond, *((k,)+args))
+ place(output,cond,self._logsf(*goodargs))
if output.ndim == 0:
return output[()]
return output
More information about the Scipy-svn
mailing list