/// <summary> /// Samples Beta distributed random variables by sampling two Gamma variables and normalizing. /// </summary> /// <param name="rnd">The random number generator to use.</param> /// <param name="a">The A shape parameter.</param> /// <param name="b">The B shape parameter.</param> /// <returns>a random number from the Beta distribution.</returns> internal static double SampleBeta(Random rnd, double a, double b) { var x = Gamma.SampleGamma(rnd, a, 1.0); var y = Gamma.SampleGamma(rnd, b, 1.0); return(x / (x + y)); }