public void RandomSeedingLCSize() { using (var r = MpirRandom.LinearCongruential(128)) { uint seed = 12345789; uint max = 10000000; uint bits = 62; uint expected1 = 8017343; uint expected2 = 2122346; var expected3 = Platform.Ui(1653945017297503111, 4060840839); TestRandom(r, seed, x => { Assert.AreEqual(expected1, x.GetLimb(max)); Assert.AreEqual(expected2, x.GetLimb(max)); Assert.AreEqual(expected3, x.GetLimbBits(bits)); }); } }
public void RandomSeedingLC() { uint seed = 12345789; uint max = 10000000; uint bits = 62; var expected1 = Platform.Ui(6524662, 5635868); var expected2 = Platform.Ui(5428780, 5488683); var expected3 = Platform.Ui(4189233241027086562, 278391078); var c = Platform.Ui(98570948725939831, 985709487); using (var a = new HugeInt("5209384572093847098342590872309452304529345409827509283745078")) using (var r = MpirRandom.LinearCongruential(a, c, 256)) { TestRandom(r, seed, x => { Assert.AreEqual(expected1, x.GetLimb(max)); Assert.AreEqual(expected2, x.GetLimb(max)); Assert.AreEqual(expected3, x.GetLimbBits(bits)); }); } }