def ppf(self, q, *args, **kwds):
args, loc, _ = self._parse_args(*args, **kwds)<EOL>q, loc = map(asarray, (q, loc))<EOL>args = tuple(map(asarray, args))<EOL>cond0 = self._argcheck(*args) & (loc == loc)<EOL>cond1 = (q > <NUM_LIT:0>) & (q < <NUM_LIT:1>)<EOL>cond2 = (q == <NUM_LIT:1>) & cond0<EOL>cond = cond0 & cond1<EOL>output = valarray(shape(cond), value=self.badvalue, typecode='<STR_LIT:d>')<EOL>place(output, (q == <NUM_LIT:0>)*(cond == cond), self.a-<NUM_LIT:1>)<EOL>place(output, cond2, self.b)<EOL>if any(cond):<EOL><INDENT>goodargs = argsreduce(cond, *((q,)+args+(loc,)))<EOL>loc, goodargs = goodargs[-<NUM_LIT:1>], goodargs[:-<NUM_LIT:1>]<EOL>place(output, cond, self._ppf(*goodargs) + loc)<EOL><DEDENT>if output.ndim == <NUM_LIT:0>:<EOL><INDENT>return output[()]<EOL><DEDENT>return output<EOL>
Percent point function (inverse of cdf) at q of the given RV

Parameters
----------
q : array_like
    Lower tail probability.
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
-------
k : array_like
    Quantile corresponding to the lower tail probability, q.