/*************************************************************************** * Copyright (C) 1995, 1996, Jun Sun, jsun@junsun.net. * * * *************************************************************************** */ #include #include "random_variates.h" Bernoulli::Bernoulli(double p) { assert((p>=0.0) && (p<=1.0)); _p = p; } Bernoulli::Bernoulli(int *data, int num_data) { double sum = 0.0; int i; assert(data); assert(num_data>0); for(i=0;i=1.0) return 1.0; return 1-_p; } int Bernoulli::sample() { if (randp->sample() <= _p) return 1; else return 0; }