REVIEW 2 major objections 4 minor 19 references
Practical Computations of the Mertens Function: $M(10^{24})$ and $M(10^{25})$
T0 review · 2 major / 4 minor · reviewed 2026-07-09 · glm-5.2
Pith's one-line read Mertens function computed at 10^25, extending record by 100x
desk verdict New computational records M(10^24) and M(10^25), honestly scoped with extensive but not fully independent validation. read the letter →
The pith
A machine-rendered reading of the paper's core claim, the machinery that carries it, and where it could break.
The reading
What carries the argument
The classical O(x^{2/3+epsilon}) combinatorial identity (Theorem 3.1), implemented with inclusion-exclusion reductions (Lemma 4.1), a parallel bucket scheduler for large primes, compressed Mertens storage with stride-H coarse and byte-residual arrays, and a second-order quotient predictor that replaces integer division with multiply-and-correct.
What would settle it
A fully independent computation of M(10^24) or M(10^25) using different code, algorithm, or hardware that yields a different value. Short of that, a failure in any of the validation checks (parity, analytic estimate, recovered intermediate values, direct S2 recomputation) would signal an error.
Extended reading notes
Core claim
The central result is a pair of concrete values: M(10^24) = 7,189,337,839 and M(10^25) = -258,560,632,948. These are obtained by applying the classical O(x^{2/3+epsilon}) combinatorial identity of Lehman, Deleglise-Rivat, and Kuznetsov, but with engineering optimizations that make the method competitive at scales where an asymptotically superior algorithm (Helfgott-Thompson, O(x^{3/5})) was expected to dominate. The key implementation mechanisms are: (1) inclusion-exclusion reductions that restrict summation indices to odd or coprime-to-6 values and cancel paired terms, reducing the total summand count by a factor of about 2.5; (2) a parallel bucket scheduler that carries large primes across
Load-bearing premise
The correctness of the reported values depends on the absence of bugs in the optimized inclusion-exclusion reductions, quotient predictor, and compressed Mertens storage at scales that cannot be fully independently verified. The validation is cumulative rather than a full independent rerun, and the least directly tested piece is the full S1 sum for the largest evaluations, where an independent recomputation would require a separate Mertens table up to the sieve bound u.
Editorial extensions
If this is right
- The values M(10^24) and M(10^25) provide new data points for studying the growth and oscillation of M(x), which is directly tied to the Riemann hypothesis through the equivalence M(x) = O(x^{1/2+epsilon}) iff RH.
- The sign change from positive at 10^24 to strongly negative at 10^25 (with M(10^25)/sqrt(10^25) approximately -0.026) adds to the empirical picture of how M(x) behaves relative to the sqrt(x) bound relevant to the Mertens conjecture (disproved in theory but never with an explicit counterexample).
- The bucket scheduler and compressed storage techniques may transfer to other summatory-function computations that require segmented sieving and noncontiguous lookups, such as prime counting or divisor-sum computations.
- The finding that the classical algorithm outperforms the asymptotically superior Helfgott-Thompson method on the tested hardware (by a factor of 3.7 at projected 10^25) illustrates that practical crossover points for asymptotic improvements can be far beyond reachable scales, depending on hardware characteristics.
Reading between the lines
- The negative value at 10^25 with magnitude about 2.6 * 10^11, combined with sqrt(10^25) = 10^12.5, gives |M(10^25)|/sqrt(10^25) approximately 0.082, which remains well below 1. This is consistent with (though not evidence for) the Riemann hypothesis, and far from the explicit counterexample range for the Mertens conjecture.
- The per-decade timing ratios of approximately 4.8-4.9 (slightly above the theoretical 10^{2/3} = 4.64) suggest that with current hardware, reaching M(10^26) would take roughly 170 days and M(10^27) would take about 2-3 years, making the next two decades feasible but increasingly demanding.
- The cumulative validation strategy, where no single check fully independently verifies the largest computation, could be strengthened if an independent group implemented the Helfgott-Thompson algorithm to 10^24 or 10^25, providing a genuinely independent cross-check at the record scale.
Editorial analysis
A structured set of objections, weighed in public.
Referee Report
Summary. This paper reports computations of $M(10^{24}) = 7{,}189{,}337{,}839$ and $M(10^{25}) = -258{,}560{,}632{,}948$, extending the previous record of $M(10^{23})$ (Helfgott-Thompson, 2023) by two orders of magnitude. The method is the classical $O(x^{2/3+epsilon})$ combinatorial identity (Theorem 3.1), implemented with several engineering optimizations: inclusion-exclusion reductions on the $S_1$ and $S_2$ sums (Section 4), a parallel bucket scheduler for large primes in the segmented sieve (Section 5.3), compressed Mertens storage (Section 5.5), and a division-free quotient predictor (Section 7.1). The standalone sieve computes all Mertens values through $10^{16}$ in 7.4 days, a substantial improvement over the author's prior 7.5-month computation. An optimized Helfgott-Thompson implementation (~4x faster than the original) is also presented as a practical comparison. Section 9 provides extensive validation, including reproduction of known values, parity checks through $10^{25}$, analytic sanity checks, recovered intermediate values (900 sampled, all agreed), and direct checks on the largest $S_2$ evaluations. The code is publicly released.
Significance. The paper reports new record values of the Mertens function at $10^{24}$ and $10^{25}$, a substantial computational milestone. The inclusion-exclusion reductions (Section 4) and bucket scheduler (Section 5.3) are significant engineering contributions that yield measurable speedups (Tables 3-4). The quotient predictor (Section 7.1, Appendix A) is a nice practical optimization with a clean heuristic analysis. The optimized Helfgott-Thompson implementation provides a useful independent cross-check at smaller scales (Table 7). The public code release (Section 11) and the honest, detailed validation discussion (Section 9, especially 9.9) are commendable. The paper is upfront about the scope and limitations of its validation, which is appropriate for a computational record paper.
major comments (2)
- [Section 9.8] The S1 validation uses a surrogate function M_proxy(t) instead of real Mertens data, meaning the interaction between compressed Mertens storage (Section 5.5) and the S1 hot loop is never tested end-to-end at the largest scales. The paper acknowledges this gap honestly in Section 9.9. This is the single most important correctness risk for the central claim. While the sieve is independently verified up to 10^16 (Section 9.1), the sieve bound for M(10^25) is u = 1.37 x 10^16, extending ~37% beyond that verified range. A bug in compressed storage indexing, residual arithmetic, or coarse-array boundary handling that manifests only for arguments in [10^16, 1.37 x 10^16] or only under the S1 access pattern would not be caught by any current check. The paper should more prominently flag this as the primary residual risk to the reported values, and ideally discuss what a feasible independent end-
- [Section 9.3] The verification runs at x-r (with r near 10^7) use different tuning parameters (f_x=0.7, c_x=1.6 vs. the record f_x=0.75, c_x=1.5), which is good practice. However, the paper correctly notes that since r is small relative to x, many quotients in M(x) and M(x-r) are identical. It would strengthen the validation if the paper quantified the overlap: what fraction of the S1 and S2 summands differ between the M(x) and M(x-r) computations? If the overlap is, say, 99%, the check is much weaker than it appears. If the overlap is 50%, it is a meaningful independent test. A brief estimate would help the reader calibrate the strength of this check.
minor comments (4)
- [Section 9.8] The S1 validation surrogate M_proxy(t) is described clearly, but the paper could note more explicitly that this test validates the summation machinery (quotient streams, parity-2 indexing, split points, accumulation) but not the data pathway from compressed storage. The current phrasing in Section 9.9 is honest but could be sharper about this specific distinction.
- [Section 6.1] The parameter f_x is described as decreasing linearly in log_10(x) from 1.05 at x<=10^16 to 0.75 at x=10^22, then held fixed. It would help to state the explicit formula for f_x(x) in this transition region for reproducibility.
- [Table 2] The asterisk on the 10^25 ratio (4.94*) is explained in the text, but a footnote on the table itself referencing the explanation would improve clarity for readers who scan tables independently.
- [Appendix A, Proposition A.1] The heuristic model treats fractional parts as locally uniform. The measured correction frequencies in Table 1 (e.g., 0.0071% for correction -1 at 10^25) agree well with the x^{-1/6} prediction. It would be informative to also show the predicted absolute frequencies alongside the measured ones, rather than only the percentages, to let the reader verify the scaling directly.
Simulated Author's Rebuttal
We thank the referee for a careful and constructive report. The two major comments are addressed below. Both point to genuine gaps in the validation, and we will revise the manuscript accordingly.
read point-by-point responses
-
Referee: [Section 9.8] The S1 validation uses a surrogate function M_proxy(t) instead of real Mertens data, meaning the interaction between compressed Mertens storage (Section 5.5) and the S1 hot loop is never tested end-to-end at the largest scales. The paper acknowledges this gap honestly in Section 9.9. This is the single most important correctness risk for the central claim. While the sieve is independently verified up to 10^16 (Section 9.1), the sieve bound for M(10^25) is u = 1.37 x 10^16, extending ~37% beyond that verified range. A bug in compressed storage indexing, residual arithmetic, or coarse-array boundary handling that manifests only for arguments in [10^16, 1.37 x 10^16] or only under the S1 access pattern would not be caught by any current check. The paper should more prominently flag this as the primary residual risk to the reported values, and ideally discuss what a feasible独立端
Authors: The referee is correct that the S1 surrogate test (Section 9.8) does not exercise the compressed Mertens storage with real data, and that the sieve bound u = 1.37 × 10^16 for the M(10^25) computation extends approximately 37% beyond the 10^16 endpoint independently verified against the data from [8]. This is indeed the primary residual correctness risk for the reported values, and we agree it should be flagged more prominently. In the revised manuscript, we will expand Section 9.9 to state explicitly that the end-to-end interaction between compressed Mertens storage and the S1 hot loop at arguments in [10^16, 1.37 × 10^16] is the single most important untested path, and we will move this discussion to a more visible location (likely a dedicated paragraph at the end of Section 9, or a prominent remark within Section 9.9). Regarding feasible independent end-to-end checks: the most direct approach would be to extend the standalone sieve verification beyond 10^16 to cover the full sieve bound u, which is feasible in approximately 2–3 additional days of computation on the record machine (extrapolating from Table 5, the sieve from 10^16 to 1.37 × 10^16 is roughly 37% of the 7.4-day full run to 10^16). We will add a discussion of this option, noting that it would close the gap by providing independently verified Mertens values throughout the full range accessed by S1. We will also note that the compressed storage code path is exercised with real data during the Phase 1 computation (up to ν_x ≈ 5 × 10^12 for x = 10^25), where the 16-bit and 32-bit coarse arrays are used, and that the 900 recovered intermediate values (Section 9.7) include 400 arguments between 10^16 and 10^17, providing some coverage of the extended range—though through a different code path than the S1 hotloop revision: yes
-
Referee: [Section 9.3] The verification runs at x-r (with r near 10^7) use different tuning parameters (f_x=0.7, c_x=1.6 vs. the record f_x=0.75, c_x=1.5), which is good practice. However, the paper correctly notes that since r is small relative to x, many quotients in M(x) and M(x-r) are identical. It would strengthen the validation if the paper quantified the overlap: what fraction of the S1 and S2 summands differ between the M(x) and M(x-r) computations? If the overlap is, say, 99%, the check is much weaker than it appears. If the overlap is 50%, it is a meaningful independent test. A brief estimate would help the reader calibrate the strength of this check.
Authors: This is a fair point. We will add a quantitative estimate of the overlap to Section 9.3. The key observation is that the quotients ⌊x/n⌋ and ⌊(x−r)/n⌋ agree whenever n does not divide the difference r, which has at most d(r) ≪ r divisors. For the S2 sum, the inner summation index j runs up to ν_y ≈ c_x √y, and the quotients ⌊y/j⌋ change only when j crosses a divisor of r. Since r ≈ 10^7 and ν_y ≈ 1.5 × 10^12 for x = 10^25, the fraction of j-values where the quotient changes is approximately d(r)/ν_y, which is on the order of 10^−4. For the S1 sum, the outer indices k run up to N = ⌊x/u⌋ ≈ 7.3 × 10^8, and the arguments y = x/k and y' = (x−r)/k differ by r/k. The quotients ⌊y/n⌋ within each S1 evaluation change only for n dividing r/k, so the overlap is again very high—on the order of 99% or more for the individual summands. We will state this estimate explicitly and acknowledge that the check is therefore weaker than it appears: its main value lies in perturbing the endpoint, summation boundaries, and terminal interval (computed independently in Mathematica), rather than in exercising a substantially different set of summands. We will also note that the different tuning parameters (f_x = 0.7, c_x = 1.6) change the sieve bound and split points, so the internal structure of each S(y, u) evaluation differs even when the quotients coincide, providing some additional perturbation beyond the quotient overlap. revision: yes
Circularity Check
No significant circularity; the derivation is self-contained and the key validation is independent.
full rationale
The paper's central derivation chain is: (1) the standard identity Σ_{n≤x} M(x/n) = 1 (attributed to Lehman [12], 1960), (2) Möbius inversion yielding Theorem 3.1, (3) inclusion-exclusion reductions from Lemma 4.1, and (4) implementation. Each step is derived from first principles within the paper or from standard, externally attributed results. The tuning parameters f_x and c_x (Section 6.1) are empirical performance constants chosen by timing sweeps — they affect runtime, not the mathematical output. The self-citation to [8] (the author's 2018 paper) is used for implementation heritage (byte-logarithm encoding, stencil) and comparison data, not as a load-bearing mathematical premise. The critical validation at 10^23 is checked against [6] (Helfgott-Thompson, different authors, different algorithm), which is genuine independent verification. The analytic sanity check (Section 9.5) uses the explicit formula with zeta zeros — independent mathematics. The parity check (Section 9.4) uses a different formula entirely. The S1 surrogate test gap (Section 9.8–9.9) is honestly acknowledged as a validation limitation, not a circularity. No step in the derivation chain reduces to its own inputs by construction. The score of 1 reflects the minor self-citation to [8] for comparison data and implementation lineage, which is normal and not load-bearing for the mathematical correctness of the result.
Assumptions & free parameters
free parameters (6)
- f_x (sieve bound factor) =
1.05 at x<=10^16, decreasing linearly to 0.75 at x=10^22, fixed beyond
- c_x (split point coefficient) =
1.5
- H (compressed Mertens stride) =
256
- L (sub-segment length) =
887040
- B (number of buckets) =
512
- HT tuning: v, C, D =
v=floor(x^{2/5})/2, C=42, D=16
assumptions (4)
- standard math The identity sum_{n<=x} M(x/n) = 1 (Lehman's identity, Section 3)
- standard math Generalized Möbius inversion applied to the grouped identity (Theorem 3.1)
- domain assumption The Möbius function mu(n) is correctly defined and computed by the byte-encoded sieve
- domain assumption The Ng heuristic for max |M(t+H)-M(t)| over blocks of length H remains valid at the scales used
Cite this review
Pith. "Pith review of Practical Computations of the Mertens Function: $M(10^{24})$ and $M(10^{25})$." pith.science (2026). https://pith.science/paper/M6NICBEB
@misc{pith2026260707566,
author = {Pith},
title = {Pith review of: Practical Computations of the Mertens Function: $M(10^24)$ and $M(10^25)$},
year = {2026},
howpublished = {\url{https://pith.science/paper/M6NICBEB}},
note = {Machine review of arXiv:2607.07566}
}
abstract
The Mertens function is defined as $M(x)=\sum_{n\leq x}\mu(n)$, where $\mu(n)$ is the M\"obius function. This paper describes a practical implementation of the classical $O(x^{2/3+\varepsilon})$ algorithm for computing $M(x)$ at isolated values, together with the segmented M\"obius and Mertens sieve on which it relies. The implementation was used to compute $M(10^{24}) = 7189337839$ and $M(10^{25}) = -258560632948$, taking $7.0$ days and $34.6$ days, respectively. These computations extend the previous record of $M(10^{23})$ by two orders of magnitude. Run standalone, the segmented sieve computed all Mertens values through $10^{16}$ in approximately $7.4$ days, compared with the $7.5$-month runtime of the author's 2018 computation. In pursuit of the most practical isolated-value method, an optimized implementation of the asymptotically faster Helfgott-Thompson algorithm is also presented, running roughly four times faster than the original implementation. With both implementations optimized, the choice between methods depends on input size and hardware. The contribution is a reproducible computation and implementation study, rather than a new asymptotic algorithm.
Figures
Reference graph
Works this paper leans on
-
[1]
H. Cohen and F. Dress,Calcul num´ erique deM(x) Rapport de l’ATP A12311 “Informatique 1975”, CNRS (1979) 1 – 13
work page 1975
-
[2]
M. Del´ eglise and J. Rivat,Computing the summation of the M¨ obius functionExp. Math.5 (1996) 291 – 295
work page 1996
-
[3]
Dress,Fonction sommatoire de la fonction de M¨ obius, 1
F. Dress,Fonction sommatoire de la fonction de M¨ obius, 1. Majorations exp´ erimentales Exp. Math.2(1993) 89 – 98
work page 1993
-
[4]
T. Granlund and P. Montgomery,Division by invariant integers using multiplicationPro- ceedings of the ACM SIGPLAN 1994 Conference on Programming Language Design and Implementation, 1994
work page 1994
-
[5]
H. A. Helfgott,An improved sieve of EratosthenesMath. Comp.89(2020) 333 – 350
work page 2020
-
[6]
H. A. Helfgott and L. Thompson,Summingµ(n): a faster elementary algorithmRes. Number Theory9(2023), no. 1, Paper No. 6
work page 2023
-
[7]
Computing $\pi(N)$: An elementary approach in $\tilde{O}(\sqrt{N})$ time
D. Hirsch, I. Kessler, and U. Mendlovic,Computingπ(N): an elementary approach in eO( √ N) timearXiv:2212.09857 [math.NT] (2023)
work page Pith review arXiv 2023
-
[8]
Greg Hurst,Computations of the Mertens function and improved bounds on the Mertens conjectureMath. Comp.87(2018) 1013 – 1028
work page 2018
Show all 19 references
-
[9]
Kotnik and J
T. Kotnik and J. van de Lune,Further systematic computations on the summatory function of the M¨ obius functionReport MAS-R0313, CWI Amsterdam (November 2003)
2003
-
[10]
Eugene Kuznetsov,Computing the Mertens function on a GPUarXiv:1108.0135 [math.NT] (2011)
2011 arXiv
-
[11]
J. C. Lagarias and A. M. Odlyzko,Computingπ(x): an analytic methodJ. Algorithms8 (1987) 173 – 191
1987
-
[12]
R. S. Lehman,On Liouville’s functionMath. Comp.14(1960) 311 – 320
1960
-
[13]
W. M. Lioen and J. van de Lune,Systematic computations on Mertens’ conjecture and Dirichlet’s divisor problem by vectorized sievingFrom Universal Morphisms to Megabytes: a Baayen Space Odyssey, CWI Amsterdam (1994) 421 – 432
1994
-
[14]
Mertens, ¨Uber eine zahlentheoretische FunktionSitzungsberichte Akad
F. Mertens, ¨Uber eine zahlentheoretische FunktionSitzungsberichte Akad. Wiss. Wien IIa 106(1897) 761 – 830
-
[15]
Neubauer,Eine empirische Untersuchung zur Mertensschen FunktionNumer
G. Neubauer,Eine empirische Untersuchung zur Mertensschen FunktionNumer. Math.5 (1963) 1 – 13
1963
-
[16]
London Math
Nathan Ng,The distribution of the summatory function of the M¨ obius functionProc. London Math. Soc.89(2004) 361 – 389
2004
-
[17]
A. M. Odlyzko and H. J. J. te Riele,Disproof of the Mertens conjectureJ. Reine Angew. Math.357(1985) 138 – 160
1985
-
[18]
R. D. von Sterneck,Empirische Untersuchung ¨ uber den Verlauf der zahlentheoretischen Funk- tionσ(n) = Pn x=1 µ(x)im Intervalle von 0 bis 150 000Sitzungsberichte Akad. Wiss. Wien IIa106(1897) 835 – 1024
-
[19]
R. D. von Sterneck,Neue empirische Daten ¨ uber die zahlentheoretische Funktionσ(n) Proc. 5th International Congress of Mathematicians, vol. 1, Cambridge University Press (1913) 341 – 343. Bedford, New Hampshire Email address:ghurst588@gmail.com
1913
Reviewed July 9, 2026 · model on record in the stance chip above.
Discussion (0). Continue with ORCID to comment.