beta.h   beta.h 
// -*- C++ -*-
// $Id$
/* /*
* Generate Beta random deviate * Generate Beta random deviate
* *
* Returns a single random deviate from the beta distribution with * Returns a single random deviate from the beta distribution with
* parameters A and B. The density of the beta is * parameters A and B. The density of the beta is
* x^(a-1) * (1-x)^(b-1) / B(a,b) for 0 < x < 1 * x^(a-1) * (1-x)^(b-1) / B(a,b) for 0 < x < 1
* *
* The mean is a/(a+b). * The mean is a/(a+b).
* The variance is ab/((a+b)^2(a+b+1)) * The variance is ab/((a+b)^2(a+b+1))
* The rth moment is (a+r-1)^(r)/(a+b+r-1)^(r) * The rth moment is (a+r-1)^(r)/(a+b+r-1)^(r)
skipping to change at line 58 skipping to change at line 61
template<typename T = double, typename IRNG = defaultIRNG, template<typename T = double, typename IRNG = defaultIRNG,
typename stateTag = defaultState> typename stateTag = defaultState>
class Beta : public UniformOpen<T,IRNG,stateTag> class Beta : public UniformOpen<T,IRNG,stateTag>
{ {
public: public:
typedef T T_numtype; typedef T T_numtype;
Beta(T a, T b) Beta(T a, T b)
{ {
aa = a; setParameters(a, b);
bb = b; }
infnty = 0.3 * huge(T());
minlog = 0.085 * tiny(T()); Beta(T a, T b, unsigned int i) : UniformOpen<T, IRNG, stateTag>(i)
expmax = log(infnty); {
setParameters(a, b);
} }
T random(); T random();
void setParameters(T a, T b) void setParameters(T a, T b)
{ {
aa = a; aa = a;
bb = b; bb = b;
infnty = 0.3 * blitz::huge(T());
minlog = 0.085 * blitz::tiny(T());
expmax = log(infnty);
} }
protected: protected:
T ranf() T ranf()
{ {
return UniformOpen<T,IRNG,stateTag>::random(); return UniformOpen<T,IRNG,stateTag>::random();
} }
T aa, bb; T aa, bb;
T infnty, minlog, expmax; T infnty, minlog, expmax;
 End of changes. 3 change blocks. 
5 lines changed or deleted 12 lines changed or added

This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/