Example #1
0
        public static void PrintNonTrivialZeros_twoThreeDecisions(int maxZ)
        {
            int digits = maxZ > 1000000 ? 0 : maxZ.ToString().Length + 1;             //Add 1 to be safe

            foreach (long nonTrivialZero in TwoThreeDecisionZFinder.GetNonTrivialZeros(max: maxZ))
            {
                Console.WriteLine(nonTrivialZero.ToString().PadLeft(digits));
            }

            Console.WriteLine("Done from 1 to " + maxZ + ".");
        }
Example #2
0
        public static void PrintTwoThreeExpansionRegister(int maxZ)
        {
            var expansionRegister = TwoThreeDecisionZFinder.GetExpansionRegister(max: maxZ);

            for (int i = 0; i < expansionRegister.Length; i++)
            {
                Console.WriteLine(
                    i.ToString().PadLeft(8)
                    + ":" +
                    //Convert.ToString(MathUtils.NumberOfSetBits(expansionRegister[i]), 10).PadLeft(0, '0')
                    Convert.ToString(expansionRegister[i], 2).PadLeft(32, '0')
                    );
            }
        }
Example #3
0
        public static void PrintExpansionCounts_twoThreeDecisions(int maxZ)
        {
            int digits = maxZ > 1000000 ? 0 : maxZ.ToString().Length + 1;             //Add 1 to be safe

            var monitorer = new System.Threading.Timer(
                callback: (e) => {
                Console.Error.Write(TwoThreeDecisionTracker.GlobalRepeatedDoublingOpsDone + " ");
            },
                state: null,
                dueTime: TimeSpan.Zero,
                period: TimeSpan.FromSeconds(10)
                );

            var expansionCounts = (
                maxZ < 100000001
                                ? TwoThreeDecisionZFinder.GetExpansionCounts_twoThreeDecisions(maxZ).AsEnumerable()
                                : TwoThreeDecisionZFinder.GetExpansionCounts_twoThreeDecisions_chunkedArray(maxZ).AsEnumerable()
                );

            monitorer.Dispose();

            StringBuilder sb = new StringBuilder(capacity: 8192);

            if (maxZ < 10000000)
            {
                int i = 1;
                foreach (int expCount in expansionCounts.Skip(1))
                {
                    sb.Append(i.ToString().PadLeft(digits));
                    sb.Append(":");
                    sb.AppendLine(expCount.ToString().PadLeft(digits));

                    if (sb.Length > 8000)
                    {
                        Console.Write(sb.ToString());
                        sb.Clear();
                    }

                    i++;
                }
            }
            else
            {
                foreach (int expCount in expansionCounts.Skip(1))
                {
                    sb.AppendLine(expCount.ToString());

                    if (sb.Length > 8000)
                    {
                        Console.Write(sb.ToString());
                        sb.Clear();
                    }
                }
            }

            //	int[] expansionCounts = GetExpansionCounts_binaryDecisions(maxZ);
            //
            //	StringBuilder sb = new StringBuilder(capacity: 8192);
            //
            //	for (int i = 1; i < expansionCounts.Length; i++) {
            //		sb.Append(i.ToString().PadLeft(digits));
            //		sb.Append(":");
            //		sb.AppendLine(expansionCounts[i].ToString().PadLeft(digits));
            //		//sb.Append(i);
            //		//sb.Append(":");
            //		//sb.Append(expansionCounts[i]);
            //		//sb.AppendLine();
            //
            //		if (sb.Length > 8000) {
            //			Console.Write(sb.ToString());
            //			sb.Clear();
            //		}
            //	}

            Console.Write(sb.ToString());
        }