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 {
15 public abstract class PrimeGeneratorBase {
17 public virtual ConfidenceFactor Confidence {
20 return ConfidenceFactor.ExtraLow;
22 return ConfidenceFactor.Medium;
27 public virtual Prime.PrimalityTest PrimalityTest {
29 return new Prime.PrimalityTest (PrimalityTests.SmallPrimeSppTest);
33 public virtual int TrialDivisionBounds {
38 /// Performs primality tests on bi, assumes trial division has been done.
40 /// <param name="bi">A BigInteger that has been subjected to and passed trial division</param>
41 /// <returns>False if bi is composite, true if it may be prime.</returns>
42 /// <remarks>The speed of this method is dependent on Confidence</remarks>
43 protected bool PostTrialDivisionTests (BigInteger bi)
45 return PrimalityTest (bi, this.Confidence);
48 public abstract BigInteger GenerateNewPrime (int bits);