public GenerationManager(PseudoRandomGeneratorType pseudoRandomGeneratorType) { _validatorFactory = new HsmmValidatorFactory(); _jsonModelFactory = new JsonModelFactory(); _generatorFactory = new HsmmGeneratorFactory(); _pseudoRandomNumberGenerator = new PseudoRandomGeneratorFactory().CreatePseudoRandomNumberGenerator(pseudoRandomGeneratorType); }
/// <summary>Initializes the <see cref="MklPseudoRandomNumberGenerator" /> class. /// </summary> static MklPseudoRandomNumberGenerator() { MCG31 = new MklPseudoRandomNumberGenerator("MCG31_mkl", (int)MagicNumber.MCG31, new MklRandomNumberInitialConditions.Descriptor(), MklResources.MCG31, RandomNumberSequence.SplittingApproach.LeapFrog | RandomNumberSequence.SplittingApproach.SkipAhead); R250 = new MklPseudoRandomNumberGenerator("R250_mkl", (int)MagicNumber.R250, new MklRandomNumberInitialConditions.Descriptor(), MklResources.R250); MRG32K3A = new MklPseudoRandomNumberGenerator("MRG32K3A_mkl", (int)MagicNumber.MRG32K3A, new MklRandomNumberInitialConditions.Descriptor(), MklResources.MRG32K3A, RandomNumberSequence.SplittingApproach.SkipAhead); MCG59 = new MklPseudoRandomNumberGenerator("MCG59_mkl", (int)MagicNumber.MCG59, new MklRandomNumberInitialConditions.Descriptor(), MklResources.MCG59, RandomNumberSequence.SplittingApproach.LeapFrog | RandomNumberSequence.SplittingApproach.SkipAhead); MT2203 = new MklPseudoRandomNumberGenerator("MT2203_mkl", (int)MklPseudoRandomNumberGenerator.MagicNumber.MT2203, new MklRandomNumberInitialConditions.Descriptor(), MklResources.MT2203, numberOfSubGenerators: 6024); WichmannHill = new MklPseudoRandomNumberGenerator("WichmannHill_mkl", (int)MagicNumber.WH, new MklRandomNumberInitialConditions.Descriptor(), MklResources.WichmannHill, RandomNumberSequence.SplittingApproach.LeapFrog | RandomNumberSequence.SplittingApproach.SkipAhead, numberOfSubGenerators: 273); MT19937 = new MklPseudoRandomNumberGenerator("MT19937_mkl", (int)MagicNumber.MT19937, new MklRandomNumberInitialConditions.Descriptor(), MklResources.MT19937); }
/// <summary>Initializes a new instance of the <see cref="MklRandomNumberLibrary" /> class. /// </summary> public MklRandomNumberLibrary() { MCG31 = new MklPseudoRandomNumberGenerator("MCG31_mkl", (int)MklPseudoRandomNumberGenerator.MagicNumber.MCG31, new MklRandomNumberInitialConditions.Descriptor(), MklResources.MCG31, RandomNumberSequence.SplittingApproach.LeapFrog | RandomNumberSequence.SplittingApproach.SkipAhead, 1, this); R250 = new MklPseudoRandomNumberGenerator("R250_mkl", (int)MklPseudoRandomNumberGenerator.MagicNumber.R250, new MklRandomNumberInitialConditions.Descriptor(), MklResources.R250, RandomNumberSequence.SplittingApproach.None, 1, this); MRG32K3A = new MklPseudoRandomNumberGenerator("MRG32K3A_mkl", (int)MklPseudoRandomNumberGenerator.MagicNumber.MRG32K3A, new MklRandomNumberInitialConditions.Descriptor(), MklResources.MRG32K3A, RandomNumberSequence.SplittingApproach.SkipAhead, 1, this); MCG59 = new MklPseudoRandomNumberGenerator("MCG59_mkl", (int)MklPseudoRandomNumberGenerator.MagicNumber.MCG59, new MklRandomNumberInitialConditions.Descriptor(), MklResources.MCG59, RandomNumberSequence.SplittingApproach.LeapFrog | RandomNumberSequence.SplittingApproach.SkipAhead, 1, this); WichmannHill = new MklPseudoRandomNumberGenerator("WichmannHill_mkl", (int)MklPseudoRandomNumberGenerator.MagicNumber.WH, new MklRandomNumberInitialConditions.Descriptor(), MklResources.WichmannHill, RandomNumberSequence.SplittingApproach.LeapFrog | RandomNumberSequence.SplittingApproach.SkipAhead, 273, this); MT19937 = new MklPseudoRandomNumberGenerator("MT19937_mkl", (int)MklPseudoRandomNumberGenerator.MagicNumber.MT19937, new MklRandomNumberInitialConditions.Descriptor(), MklResources.MT19937, RandomNumberSequence.SplittingApproach.None, 1, this); MT2203 = new MklPseudoRandomNumberGenerator("MT2203_mkl", (int)MklPseudoRandomNumberGenerator.MagicNumber.MT2203, new MklRandomNumberInitialConditions.Descriptor(), MklResources.MT2203, RandomNumberSequence.SplittingApproach.None, 6024, this); Sobol = new MklQuasiRandomNumberGenerator("Sobol_mkl", (int)MklQuasiRandomNumberGenerator.MagicNumber.Sobol, new MklRandomNumberInitialConditions.Descriptor(), MklResources.Sobol, RandomNumberSequence.SplittingApproach.LeapFrog | RandomNumberSequence.SplittingApproach.SkipAhead, this); Niederreiter = new MklQuasiRandomNumberGenerator("Niederreiter_mkl", (int)MklQuasiRandomNumberGenerator.MagicNumber.Niederreiter, new MklRandomNumberInitialConditions.Descriptor(), MklResources.Niederreiter, RandomNumberSequence.SplittingApproach.LeapFrog | RandomNumberSequence.SplittingApproach.SkipAhead, this); }
public IGenerator CreateModelGenerator(IHsmModel model, IPseudoRandomNumberGenerator pRnGenerator) { switch (model.Type) { case ModelType.HsmFergusonModel: { return(new HsmFergusonModelGenerator((HsmFergusonModel)model, pRnGenerator)); } case ModelType.HsmQpModel: { return(new HsmQpModelGenerator((HsmQpModel)model, pRnGenerator)); } default: { throw new NotImplementedException("ModelType is not supported"); } } }
public ProbabilityHandler(IPseudoRandomNumberGenerator generator) { this.generator = generator; }
protected AbstractHsmModelGenerator(T model, IPseudoRandomNumberGenerator pRnGenerator) { Model = model; ProbabilityHandler = new ProbabilityHandler(pRnGenerator); }
public HsmFergusonModelGenerator(HsmFergusonModel model, IPseudoRandomNumberGenerator pRnGenerator) : base(model, pRnGenerator) { }