2 // Mono.Math.Prime.Generator.PrimeGeneratorBase.cs - Abstract Prime Generator
7 // Copyright (c) 2003 Ben Maurer. All rights reserved
12 namespace Mono.Math.Prime.Generator {
20 abstract class PrimeGeneratorBase {
22 public virtual ConfidenceFactor Confidence {
25 return ConfidenceFactor.ExtraLow;
27 return ConfidenceFactor.Medium;
32 public virtual Prime.PrimalityTest PrimalityTest {
34 return new Prime.PrimalityTest (PrimalityTests.RabinMillerTest);
38 public virtual int TrialDivisionBounds {
43 /// Performs primality tests on bi, assumes trial division has been done.
45 /// <param name="bi">A BigInteger that has been subjected to and passed trial division</param>
46 /// <returns>False if bi is composite, true if it may be prime.</returns>
47 /// <remarks>The speed of this method is dependent on Confidence</remarks>
48 protected bool PostTrialDivisionTests (BigInteger bi)
50 return PrimalityTest (bi, this.Confidence);
53 public abstract BigInteger GenerateNewPrime (int bits);