'Exponential distribution.
lambd is 1.0 divided by the desired mean.  It should be
nonzero.  (The parameter would be called "lambda", but that is
a reserved word in Python.)  Returned values range from 0 to
positive infinity if lambd is positive, and from negative
infinity to 0 if lambd is negative.'

def expovariate(self, lambd):

    random = self.random
    u = random()
    while (u <= 1e-07):
        u = random()
    return ((- _log(u)) / lambd)
