Example #1
0
        /// <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));
        }