public static IEnumerable <bool> SampleBernoulli(this IPolyrand random, double p) { var dist = new Dist.Bernoulli(p); while (true) { yield return(dist.Sample(random)); } }
/// <summary> /// Sets this instance to have the parameters of another instance /// </summary> /// <param name="that">The source Bernoulli distribution</param> public void SetTo(Bernoulli that) { LogOdds = that.LogOdds; }
/// <summary> /// Creates the complementary distribution /// </summary> /// <param name="dist">The original distribution</param> /// <returns>The complementary distribution</returns> public static Bernoulli operator !(Bernoulli dist) { return(Bernoulli.FromLogOdds(-dist.LogOdds)); }
/// <summary> /// Copy constructor. /// </summary> /// <param name="that"></param> public Bernoulli(Bernoulli that) { LogOdds = that.LogOdds; }
public bool Sample(IPolyrand random) { return(Bernoulli.Sample(GetProbTrue(), random)); }
public bool Sample() { return(Bernoulli.Sample(GetProbTrue())); }