summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdrien Hopkins <adrien.p.hopkins@gmail.com>2025-10-25 11:42:26 -0500
committerAdrien Hopkins <adrien.p.hopkins@gmail.com>2025-10-25 11:42:26 -0500
commitc4adb07093328f71b76e446dc8d3cb6f774f496b (patch)
treedac4e7be3dc347e3fd5851b07be85843f1149dd8
parente795fd9ac18090be45e190055fad618e0cc3f2da (diff)
Add Regular Complexity to Compact View
-rw-r--r--factor_info.go21
1 files changed, 13 insertions, 8 deletions
diff --git a/factor_info.go b/factor_info.go
index a9ffea2..acb082d 100644
--- a/factor_info.go
+++ b/factor_info.go
@@ -161,7 +161,7 @@ func (fi *factorInfo) writeTo(w io.Writer) {
} else {
fmt.Fprint(w, "Prime Regular Complexities: ")
}
- writePRCMap(w, fi.PrimeRegularComplexities)
+ writePRCMap(w, fi.PrimeRegularComplexities, 4)
fmt.Fprintln(w)
if len(fi.DigitMap) > 0 {
writeDigitMap(w, fi.DigitMap)
@@ -169,15 +169,20 @@ func (fi *factorInfo) writeTo(w io.Writer) {
}
func (fi *factorInfo) writeToCompact(w io.Writer) {
- fmt.Fprintf(w, "%d = %s | σ(r)/r: %.2f | r/φ(r): %.2f\n",
- fi.Radix, fi.PrimeFactorization, fi.Score, 1/fi.TotativeRatio)
- fmt.Fprintf(w, "%s | ", typeAbbrev(fi.Type))
+ fmt.Fprintf(w, "%d = %s | σ(r)/r: %.2f | r/φ(r): %.2f | %s\n",
+ fi.Radix, fi.PrimeFactorization, fi.Score, 1/fi.TotativeRatio, typeAbbrev(fi.Type))
+ if fi.LogRegularComplexities {
+ fmt.Fprint(w, "logRC: ")
+ } else {
+ fmt.Fprint(w, "RC: ")
+ }
+ writePRCMap(w, fi.PrimeRegularComplexities, 2)
if fi.MTC != nil {
- fmt.Fprintf(w, "MTC: %d | ", *fi.MTC)
+ fmt.Fprintf(w, " | MTC: %d | ", *fi.MTC)
} else {
low_mtc_est := float32(fi.Radix) * float32(fi.Totient-2)
high_mtc_est := float32(fi.Radix) * float32(fi.Radix-2)
- fmt.Fprintf(w, "%.4g ≤ MTC ≤ %.4g | ", low_mtc_est, high_mtc_est)
+ fmt.Fprintf(w, " | %.4g ≤ MTC ≤ %.4g | ", low_mtc_est, high_mtc_est)
}
fmt.Fprintf(w, "log2: %.2f", fi.Log2)
fmt.Fprintln(w)
@@ -216,7 +221,7 @@ func typeAbbrev(t factors.CompositenessType) string {
}
}
-func writePRCMap(w io.Writer, prcs map[uint]float64) {
+func writePRCMap(w io.Writer, prcs map[uint]float64, precision int) {
var first = true
var primeFactors = make([]uint, 0, len(prcs))
for p := range prcs {
@@ -231,6 +236,6 @@ func writePRCMap(w io.Writer, prcs map[uint]float64) {
fmt.Fprintf(w, ", ")
}
first = false
- fmt.Fprintf(w, "%d: %.4f", p, prcs[p])
+ fmt.Fprintf(w, "%d: %.*f", p, precision, prcs[p])
}
}