I the "Python Library Reference", about random module, I read :
betavariate(alpha, beta)
Beta distribution. Conditions on the parameters are alpha > -1 and beta > -1. Returned values range between 0 and 1.
But
>>> import random
>>> random.betavariate(-0.5, -0.5)
Traceback (most recent call last):
File "<stdin>", line 1, in ?
File "/usr/lib/python2.4/random.py", line 575, in betavariate
y = self.gammavariate(alpha, 1.)
File "/usr/lib/python2.4/random.py", line 458, in gammavariate
raise ValueError, 'gammavariate: alpha and beta must be > 0.0'
ValueError: gammavariate: alpha and beta must be > 0.0
The documentation is probably inaccurate, because they are two beta distribution usage in the math world:
one with alpha and beta >0 (the common one)
and the other whit alpha' and beta' > -1 where alpha'=alpha-1 and beta'=beta-1
this could explain the mistake.
Finally, I thing the documentation should specify :
alpha > 0 and beta > 0
The problem exist in Python 2.4.3 and probably in all versions.
|