Example #1
0
        static IEnumerable <double> SamplesUnchecked(System.Random rnd, double lower, double upper, double mode)
        {
            double ml = mode - lower, ul = upper - lower, um = upper - mode;
            double u = ml / ul, v = ul * ml, w = ul * um;

            return(rnd.NextDoubleSequence().Select(x => x < u ? lower + Math.Sqrt(x * v) : upper - Math.Sqrt((1 - x) * w)));
        }
Example #2
0
        static IEnumerable <int> SamplesUnchecked(System.Random rnd, double p)
        {
            if (p == 1.0)
            {
                return(Generate.RepeatSequence(1));
            }

            double rp = 1.0 - p;

            return(rnd.NextDoubleSequence().Select(r => (int)Math.Ceiling(Math.Log(1.0 - r, rp))));
        }
Example #3
0
 static IEnumerable <double> SamplesUnchecked(System.Random rnd, double scale)
 {
     return(rnd.NextDoubleSequence().Select(x => scale * Math.Sqrt(-2.0 * Math.Log(x))));
 }
Example #4
0
 static IEnumerable <double> SamplesUnchecked(System.Random rnd, double rate)
 {
     return(rnd.NextDoubleSequence().Where(r => r != 0.0).Select(r => - System.Math.Log(r) / rate));
 }
Example #5
0
        static IEnumerable <double> SamplesUnchecked(System.Random rnd, double shape, double scale)
        {
            var exponent = 1.0 / shape;

            return(rnd.NextDoubleSequence().Select(x => scale * Math.Pow(-Math.Log(x), exponent)));
        }
Example #6
0
 static IEnumerable <int> SamplesUnchecked(System.Random rnd, double p)
 {
     return(rnd.NextDoubleSequence().Select(r => r < p ? 1 : 0));
 }
Example #7
0
        static IEnumerable <double> SamplesUnchecked(System.Random rnd, double scale, double shape)
        {
            var power = -1.0 / shape;

            return(rnd.NextDoubleSequence().Select(x => scale * Math.Pow(x, power)));
        }