'Log of the cumulative distribution function at x of the given RV.
Parameters
x : array_like
quantiles
arg1, arg2, arg3,... : array_like
The shape parameter(s) for the distribution (see docstring of the
instance object for more information)
loc : array_like, optional
location parameter (default=0)
scale : array_like, optional
scale parameter (default=1)
Returns
logcdf : array_like
Log of the cumulative distribution function evaluated at x'

def logcdf(self, x, *args, **kwds):

    (args, loc, scale) = self._parse_args(*args, **kwds)
    (x, loc, scale) = map(asarray, (x, loc, scale))
    args = tuple(map(asarray, args))
    dtyp = np.find_common_type([x.dtype, np.float64], [])
    x = np.asarray(((x - loc) / scale), dtype=dtyp)
    cond0 = (self._argcheck(*args) & (scale > 0))
    cond1 = (self._open_support_mask(x) & (scale > 0))
    cond2 = ((x >= self.b) & cond0)
    cond = (cond0 & cond1)
    output = empty(shape(cond), dtyp)
    output.fill(NINF)
    place(output, (((1 - cond0) * (cond1 == cond1)) + np.isnan(x)), self.badvalue)
    place(output, cond2, 0.0)
    if np.any(cond):
        goodargs = argsreduce(cond, *((x,) + args))
        place(output, cond, self._logcdf(*goodargs))
    if (output.ndim == 0):
        return output[()]
    return output
