protected static float TestUniformClosedClosed(RandomVariateGenerator generator, out bool inBounds, out bool zero, out bool one) { float sample = Single.NaN; inBounds = true; zero = false; one = false; for (int i = 0; i < UniformCount; i++) { sample = generator.GenerateUniformCC(); if ((sample < 0.0f) || (sample > 1.0f)) { inBounds = false; break; } if (!zero && (sample == 0.0f)) { zero = true; } else if (!one && (sample == 1.0f)) { one = true; } } return(sample); }
// Extract this from the static constructor to facilitate testing. protected internal static void Reset() { // Look at the config, if there is one, to determine which generator // to use and what seed value. string defaultPrngType = (AesCounterVariateGenerator.IsSupported ? "AESCOUNTER" : "PSEUDODES"); string configPrngType = Configuration.CurrentConfiguration.GetParameterWithDefault("RNG.type", defaultPrngType); _generatorType = (GeneratorType)Enum.Parse(typeof(GeneratorType), configPrngType.ToUpper()); _generatorSeed = (uint)Configuration.CurrentConfiguration.GetParameterWithDefault("prng_seed", 0); _seedIndex = (uint)Configuration.CurrentConfiguration.GetParameterWithDefault("prng_index", 0); _generator = null; try { _generator = CreateNewPrng(_generatorType, _generatorSeed, _seedIndex); } catch (Exception) { Console.Error.WriteLine("Unknown/unsupported RNG type: {0}", configPrngType); throw; } Console.WriteLine("Using {0} PRNG ({1}, {2}).", configPrngType, _generatorSeed, _seedIndex); }
// ReSharper restore InconsistentNaming protected SolverBase(ModelInfo modelInfo, float duration, int repeats, int samples, IModelBuilder modelBuilder = null) { if (modelBuilder == null) { modelBuilder = new ModelBuilder(); } this.modelInfo = modelInfo; this.duration = duration; SamplingParams = new SamplingParameters { RealizationCount = repeats, SampleCount = samples }; rng = RNGFactory.GetRNG(); _currentTime = 0.0f; model = modelBuilder.BuildModel(modelInfo); _time = model.Parameters.First(p => p.Name == "time"); untriggeredEvents = null; triggeredEvents = new Queue <TriggeredEvent>(); scheduledEvents = model.ScheduledEvents.Count > 0 ? new PriorityQueue <ScheduledEvent>(model.ScheduledEvents.Count) : null; trajectories = AllocateRecordingArrays(model.Observables, SamplingParams); InitializePerformanceMeasurements(); stopWatch = new Stopwatch(); }
public static DistributionSampler CreateRandLibSampler(RandomVariateGenerator generator) { var sampler = new RandLibSampler { VariateGenerator = generator }; return(sampler); }
public void UniformOpenOpen() { RandomVariateGenerator generator = CreateVariateGenerator(); bool inBounds; var sample = TestUniformOpenOpen(generator, out inBounds); Assert.IsTrue(inBounds, string.Format("PseudoDesVariateGenerator.GenerateUniformOO() failed with value {0}.", sample)); }
public void UniformOpenClosed() { RandomVariateGenerator generator = CreateVariateGenerator(); bool inBounds; bool one; var sample = TestUniformOpenClosed(generator, out inBounds, out one); Assert.IsTrue(inBounds, string.Format("PseudoDesVariateGenerator.GenerateUniformOC() failed with value {0}.", sample)); Assert.IsTrue(one, "PseudoDesVariateGenerator.GenerateUniformOC() failed to generate 1.0"); }
public void UniformClosedOpen() { RandomVariateGenerator generator = CreateVariateGenerator(); bool inBounds; bool zero; var sample = TestUniformClosedOpen(generator, out inBounds, out zero); Assert.IsTrue(inBounds, string.Format("PseudoDesVariateGenerator.GenerateUniformCO() failed with value {0}.", sample)); Assert.IsTrue(zero, "PseudoDesVariateGenerator.GenerateUniformCO() failed to generate 0.0"); }
private Empirical() { Dimensionality = 0; _binCount = 0; _binEdges = null; _probabilities = null; _sum = 0; _rng = RNGFactory.GetRNG(); }
public Uniform(double minimum, double maximum) { if (minimum > maximum) { throw new ArgumentException("Minimum must be <= maxmimum.", "minimum"); } _min = minimum; _max = maximum; _rng = RNGFactory.GetRNG(); }
public void UniformClosedClosed() { RandomVariateGenerator generator = CreateVariateGenerator(); bool inBounds; bool zero; bool one; var sample = TestUniformClosedClosed(generator, out inBounds, out zero, out one); Assert.IsTrue(inBounds, string.Format("AesCounterVariateGenerator.GenerateUniformCC() failed with value {0}.", sample)); Assert.IsTrue(zero, "AesCounterVariateGenerator.GenerateUniformCC() failed to generate 0.0"); Assert.IsTrue(one, "AesCounterVariateGenerator.GenerateUniformCC() failed to generate 1.0"); }
public void RngFactoryDefaultTest() { Configuration.CurrentConfiguration = Configuration.ConfigurationFromString("{}"); _resetMethodinfo.Invoke(null, null); RandomVariateGenerator rng = RNGFactory.GetRNG(); Console.WriteLine("Testing RNGFactory default value..."); if (AesCounterVariateGenerator.IsSupported) { Expect(rng is AesCounterVariateGenerator); } else { Expect(rng is PseudoDesVariateGenerator); } Console.WriteLine("{0}() PASSED", MethodBase.GetCurrentMethod().Name); }
private const int UniformCount = 64 * 1048576; // 4 * 2^24 protected static float TestUniformOpenOpen(RandomVariateGenerator generator, out bool inBounds) { float sample = Single.NaN; inBounds = true; for (int i = 0; i < UniformCount; i++) { sample = generator.GenerateUniformOO(); if ((sample <= 0.0f) || (sample >= 1.0f)) { inBounds = false; break; } } return(sample); }
private RandomVariateGenerator CreateVariateGenerator() { RandomVariateGenerator generator = DotNetVariateGenerator.CreateDotNetVariateGenerator(new uint[] { 19860201 }); return(generator); }
private RandomVariateGenerator CreateVariateGenerator() { RandomVariateGenerator generator = PseudoDesVariateGenerator.CreatePseudoDesVariateGenerator(new uint[] { 1234567890, 123456789 }); return(generator); }
public void ToStringTest() { RandomVariateGenerator generator = CreateVariateGenerator(); Assert.AreEqual("PseudoDes Random Variate Generator (PseudoDes PRNG)", generator.ToString()); }
private RandomVariateGenerator CreateVariateGenerator() { RandomVariateGenerator generator = AesCounterVariateGenerator.CreateAesCounterVariateGenerator(new uint[] { 1234567890, 123456789 }); return(generator); }
public void ToStringTest() { RandomVariateGenerator generator = CreateVariateGenerator(); Assert.AreEqual("AesCounter Random Variate Generator (AesCounter PRNG)", generator.ToString()); }
public void ToStringTest() { RandomVariateGenerator generator = CreateVariateGenerator(); Assert.AreEqual(".Net Random Variate Generator (System.Random)", generator.ToString()); }