예제 #1
0
 public PrimeCountingMod2Odd(int threads)
 {
     this.threads = threads;
     var count = Math.Max(threads, 1);
     hyperbolicSum = new IDivisorSummatoryFunction<UInt128>[count];
     for (var i = 0; i < count; i++)
         hyperbolicSum[i] = new DivisorSummatoryFunctionOdd(0, true);
     hyperbolicSumParallel = new DivisorSummatoryFunctionOdd(threads, true);
 }
예제 #2
0
 public PrimeCountingMod3Odd(int threads, bool simple)
 {
     this.threads = threads;
     this.simple = simple;
     t3Map = new Dictionary<BigInteger, BigInteger>();
     var count = Math.Max(threads, 1);
     hyperbolicSum = new IDivisorSummatoryFunction<BigInteger>[count];
     for (var i = 0; i < count; i++)
     {
         if (simple)
             hyperbolicSum[i] = new DivisionFreeDivisorSummatoryFunction(0, false, true);
         else
             hyperbolicSum[i] = new DivisorSummatoryFunctionOdd(0, false);
     }
 }