summaryrefslogtreecommitdiffstats
path: root/src/Mono.Math/PrimeGeneratorBase.cs
diff options
context:
space:
mode:
authorAndrew Arnott <andrewarnott@gmail.com>2011-07-20 07:01:58 -0600
committerAndrew Arnott <andrewarnott@gmail.com>2011-07-20 07:01:58 -0600
commit1328f88a36187d8aa5890a46e35af59c4df04d3f (patch)
treec42a3aad4aa21d39b91dcc87a912f8cb96c22c11 /src/Mono.Math/PrimeGeneratorBase.cs
parentd15895e626b73b6f96f561786b4b5c941c0a4bb1 (diff)
downloadDotNetOpenAuth-1328f88a36187d8aa5890a46e35af59c4df04d3f.zip
DotNetOpenAuth-1328f88a36187d8aa5890a46e35af59c4df04d3f.tar.gz
DotNetOpenAuth-1328f88a36187d8aa5890a46e35af59c4df04d3f.tar.bz2
Splitting up the OpenID profile into OpenID RP and OP. The core OpenID DLL compiles, but the RP and OP ones do not.
Diffstat (limited to 'src/Mono.Math/PrimeGeneratorBase.cs')
-rw-r--r--src/Mono.Math/PrimeGeneratorBase.cs57
1 files changed, 57 insertions, 0 deletions
diff --git a/src/Mono.Math/PrimeGeneratorBase.cs b/src/Mono.Math/PrimeGeneratorBase.cs
new file mode 100644
index 0000000..12b6a69
--- /dev/null
+++ b/src/Mono.Math/PrimeGeneratorBase.cs
@@ -0,0 +1,57 @@
+// <auto-generated />
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+namespace Mono.Math.Prime.Generator {
+
+ //[CLSCompliant(false)]
+ internal abstract class PrimeGeneratorBase {
+
+ public virtual ConfidenceFactor Confidence {
+ get {
+ return ConfidenceFactor.Medium;
+ }
+ }
+
+ public virtual Prime.PrimalityTest PrimalityTest {
+ get {
+ return new Prime.PrimalityTest (PrimalityTests.SmallPrimeSppTest);
+ }
+ }
+
+ public virtual int TrialDivisionBounds {
+ get { return 4000; }
+ }
+
+ /// <summary>
+ /// Performs primality tests on bi, assumes trial division has been done.
+ /// </summary>
+ /// <param name="bi">A BigInteger that has been subjected to and passed trial division</param>
+ /// <returns>False if bi is composite, true if it may be prime.</returns>
+ /// <remarks>The speed of this method is dependent on Confidence</remarks>
+ protected bool PostTrialDivisionTests (BigInteger bi)
+ {
+ return PrimalityTest (bi, this.Confidence);
+ }
+
+ public abstract BigInteger GenerateNewPrime (int bits);
+ }
+}