Pith. sign in

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 →

arxiv 2607.07566 v1 pith:M6NICBEB submitted 2026-07-08 math.NT

classification math.NT MSC 11Y7011A2511N37
keywords MertensfunctionMobiuscombinatorialalgorithmsegmentedsieveinclusion-exclusionbucketschedulerquotientpredictorHelfgott-Thompson
verification ladder T0 review T1 audit T2 compute T3 formal

The pith

A machine-rendered reading of the paper's core claim, the machinery that carries it, and where it could break.

The reading

This paper reports the computation of the Mertens function M(x) at x = 10^24 and x = 10^25, yielding M(10^24) = 7,189,337,839 and M(10^25) = -258,560,632,948. The Mertens function sums the Möbius function mu(n), which is (-1)^k for square-free n with k prime factors and 0 otherwise. Its growth is intimately tied to the Riemann hypothesis: M(x) = O(x^{1/2+epsilon}) is equivalent to RH. The author extends the previous computational record of M(10^23) by two orders of magnitude using the classical O(x^{2/3+epsilon}) algorithm, made practical through inclusion-exclusion reductions that cut summation work by a factor of roughly 2.5, a parallel bucket scheduler for large primes in the sieve, compressed Mertens storage that reduces memory traffic, and a division-free quotient predictor that avoids expensive integer division in the innermost loops. The 10^25 computation took 34.6 days on an M3 Ultra Mac Studio. The paper also presents an optimized implementation of the asymptotically faster Helfgott-Thompson algorithm, running roughly four times faster than the original, and compares the two methods as a hardware-dependent selection problem. The contribution is a reproducible computational record and implementation study, not a new asymptotic algorithm.

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.

Watch

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

Editorial extensions of the paper, not claims the author makes directly.

  • 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.
Share X Bluesky LinkedIn Reddit HN

Editorial analysis

A structured set of objections, weighed in public.

Desk editor's note, referee report, simulated authors' rebuttal, and a circularity audit.

Referee Report

2 major / 4 minor

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)
  1. [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-
  2. [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)
  1. [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.
  2. [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.
  3. [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.
  4. [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

2 responses · 0 unresolved

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
  1. 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

  2. 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

0 steps flagged · score 1.0 of 10

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 6 free parameters · 4 assumptions · 0 invented entities

The paper introduces no new mathematical entities, particles, or forces. The free parameters are empirical tuning constants for performance, not fitted to produce the output values. The axioms are standard number-theoretic identities or domain assumptions about heuristic bounds.

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
    Empirical tuning parameter for the sieve bound u = f_x * (x/log log x)^{2/3}, chosen to balance sieve cost against summation cost on the tested hardware.
  • c_x (split point coefficient) = 1.5
    Empirical tuning parameter for the split point nu_y = floor(c_x * sqrt(y)), shifting work between S1 and S2 components.
  • H (compressed Mertens stride) = 256
    Power-of-two stride for the coarse/residual Mertens storage representation, chosen to balance compression and cache behavior.
  • L (sub-segment length) = 887040
    Chosen so that active sub-segments across threads fit in cache.
  • B (number of buckets) = 512
    Power-of-two number of buckets in the circular buffer for large-prime scheduling.
  • HT tuning: v, C, D = v=floor(x^{2/5})/2, C=42, D=16
    Tuning constants for the optimized Helfgott-Thompson implementation, chosen from timing sweeps on the record machine.
assumptions (4)
  • standard math The identity sum_{n<=x} M(x/n) = 1 (Lehman's identity, Section 3)
    Classical combinatorial identity used as the basis for the isolated-value algorithm. Well-established in the literature.
  • standard math Generalized Möbius inversion applied to the grouped identity (Theorem 3.1)
    Standard number-theoretic technique; the derivation is shown explicitly in the paper.
  • domain assumption The Möbius function mu(n) is correctly defined and computed by the byte-encoded sieve
    The sieve correctness is validated against known data and identities, but the final values at 10^24 and 10^25 depend on the sieve being correct at scales beyond prior verification.
  • domain assumption The Ng heuristic for max |M(t+H)-M(t)| over blocks of length H remains valid at the scales used
    Used to argue that the compressed Mertens residual byte does not overflow. The code checked for overflow through the value of u used at 10^25.

how reviews work

0 comments
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

Figures reproduced from arXiv: 2607.07566 by the authors.

Figure 1
Figure 1. Fraction of runtime spent in each major subroutine [PITH_FULL_IMAGE:figures/full_fig_p015_1.png] view at source ↗
Figure 2
Figure 2. shows the tuning sweep for the factor fx in the sieve bound u, holding cx fixed at 1.5. For decades 109 through 1022, the point marks the fastest tested value of fx, and the band gives the fx values whose runtimes are within 2.5% of the fastest. The final three decades computed are not included in this sweep. Their parameter choices came from smaller local timing tests [PITH_FULL_IMAGE:figures/full_fig_p015_2.png] view at source ↗
Figure 3
Figure 3. Ratio of runtimes at successive powers of 10. In each panel, the horizontal axis is the decade k, and the vertical axis is the ratio T(10k )/T(10k−1 ). The dashed horizontal line is 102/3 ≈ 4.64, the ratio predicted by pure x 2/3 scaling. 8.3. Standalone Sieve. The sieve is also a standalone tool, so it can be timed independently of the isolated-value computation. The standalone run considered here follows [8] by co… view at source ↗

Discussion (0). Continue with ORCID to comment.

Reference graph

Works this paper leans on

19 extracted references · 19 canonical work pages

  1. [1]

    Informatique 1975

    H. Cohen and F. Dress,Calcul num´ erique deM(x) Rapport de l’ATP A12311 “Informatique 1975”, CNRS (1979) 1 – 13

  2. [2]

    Del´ eglise and J

    M. Del´ eglise and J. Rivat,Computing the summation of the M¨ obius functionExp. Math.5 (1996) 291 – 295

  3. [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

  4. [4]

    Granlund and P

    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

  5. [5]

    H. A. Helfgott,An improved sieve of EratosthenesMath. Comp.89(2020) 333 – 350

  6. [6]

    H. A. Helfgott and L. Thompson,Summingµ(n): a faster elementary algorithmRes. Number Theory9(2023), no. 1, Paper No. 6

  7. [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)

  8. [8]

    Comp.87(2018) 1013 – 1028

    Greg Hurst,Computations of the Mertens function and improved bounds on the Mertens conjectureMath. Comp.87(2018) 1013 – 1028

Show all 19 references
  1. [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)

  2. [10]

    Eugene Kuznetsov,Computing the Mertens function on a GPUarXiv:1108.0135 [math.NT] (2011)

  3. [11]

    J. C. Lagarias and A. M. Odlyzko,Computingπ(x): an analytic methodJ. Algorithms8 (1987) 173 – 191

  4. [12]

    R. S. Lehman,On Liouville’s functionMath. Comp.14(1960) 311 – 320

  5. [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

  6. [14]

    Mertens, ¨Uber eine zahlentheoretische FunktionSitzungsberichte Akad

    F. Mertens, ¨Uber eine zahlentheoretische FunktionSitzungsberichte Akad. Wiss. Wien IIa 106(1897) 761 – 830

  7. [15]

    Neubauer,Eine empirische Untersuchung zur Mertensschen FunktionNumer

    G. Neubauer,Eine empirische Untersuchung zur Mertensschen FunktionNumer. Math.5 (1963) 1 – 13

  8. [16]

    London Math

    Nathan Ng,The distribution of the summatory function of the M¨ obius functionProc. London Math. Soc.89(2004) 361 – 389

  9. [17]

    A. M. Odlyzko and H. J. J. te Riele,Disproof of the Mertens conjectureJ. Reine Angew. Math.357(1985) 138 – 160

  10. [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

  11. [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

Pith tools

Reviewed July 9, 2026 · model on record in the stance chip above.