public static IEnumerable <T> Samples <T>(this IDistribution <T> d) { while (true) { yield return(d.Sample()); } }
/// <summary> /// Infinite enumerable of samples from this <see cref="IDistribution{T}"/>. /// </summary> /// <typeparam name="T">Type of items in this <see cref="IDistribution{T}"/></typeparam> /// <param name="distribution">The distribution we're sampling.</param> /// <param name="random"></param> /// <returns>The infinite <see cref="IEnumerable{T}"/> of samples.</returns> public static IEnumerable <T> Samples <T>(this IDistribution <T> distribution, IRNG random) { while (true) { yield return(distribution.Sample(random)); } }
public static IEnumerable <T> TakeSamples <T>(this IDistribution <T> distribution, int samples) { for (int i = 0; i < samples; i++) { yield return(distribution.Sample()); } }
public void SingleAverage(IDistribution <Single> dist, UInt64 seed) { const Int32 iterations = 10_000; var rng = Pcg32.Create(seed, 11634580027462260723ul); Double mean = 0; for (var i = 0; i < iterations; i++) { var result = dist.Sample(rng); var delta = result - mean; mean += delta / (i + 1); Assert.True(0 <= result); Assert.True(result <= 1); } Assert.True(Statistics.WithinConfidence(popMean: 0.5, popStdDev: 0.5, mean, iterations)); Double mean2 = 0; for (var i = 0; i < iterations; i++) { Assert.True(dist.TrySample(rng, out var result)); var delta = result - mean2; mean2 += delta / (i + 1); Assert.True(0 <= result); Assert.True(result <= 1); } Assert.True(Statistics.WithinConfidence(popMean: 0.5, popStdDev: 0.5, mean2, iterations)); }
public static IEnumerable <T> Samples <T>([NotNull] this IDistribution <T> d) { while (true) { yield return(d.Sample()); } // ReSharper disable once IteratorNeverReturns }
public void Init(LocalRandom random, int startYear, int numYears) { this.startYear = startYear; values = new double[numYears]; for (var i = 0; i < numYears; ++i) { values[i] = pdf.Sample(random); } }
public double Evaluate(Vector input) { return(Function.Evaluate(input) * (Offset.Parameter + Scale.Parameter * Math.Abs(noise.Sample()))); }
public int Sample() { return(rows.Sample().Sample()); }
public TResult Sample <TRng>(TRng rng) where TRng : notnull, IRng { var sample = _distribution.Sample(rng); return(_selector(sample)); }