public Result(Candidate cand, long msec, long check, long eddms) { this.Cand = cand; this.Ms = msec; this.Crc = check; this.Eddms = eddms; }
void DoTest(Candidate cand, int n, bool showFullValue, bool verbose) { this.watch.Reset(); this.watch.Start(); XInt nFact = cand.GetValue(n); this.watch.Stop(); int checksum = nFact.GetHashCode(); var ms = this.watch.ElapsedMilliseconds; var eddms = XMath.ExactDecimalDigitsPerMillisecond(n, ms); var res = new Result(cand, ms, checksum, eddms); cand.Performance[n] = res; if (verbose) { this.winsole.WriteRed(string.Format( // "\nSUMMARY: Computed the factorial " "\n{0}! = {1}\nAlgorithm used: {2}\nCheckSum: <{3:X}>\nComputation in {4:D} ms.\nDecimal digits per ms {5}.\n", n, XMath.AsymptFactorial(n), cand.Name, checksum, ms, eddms)); } if (showFullValue) { this.winsole.Write(nl + "Now converting to string. Note: It takes longer to convert than to compute!" + nl + nl); this.winsole.WriteLine(nFact.ToString()); } }