<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>thepragmaticquant — driftbound</title><description>Forward-error bounds for the matrix profile&apos;s streaming inner product — machine-checked in Lean and Coq, validated to a real earthquake record.</description><link>https://thepragmaticquant.com/</link><item><title>Thirty-one papers, zero error analyses</title><link>https://thepragmaticquant.com/thirty-one-papers-zero-error-analyses/</link><guid isPermaLink="true">https://thepragmaticquant.com/thirty-one-papers-zero-error-analyses/</guid><description>A sliding-window inner product updated one product at a time is the streaming similarity engine under motif and anomaly mining — its rounding error grows linearly in stream length, and across thirty-one matrix-profile papers nobody had ever done the forward-error math, or turned the fix into a config knob.</description><pubDate>Fri, 12 Jun 2026 00:00:00 GMT</pubDate><content:encoded>&lt;div class=&quot;tldr&quot;&gt;&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt; — The streaming sliding-window inner-product kernel — the primitive deployed as the matrix profile — updates by subtracting one product and adding one, reusing yesterday’s value forever. Classical analysis says its rounding error grows like &lt;code&gt;O(N·u)&lt;/code&gt; in stream length, and across the entire MP-I..MP-XXXI literature no paper had ever bounded that drift. Measured against a 128-bit oracle on the sweep’s cleanest corpus: naive f64 drift climbs 3.8 decades over 16.7M ticks; at f32, even Kahan–Babuška–Neumaier (KBN) and Ogita–Rump–Oishi compensated summation grow ~3,009× and ~412× on the same data where they are essentially exact at f64. The fix is one line of topology — reseed the carry chain every &lt;em&gt;k&lt;/em&gt; ticks — and it collapses to a closed-form tuning rule you set in a config file: fp64-safe at the default, but silently 43× off at fp32. All 18 anchored cells hold the bound with zero violations, and I keep the row where the fix loses. The math is in a public preprint (&lt;a href=&quot;https://doi.org/10.5281/zenodo.20599315&quot;&gt;doi:10.5281/zenodo.20599315&lt;/a&gt;).&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;Nobody can tell you whether the world’s most-deployed time-series similarity kernel survives a trillion ticks at fp32, on hardware with no fp64 unit — the question has no published answer. The primitive underneath is a sliding-window inner product carried forward one product at a time; it ships as the matrix profile, the engine behind motif discovery, discord detection, and a long line of anomaly-mining systems, across thirty-one papers in its canonical series, MP-I through MP-XXXI. None of them carries a forward-error analysis of the streaming recurrence the deployed kernels actually run. So I did the math, and I started by reading the shipped code.&lt;/p&gt;
&lt;h2 id=&quot;the-kernel-everyone-ships&quot;&gt;The kernel everyone ships&lt;a class=&quot;heading-anchor&quot; href=&quot;#the-kernel-everyone-ships&quot; aria-label=&quot;Link to this section&quot;&gt;¶&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The streaming kernel maintains a sliding-window inner product per row with a rank-one subtract–add update: one operand pair leaves the window, one enters, and the cached value from the previous tick is updated in place.&lt;/p&gt;
&lt;div class=&quot;codeblock&quot;&gt;&lt;div class=&quot;codeblock-head&quot;&gt;&lt;span class=&quot;lang&quot;&gt;text&lt;/span&gt;&lt;button type=&quot;button&quot; class=&quot;copy-btn&quot; data-copy aria-label=&quot;Copy code&quot;&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot; aria-hidden=&quot;true&quot;&gt;&lt;rect width=&quot;14&quot; height=&quot;14&quot; x=&quot;8&quot; y=&quot;8&quot; rx=&quot;2&quot; ry=&quot;2&quot;&gt;&lt;/rect&gt;&lt;path d=&quot;M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;span class=&quot;copy-label&quot;&gt;Copy&lt;/span&gt;&lt;/button&gt;&lt;/div&gt;&lt;pre class=&quot;astro-code astro-code-themes github-light github-dark-default&quot; style=&quot;--shiki-light:#24292e;--shiki-dark:#e6edf3;--shiki-light-bg:#fff;--shiki-dark-bg:#0d1117;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;text&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;# the streaming update, schematically&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;qt = qt_prev - leaving_a * leaving_b + entering_a * entering_b&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;That reuse is the whole story. Every tick commits a rounding error into the accumulator, and because tomorrow’s value is computed from today’s, the error never leaves. The carry chain grows with the stream.&lt;/p&gt;
&lt;p&gt;I audited the deployed implementations at their public release tags to see who actually carries this chain. stumpy@v1.13.0 carries the recurrence indefinitely with only a single per-tick head refresh. go-matrixprofile@v0.2.0 goes to the other extreme and recomputes a full FFT every tick. SCAMP@v4.0.3 and matrixprofile@v1.1.10 are batch-only — no streaming carry at all. Every implementation sits at an extreme; none occupies the middle ground of a periodic full-state reseed, which is the regime the analysis ends up recommending.&lt;/p&gt;
&lt;span class=&quot;marginnote&quot; role=&quot;note&quot;&gt;Release-tag citations rot quietly: a tag gets typed from memory and nothing complains until someone tries to check out code that does not exist. Every tag in this series was verified by re-cloning the repository, checking out the tag, and re-reading the kernel line ranges against the claim.&lt;/span&gt;
&lt;figure class=&quot;full&quot; data-astro-cid-bj3fsypb&gt; &lt;div class=&quot;svgfig svgfig-diagram&quot; role=&quot;img&quot; aria-label=&quot;Carry-retention spectrum: the four deployed kernels pinned on a single axis of carry-chain length the kernel sustains. SCAMP v4.0.3 and matrixprofile v1.1.10 sit at length 0 (batch, no streaming carry); go-matrixprofile v0.2.0 sits near the low end (full FFT recompute every tick, chain length 1); stumpy v1.13.0 sits at the far end (streaming carry kept indefinitely, chain length N). The recommended middle — a periodic full-state reseed with bounded chain length k — is drawn as the visibly-unoccupied band between the clusters.&quot; data-astro-cid-bj3fsypb&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; width=&quot;900&quot; id=&quot;fig-01-carry-spectrum&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot; viewBox=&quot;0 0 900 360&quot; style=&quot;background:transparent;&quot; role=&quot;img&quot; aria-label=&quot;Carry-retention spectrum: deployed matrix-profile kernels cluster at the extremes (batch no-carry, full recompute every tick, carry kept forever) and none occupies the recommended middle of a bounded periodic reseed&quot;&gt;&lt;style&gt;#fig-01-carry-spectrum [fill=&quot;#1a1d23&quot; i]{fill:var(--bg)}#fig-01-carry-spectrum [stroke=&quot;#1a1d23&quot; i]{stroke:var(--bg)}#fig-01-carry-spectrum [fill=&quot;#18181b&quot; i]{fill:var(--bg-panel)}#fig-01-carry-spectrum [stroke=&quot;#18181b&quot; i]{stroke:var(--bg-panel)}#fig-01-carry-spectrum [fill=&quot;#2c2f37&quot; i]{fill:var(--current-line)}#fig-01-carry-spectrum [stroke=&quot;#2c2f37&quot; i]{stroke:var(--current-line)}#fig-01-carry-spectrum [fill=&quot;#f4f5f7&quot; i]{fill:var(--fg)}#fig-01-carry-spectrum [stroke=&quot;#f4f5f7&quot; i]{stroke:var(--fg)}#fig-01-carry-spectrum [fill=&quot;#8a8f98&quot; i]{fill:var(--comment)}#fig-01-carry-spectrum [stroke=&quot;#8a8f98&quot; i]{stroke:var(--comment)}&lt;/style&gt;
  &lt;!--
    DESIGN RATIONALE
    The article&apos;s audit point is positional: every shipped kernel sits at an extreme of one
    axis (carry-chain length sustained), and the recommended bounded-reseed regime is an
    empty gap between two clusters. The diagram makes that one-dimensional axis explicit and
    pins the four implementations with their release tags; the recommended middle is the
    visibly-unoccupied dashed-green band. Reworked from 9-12px to the site&apos;s 16px node-text
    standard: kernel names 16px bold, tags/class labels 14px, axis labels 14px. Boxes are
    sized to their text with compact padding and the four pins are spread to fill the axis
    span, so the frame has no dead bands and the viewBox is the tight content bounding box.
    Okabe-Ito accents (orange = carry/error extreme, green = recommended re-anchor). Surface
    hexes -&gt; CSS vars at inline time by Figure.astro; data accents stay literal by design.
  --&gt;
  &lt;style&gt;
    .ttl   { font-family: var(--mono); font-size: 15px; text-anchor: start;  dominant-baseline: middle; fill: var(--comment); }
    .axlbl { font-family: var(--mono); font-size: 14px; text-anchor: middle; dominant-baseline: middle; fill: var(--comment); }
    .name  { font-family: var(--mono); font-size: 16px; text-anchor: middle; dominant-baseline: middle; font-weight: bold; fill: var(--fg); }
    .tag   { font-family: var(--mono); font-size: 14px; text-anchor: middle; dominant-baseline: middle; fill: #c0c3c8; }
    .clen  { font-family: var(--mono); font-size: 14px; text-anchor: middle; dominant-baseline: middle; fill: var(--comment); }
    .rec   { font-family: var(--mono); font-size: 16px; text-anchor: middle; dominant-baseline: middle; font-weight: bold; fill: #009E73; }
    .recsub{ font-family: var(--mono); font-size: 14px; text-anchor: middle; dominant-baseline: middle; fill: #009E73; }
  &lt;/style&gt;

  &lt;defs&gt;
    &lt;marker id=&quot;cs-arr&quot; markerWidth=&quot;10&quot; markerHeight=&quot;10&quot; refX=&quot;7&quot; refY=&quot;3&quot; orient=&quot;auto&quot;&gt;
      &lt;path d=&quot;M0,0 L0,6 L8,3 z&quot; fill=&quot;#8A8F98&quot;/&gt;
    &lt;/marker&gt;
  &lt;/defs&gt;

  &lt;!-- frame --&gt;
  &lt;rect fill=&quot;#1a1d23&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; x=&quot;10&quot; y=&quot;14&quot; width=&quot;880&quot; height=&quot;332&quot; rx=&quot;8&quot;/&gt;
  &lt;text text-anchor=&quot;start&quot; class=&quot;ttl&quot; x=&quot;26&quot; y=&quot;40&quot;&gt;Carry-retention spectrum — where each shipped kernel sits&lt;/text&gt;

  &lt;!-- the axis --&gt;
  &lt;line stroke=&quot;#8A8F98&quot; stroke-width=&quot;1.5&quot; x1=&quot;60&quot; y1=&quot;186&quot; x2=&quot;840&quot; y2=&quot;186&quot; marker-end=&quot;url(#cs-arr)&quot;/&gt;
  &lt;text text-anchor=&quot;middle&quot; class=&quot;axlbl&quot; x=&quot;96&quot;  y=&quot;210&quot;&gt;length 0&lt;/text&gt;
  &lt;text text-anchor=&quot;middle&quot; class=&quot;axlbl&quot; x=&quot;800&quot; y=&quot;210&quot;&gt;unbounded&lt;/text&gt;
  &lt;text text-anchor=&quot;middle&quot; class=&quot;axlbl&quot; x=&quot;450&quot; y=&quot;240&quot;&gt;carry-chain length the kernel sustains  —&amp;gt;&lt;/text&gt;

  &lt;!-- recommended middle band --&gt;
  &lt;rect fill=&quot;#18181b&quot; stroke=&quot;#009E73&quot; stroke-width=&quot;1.5&quot; stroke-dasharray=&quot;5 3&quot; x=&quot;310&quot; y=&quot;118&quot; width=&quot;320&quot; height=&quot;60&quot; rx=&quot;6&quot;/&gt;
  &lt;text text-anchor=&quot;middle&quot; class=&quot;rec&quot;    x=&quot;470&quot; y=&quot;138&quot;&gt;recommended middle&lt;/text&gt;
  &lt;text text-anchor=&quot;middle&quot; class=&quot;recsub&quot; x=&quot;470&quot; y=&quot;162&quot;&gt;periodic reseed, chain ≤ k&lt;/text&gt;

  &lt;!-- LEFT CLUSTER (length 0) --&gt;
  &lt;!-- SCAMP (above axis) --&gt;
  &lt;line stroke=&quot;#8A8F98&quot; stroke-width=&quot;1.2&quot; x1=&quot;96&quot; y1=&quot;186&quot; x2=&quot;96&quot; y2=&quot;118&quot;/&gt;
  &lt;rect fill=&quot;#18181b&quot; stroke=&quot;#8A8F98&quot; stroke-width=&quot;1.5&quot; x=&quot;36&quot; y=&quot;52&quot; width=&quot;170&quot; height=&quot;74&quot; rx=&quot;5&quot;/&gt;
  &lt;text text-anchor=&quot;middle&quot; class=&quot;name&quot; x=&quot;121&quot; y=&quot;74&quot;&gt;SCAMP&lt;/text&gt;
  &lt;text text-anchor=&quot;middle&quot; class=&quot;tag&quot;  x=&quot;121&quot; y=&quot;94&quot;&gt;v4.0.3&lt;/text&gt;
  &lt;text text-anchor=&quot;middle&quot; class=&quot;clen&quot; x=&quot;121&quot; y=&quot;118&quot;&gt;batch, per-tile&lt;/text&gt;

  &lt;!-- matrixprofile (below axis) --&gt;
  &lt;line stroke=&quot;#8A8F98&quot; stroke-width=&quot;1.2&quot; x1=&quot;170&quot; y1=&quot;186&quot; x2=&quot;170&quot; y2=&quot;254&quot;/&gt;
  &lt;rect fill=&quot;#18181b&quot; stroke=&quot;#8A8F98&quot; stroke-width=&quot;1.5&quot; x=&quot;60&quot; y=&quot;252&quot; width=&quot;260&quot; height=&quot;74&quot; rx=&quot;5&quot;/&gt;
  &lt;text text-anchor=&quot;middle&quot; class=&quot;name&quot; x=&quot;190&quot; y=&quot;270&quot;&gt;matrixprofile&lt;/text&gt;
  &lt;text text-anchor=&quot;middle&quot; class=&quot;tag&quot;  x=&quot;190&quot; y=&quot;294&quot;&gt;v1.1.10&lt;/text&gt;
  &lt;text text-anchor=&quot;middle&quot; class=&quot;clen&quot; x=&quot;190&quot; y=&quot;318&quot;&gt;batch, diagonal sampling&lt;/text&gt;

  &lt;!-- go-matrixprofile recomputes every tick (length 1, below axis) --&gt;
  &lt;line stroke=&quot;#8A8F98&quot; stroke-width=&quot;1.2&quot; x1=&quot;630&quot; y1=&quot;186&quot; x2=&quot;630&quot; y2=&quot;254&quot;/&gt;
  &lt;rect fill=&quot;#18181b&quot; stroke=&quot;#8A8F98&quot; stroke-width=&quot;1.5&quot; x=&quot;500&quot; y=&quot;252&quot; width=&quot;260&quot; height=&quot;74&quot; rx=&quot;5&quot;/&gt;
  &lt;text text-anchor=&quot;middle&quot; class=&quot;name&quot; x=&quot;630&quot; y=&quot;270&quot;&gt;go-matrixprofile&lt;/text&gt;
  &lt;text text-anchor=&quot;middle&quot; class=&quot;tag&quot;  x=&quot;630&quot; y=&quot;294&quot;&gt;v0.2.0&lt;/text&gt;
  &lt;text text-anchor=&quot;middle&quot; class=&quot;clen&quot; x=&quot;630&quot; y=&quot;318&quot;&gt;full FFT recompute / tick&lt;/text&gt;

  &lt;!-- RIGHT END: stumpy carries forever (above axis) --&gt;
  &lt;line stroke=&quot;#E69F00&quot; stroke-width=&quot;1.5&quot; x1=&quot;800&quot; y1=&quot;186&quot; x2=&quot;800&quot; y2=&quot;128&quot;/&gt;
  &lt;rect fill=&quot;#18181b&quot; stroke=&quot;#E69F00&quot; stroke-width=&quot;1.5&quot; x=&quot;690&quot; y=&quot;44&quot; width=&quot;196&quot; height=&quot;94&quot; rx=&quot;5&quot;/&gt;
  &lt;text text-anchor=&quot;middle&quot; class=&quot;name&quot; style=&quot;fill:#E69F00&quot; x=&quot;788&quot; y=&quot;66&quot;&gt;stumpy&lt;/text&gt;
  &lt;text text-anchor=&quot;middle&quot; class=&quot;tag&quot;  x=&quot;788&quot; y=&quot;88&quot;&gt;v1.13.0&lt;/text&gt;
  &lt;text text-anchor=&quot;middle&quot; class=&quot;clen&quot; style=&quot;fill:#E69F00&quot; x=&quot;788&quot; y=&quot;110&quot;&gt;streaming carry,&lt;/text&gt;
  &lt;text text-anchor=&quot;middle&quot; class=&quot;clen&quot; style=&quot;fill:#E69F00&quot; x=&quot;788&quot; y=&quot;130&quot;&gt;kept forever&lt;/text&gt;
&lt;/svg&gt;
&lt;/div&gt; &lt;figcaption data-astro-cid-bj3fsypb&gt;Where each shipped kernel sits on the carry-retention axis. The deployed implementations cluster at the extremes; the bounded periodic-reseed regime the analysis recommends is the empty middle. Release tags verified by re-cloning each repository and checking out the tag.&lt;/figcaption&gt; &lt;details class=&quot;data-table&quot; data-astro-cid-bj3fsypb&gt; &lt;summary data-astro-cid-bj3fsypb&gt;data table&lt;/summary&gt;  &lt;div class=&quot;data-table-scroll&quot; data-astro-cid-bj3fsypb&gt;&lt;table&gt;&lt;tr&gt;&lt;th&gt;implementation&lt;/th&gt;&lt;th&gt;release tag&lt;/th&gt;&lt;th&gt;kernel class&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;stumpy&lt;/td&gt;&lt;td&gt;v1.13.0&lt;/td&gt;&lt;td&gt;streaming carry, kept indefinitely&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;SCAMP&lt;/td&gt;&lt;td&gt;v4.0.3&lt;/td&gt;&lt;td&gt;batch, per-tile, no carry&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;matrixprofile&lt;/td&gt;&lt;td&gt;v1.1.10&lt;/td&gt;&lt;td&gt;batch, diagonal sampling&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;go-matrixprofile&lt;/td&gt;&lt;td&gt;v0.2.0&lt;/td&gt;&lt;td&gt;full FFT recompute per tick&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt; &lt;/details&gt; &lt;/figure&gt; 
&lt;figure class=&quot;full&quot; data-astro-cid-bj3fsypb&gt; &lt;div class=&quot;svgfig svgfig-diagram&quot; role=&quot;img&quot; aria-label=&quot;A rounding error committed at tick t enters the streaming accumulator and is carried through every subsequent tick&apos;s update, compounding for the rest of the stream; an anchored topology periodically reseeds the accumulator from a full dot product, cutting the chain at length k.&quot; data-astro-cid-bj3fsypb&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; width=&quot;900&quot; id=&quot;fig-02-carry-chain&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot; viewBox=&quot;0 0 900 380&quot; style=&quot;background:transparent;&quot; role=&quot;img&quot; aria-label=&quot;Carry chain: unanchored error rides to end of stream; anchored topology cuts the chain every k ticks&quot;&gt;&lt;style&gt;#fig-02-carry-chain [fill=&quot;#1a1d23&quot; i]{fill:var(--bg)}#fig-02-carry-chain [stroke=&quot;#1a1d23&quot; i]{stroke:var(--bg)}#fig-02-carry-chain [fill=&quot;#18181b&quot; i]{fill:var(--bg-panel)}#fig-02-carry-chain [stroke=&quot;#18181b&quot; i]{stroke:var(--bg-panel)}#fig-02-carry-chain [fill=&quot;#2c2f37&quot; i]{fill:var(--current-line)}#fig-02-carry-chain [stroke=&quot;#2c2f37&quot; i]{stroke:var(--current-line)}#fig-02-carry-chain [fill=&quot;#f4f5f7&quot; i]{fill:var(--fg)}#fig-02-carry-chain [stroke=&quot;#f4f5f7&quot; i]{stroke:var(--fg)}#fig-02-carry-chain [fill=&quot;#8a8f98&quot; i]{fill:var(--comment)}#fig-02-carry-chain [stroke=&quot;#8a8f98&quot; i]{stroke:var(--comment)}&lt;/style&gt;
  &lt;!--
    DESIGN RATIONALE
    Two stacked full-width panels contrast the unanchored carry chain (grows to length N)
    against the anchored topology (chain cut every k ticks by a reseed). Each panel is a
    node chain; nodes are sized to their text at the site&apos;s 16px standard (was 12/10px) with
    compact panel padding so the chain FILLS the panel rather than floating in dead space.
    The viewBox is the tight content bounding box. Okabe-Ito accents (orange = carried error,
    green = reseed/fresh chain, blue = discarded). Surface hexes -&gt; CSS vars via Figure.astro.
  --&gt;
  &lt;defs&gt;
    &lt;marker id=&quot;cc-arr&quot; markerWidth=&quot;9&quot; markerHeight=&quot;9&quot; refX=&quot;7&quot; refY=&quot;3&quot; orient=&quot;auto&quot;&gt;
      &lt;path d=&quot;M0,0 L0,6 L8,3 z&quot; fill=&quot;#8A8F98&quot;/&gt;
    &lt;/marker&gt;
    &lt;marker id=&quot;cc-arr-or&quot; markerWidth=&quot;9&quot; markerHeight=&quot;9&quot; refX=&quot;7&quot; refY=&quot;3&quot; orient=&quot;auto&quot;&gt;
      &lt;path d=&quot;M0,0 L0,6 L8,3 z&quot; fill=&quot;#E69F00&quot;/&gt;
    &lt;/marker&gt;
    &lt;marker id=&quot;cc-arr-dash&quot; markerWidth=&quot;9&quot; markerHeight=&quot;9&quot; refX=&quot;7&quot; refY=&quot;3&quot; orient=&quot;auto&quot;&gt;
      &lt;path d=&quot;M0,0 L0,6 L8,3 z&quot; fill=&quot;#56B4E9&quot;/&gt;
    &lt;/marker&gt;
    &lt;marker id=&quot;cc-arr-green&quot; markerWidth=&quot;9&quot; markerHeight=&quot;9&quot; refX=&quot;7&quot; refY=&quot;3&quot; orient=&quot;auto&quot;&gt;
      &lt;path d=&quot;M0,0 L0,6 L8,3 z&quot; fill=&quot;#009E73&quot;/&gt;
    &lt;/marker&gt;
  &lt;/defs&gt;
  &lt;style&gt;
    .t1cc { font-family: var(--mono); font-size: 16px; text-anchor: middle; dominant-baseline: middle; font-weight: bold; fill: var(--fg); }
    .t2cc { font-family: var(--mono); font-size: 14px; text-anchor: middle; dominant-baseline: middle; fill: #c0c3c8; }
    .sectcc { font-family: var(--mono); font-size: 15px; text-anchor: start; dominant-baseline: middle; fill: var(--comment); }
    .elblcc { font-family: var(--mono); font-size: 14px; text-anchor: middle; fill: #56B4E9; dominant-baseline: middle; }
  &lt;/style&gt;

  &lt;!-- ROW 1: Unanchored --&gt;
  &lt;rect fill=&quot;#1a1d23&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; x=&quot;10&quot; y=&quot;14&quot; width=&quot;880&quot; height=&quot;166&quot; rx=&quot;8&quot;/&gt;
  &lt;text text-anchor=&quot;start&quot; class=&quot;sectcc&quot; x=&quot;26&quot; y=&quot;40&quot;&gt;Unanchored — carry chain grows to length N&lt;/text&gt;

  &lt;ellipse fill=&quot;#18181b&quot; stroke=&quot;#E69F00&quot; stroke-width=&quot;1.5&quot; cx=&quot;86&quot; cy=&quot;118&quot; rx=&quot;58&quot; ry=&quot;34&quot;/&gt;
  &lt;text text-anchor=&quot;middle&quot; class=&quot;t2cc&quot; style=&quot;fill:#E69F00&quot; x=&quot;86&quot; y=&quot;103&quot;&gt;error&lt;/text&gt;
  &lt;text text-anchor=&quot;middle&quot; class=&quot;t2cc&quot; style=&quot;fill:#E69F00&quot; x=&quot;86&quot; y=&quot;135&quot;&gt;at tick t&lt;/text&gt;

  &lt;line stroke=&quot;#E69F00&quot; stroke-width=&quot;1.5&quot; x1=&quot;144&quot; y1=&quot;118&quot; x2=&quot;184&quot; y2=&quot;118&quot; marker-end=&quot;url(#cc-arr-or)&quot;/&gt;

  &lt;rect fill=&quot;#18181b&quot; stroke=&quot;#E69F00&quot; stroke-width=&quot;1.5&quot; x=&quot;186&quot; y=&quot;94&quot; width=&quot;118&quot; height=&quot;48&quot; rx=&quot;5&quot;/&gt;
  &lt;text text-anchor=&quot;middle&quot; class=&quot;t1cc&quot; x=&quot;245&quot; y=&quot;118&quot;&gt;acc(t)&lt;/text&gt;

  &lt;line stroke=&quot;#8A8F98&quot; stroke-width=&quot;1.5&quot; x1=&quot;304&quot; y1=&quot;118&quot; x2=&quot;344&quot; y2=&quot;118&quot; marker-end=&quot;url(#cc-arr)&quot;/&gt;

  &lt;rect fill=&quot;#18181b&quot; stroke=&quot;#E69F00&quot; stroke-width=&quot;1.5&quot; x=&quot;346&quot; y=&quot;94&quot; width=&quot;138&quot; height=&quot;48&quot; rx=&quot;5&quot;/&gt;
  &lt;text text-anchor=&quot;middle&quot; class=&quot;t1cc&quot; x=&quot;415&quot; y=&quot;118&quot;&gt;acc(t+1)&lt;/text&gt;

  &lt;line stroke=&quot;#8A8F98&quot; stroke-width=&quot;1.5&quot; x1=&quot;484&quot; y1=&quot;118&quot; x2=&quot;524&quot; y2=&quot;118&quot; marker-end=&quot;url(#cc-arr)&quot;/&gt;

  &lt;rect fill=&quot;#18181b&quot; stroke=&quot;#E69F00&quot; stroke-width=&quot;1.5&quot; x=&quot;526&quot; y=&quot;94&quot; width=&quot;138&quot; height=&quot;48&quot; rx=&quot;5&quot;/&gt;
  &lt;text text-anchor=&quot;middle&quot; class=&quot;t1cc&quot; x=&quot;595&quot; y=&quot;118&quot;&gt;acc(t+2)&lt;/text&gt;

  &lt;line stroke=&quot;#8A8F98&quot; stroke-width=&quot;1.5&quot; x1=&quot;664&quot; y1=&quot;118&quot; x2=&quot;694&quot; y2=&quot;118&quot; marker-end=&quot;url(#cc-arr)&quot;/&gt;

  &lt;text text-anchor=&quot;middle&quot; class=&quot;t1cc&quot; x=&quot;712&quot; y=&quot;120&quot;&gt;···&lt;/text&gt;

  &lt;line stroke=&quot;#8A8F98&quot; stroke-width=&quot;1.5&quot; x1=&quot;726&quot; y1=&quot;118&quot; x2=&quot;752&quot; y2=&quot;118&quot; marker-end=&quot;url(#cc-arr)&quot;/&gt;

  &lt;rect fill=&quot;#18181b&quot; stroke=&quot;#E69F00&quot; stroke-width=&quot;1.5&quot; x=&quot;754&quot; y=&quot;86&quot; width=&quot;124&quot; height=&quot;64&quot; rx=&quot;5&quot;/&gt;
  &lt;text text-anchor=&quot;middle&quot; class=&quot;t1cc&quot; x=&quot;816&quot; y=&quot;110&quot;&gt;acc(N)&lt;/text&gt;
  &lt;text text-anchor=&quot;middle&quot; class=&quot;t2cc&quot; style=&quot;fill:#E69F00&quot; x=&quot;816&quot; y=&quot;132&quot;&gt;error aboard&lt;/text&gt;

  &lt;!-- ROW 2: Anchored --&gt;
  &lt;rect fill=&quot;#1a1d23&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; x=&quot;10&quot; y=&quot;200&quot; width=&quot;880&quot; height=&quot;170&quot; rx=&quot;8&quot;/&gt;
  &lt;text text-anchor=&quot;start&quot; class=&quot;sectcc&quot; x=&quot;26&quot; y=&quot;226&quot;&gt;Anchored — chain cut every k ticks&lt;/text&gt;

  &lt;ellipse fill=&quot;#18181b&quot; stroke=&quot;#8A8F98&quot; stroke-width=&quot;1.5&quot; cx=&quot;86&quot; cy=&quot;306&quot; rx=&quot;58&quot; ry=&quot;34&quot;/&gt;
  &lt;text text-anchor=&quot;middle&quot; class=&quot;t2cc&quot; x=&quot;86&quot; y=&quot;291&quot;&gt;error&lt;/text&gt;
  &lt;text text-anchor=&quot;middle&quot; class=&quot;t2cc&quot; x=&quot;86&quot; y=&quot;323&quot;&gt;at tick t&lt;/text&gt;

  &lt;line stroke=&quot;#8A8F98&quot; stroke-width=&quot;1.5&quot; x1=&quot;144&quot; y1=&quot;306&quot; x2=&quot;184&quot; y2=&quot;306&quot; marker-end=&quot;url(#cc-arr)&quot;/&gt;

  &lt;rect fill=&quot;#18181b&quot; stroke=&quot;#8A8F98&quot; stroke-width=&quot;1.5&quot; x=&quot;186&quot; y=&quot;282&quot; width=&quot;118&quot; height=&quot;48&quot; rx=&quot;5&quot;/&gt;
  &lt;text text-anchor=&quot;middle&quot; class=&quot;t1cc&quot; x=&quot;245&quot; y=&quot;306&quot;&gt;acc(t)&lt;/text&gt;

  &lt;line stroke=&quot;#8A8F98&quot; stroke-width=&quot;1.5&quot; x1=&quot;304&quot; y1=&quot;306&quot; x2=&quot;338&quot; y2=&quot;306&quot; marker-end=&quot;url(#cc-arr)&quot;/&gt;

  &lt;text text-anchor=&quot;middle&quot; class=&quot;t1cc&quot; x=&quot;356&quot; y=&quot;308&quot;&gt;···&lt;/text&gt;

  &lt;line stroke=&quot;#8A8F98&quot; stroke-width=&quot;1.5&quot; x1=&quot;374&quot; y1=&quot;306&quot; x2=&quot;406&quot; y2=&quot;306&quot; marker-end=&quot;url(#cc-arr)&quot;/&gt;

  &lt;!-- reseed hexagon --&gt;
  &lt;polygon fill=&quot;#18181b&quot; stroke=&quot;#009E73&quot; stroke-width=&quot;1.5&quot; points=&quot;440,272 560,272 600,306 560,340 440,340 400,306&quot;/&gt;
  &lt;text text-anchor=&quot;middle&quot; class=&quot;t1cc&quot; style=&quot;fill:#009E73&quot; x=&quot;500&quot; y=&quot;300&quot;&gt;reseed&lt;/text&gt;
  &lt;text text-anchor=&quot;middle&quot; class=&quot;t2cc&quot; style=&quot;fill:#009E73&quot; x=&quot;500&quot; y=&quot;320&quot;&gt;full dot-prod&lt;/text&gt;

  &lt;!-- error discarded (up) --&gt;
  &lt;path stroke=&quot;#56B4E9&quot; stroke-width=&quot;1.5&quot; stroke-dasharray=&quot;5 3&quot; fill=&quot;none&quot; d=&quot;M 500 272 L 500 252&quot; marker-end=&quot;url(#cc-arr-dash)&quot;/&gt;
  &lt;text text-anchor=&quot;middle&quot; class=&quot;elblcc&quot; x=&quot;500&quot; y=&quot;238&quot;&gt;error discarded&lt;/text&gt;
  &lt;ellipse fill=&quot;#18181b&quot; stroke=&quot;#56B4E9&quot; stroke-width=&quot;1&quot; cx=&quot;660&quot; cy=&quot;248&quot; rx=&quot;52&quot; ry=&quot;22&quot;/&gt;
  &lt;text text-anchor=&quot;middle&quot; class=&quot;t2cc&quot; style=&quot;fill:#56B4E9&quot; x=&quot;660&quot; y=&quot;248&quot;&gt;gone&lt;/text&gt;

  &lt;line stroke=&quot;#009E73&quot; stroke-width=&quot;1.5&quot; x1=&quot;600&quot; y1=&quot;306&quot; x2=&quot;664&quot; y2=&quot;306&quot; marker-end=&quot;url(#cc-arr-green)&quot;/&gt;

  &lt;rect fill=&quot;#18181b&quot; stroke=&quot;#009E73&quot; stroke-width=&quot;1.5&quot; x=&quot;666&quot; y=&quot;282&quot; width=&quot;212&quot; height=&quot;48&quot; rx=&quot;5&quot;/&gt;
  &lt;text text-anchor=&quot;middle&quot; class=&quot;t1cc&quot; style=&quot;fill:#009E73&quot; x=&quot;772&quot; y=&quot;300&quot;&gt;fresh chain&lt;/text&gt;
  &lt;text text-anchor=&quot;middle&quot; class=&quot;t2cc&quot; style=&quot;fill:#009E73&quot; x=&quot;772&quot; y=&quot;320&quot;&gt;length ≤ k&lt;/text&gt;
&lt;/svg&gt;
&lt;/div&gt; &lt;figcaption data-astro-cid-bj3fsypb&gt;The carry chain: one rounding error committed at tick t rides inside the accumulator for every remaining tick. Periodic re-anchoring cuts the chain. Schematic of the mechanism — no measured data in this figure (doi:10.5281/zenodo.20599315).&lt;/figcaption&gt;  &lt;/figure&gt; &lt;script type=&quot;module&quot; src=&quot;https://thepragmaticquant.com/vercel/path0/src/components/Figure.astro?astro&amp;type=script&amp;index=0&amp;lang.ts&quot;&gt;&lt;/script&gt;
&lt;h2 id=&quot;what-linear-drift-looks-like&quot;&gt;What linear drift looks like&lt;a class=&quot;heading-anchor&quot; href=&quot;#what-linear-drift-looks-like&quot; aria-label=&quot;Link to this section&quot;&gt;¶&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;I ran the recurrence as a single unbroken carry chain across stream lengths N = 2¹³ to 2²⁴ — past 16.7 million ticks — against a 128-bit MPFR reference oracle (~38 decimal digits), over seven synthetic corpora, 30 seeds each, three accumulator strategies, two precisions. On the cleanest corpus in the sweep — a deterministic linear-congruential walk, which adds no rounding of its own above the accumulator — the naive f64 accumulator climbs roughly 3.8 decades, from 1.75×10⁻¹⁰ to 1.08×10⁻⁶, tracing the predicted O(N·u) envelope. Compensated Kahan–Babuška–Neumaier (KBN) at f64 holds the same chain near the oracle floor — never above 7.5×10⁻⁹. Ogita–Rump–Oishi at f64 is correctly rounded on this corpus: drift identically zero, off the log axis.&lt;/p&gt;
&lt;p&gt;Then the f32 twist. On the same corpus, the Ogita correctly-rounded condition is first crossed around n = 2²⁰ — the exact crossing point depends on a small constant in the condition — and both compensated paths grow near-linearly from there: KBN-f32 grows ~3,009× to 9.27, Ogita-f32 ~412× to 1.27, and naive f32 reaches 1.71×10³. The algorithms did not get worse — the precision tier moved the condition boundary under them. Compensated summation alone cannot arrest the growth once the correctly-rounded condition is crossed, and dropping to f32 crossed it on this data.&lt;/p&gt;
&lt;figure class=&quot;full&quot; data-astro-cid-bj3fsypb&gt; &lt;div class=&quot;svgfig svgfig-chart&quot; role=&quot;img&quot; aria-label=&quot;Log-log chart of measured forward-error drift versus stream length N from 8,192 to 16,777,216 ticks against a 128-bit MPFR oracle, worst case over seven corpora: naive f64 climbs from 3.2e-10 to 1.08e-6, KBN f64 stays flat between 1.16e-10 and 7.45e-9, while naive f32 climbs to 1.71e3 and KBN f32 blows up past n = 2^20 to 9.27.&quot; data-astro-cid-bj3fsypb&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; id=&quot;fig-01-drift-vs-n&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot; xmlns:xlink=&quot;http://www.w3.org/1999/xlink&quot; version=&quot;1.1&quot; class=&quot;marks&quot; width=&quot;713&quot; height=&quot;451&quot; viewBox=&quot;0 0 713 451&quot;&gt;&lt;style&gt;#fig-01-drift-vs-n [fill=&quot;#1a1d23&quot; i]{fill:var(--bg)}#fig-01-drift-vs-n [stroke=&quot;#1a1d23&quot; i]{stroke:var(--bg)}#fig-01-drift-vs-n [fill=&quot;#18181b&quot; i]{fill:var(--bg-panel)}#fig-01-drift-vs-n [stroke=&quot;#18181b&quot; i]{stroke:var(--bg-panel)}#fig-01-drift-vs-n [fill=&quot;#2c2f37&quot; i]{fill:var(--current-line)}#fig-01-drift-vs-n [stroke=&quot;#2c2f37&quot; i]{stroke:var(--current-line)}#fig-01-drift-vs-n [fill=&quot;#f4f5f7&quot; i]{fill:var(--fg)}#fig-01-drift-vs-n [stroke=&quot;#f4f5f7&quot; i]{stroke:var(--fg)}#fig-01-drift-vs-n [fill=&quot;#8a8f98&quot; i]{fill:var(--comment)}#fig-01-drift-vs-n [stroke=&quot;#8a8f98&quot; i]{stroke:var(--comment)}&lt;/style&gt;&lt;rect width=&quot;713&quot; height=&quot;451&quot; fill=&quot;#1a1d23&quot;/&gt;&lt;g fill=&quot;none&quot; stroke-miterlimit=&quot;10&quot; transform=&quot;translate(65,11)&quot;&gt;&lt;g class=&quot;mark-group role-frame root&quot; role=&quot;graphics-object&quot; aria-roledescription=&quot;group mark container&quot;&gt;&lt;g transform=&quot;translate(0,0)&quot;&gt;&lt;path class=&quot;background&quot; aria-hidden=&quot;true&quot; d=&quot;M0.5,0.5h640v400h-640Z&quot;/&gt;&lt;g&gt;&lt;g class=&quot;mark-group role-axis&quot; aria-hidden=&quot;true&quot;&gt;&lt;g transform=&quot;translate(0.5,400.5)&quot;&gt;&lt;path class=&quot;background&quot; aria-hidden=&quot;true&quot; d=&quot;M0,0h0v0h0Z&quot; pointer-events=&quot;none&quot;/&gt;&lt;g&gt;&lt;g class=&quot;mark-rule role-axis-grid&quot; pointer-events=&quot;none&quot;&gt;&lt;line transform=&quot;translate(24,-400)&quot; x2=&quot;0&quot; y2=&quot;400&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(183,-400)&quot; x2=&quot;0&quot; y2=&quot;400&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(342,-400)&quot; x2=&quot;0&quot; y2=&quot;400&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(501,-400)&quot; x2=&quot;0&quot; y2=&quot;400&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(607,-400)&quot; x2=&quot;0&quot; y2=&quot;400&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;/g&gt;&lt;/g&gt;&lt;path class=&quot;foreground&quot; aria-hidden=&quot;true&quot; d=&quot;&quot; pointer-events=&quot;none&quot; display=&quot;none&quot;/&gt;&lt;/g&gt;&lt;/g&gt;&lt;g class=&quot;mark-group role-axis&quot; aria-hidden=&quot;true&quot;&gt;&lt;g transform=&quot;translate(0.5,0.5)&quot;&gt;&lt;path class=&quot;background&quot; aria-hidden=&quot;true&quot; d=&quot;M0,0h0v0h0Z&quot; pointer-events=&quot;none&quot;/&gt;&lt;g&gt;&lt;g class=&quot;mark-rule role-axis-grid&quot; pointer-events=&quot;none&quot;&gt;&lt;line transform=&quot;translate(0,386)&quot; x2=&quot;640&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,331)&quot; x2=&quot;640&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,275)&quot; x2=&quot;640&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,220)&quot; x2=&quot;640&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,165)&quot; x2=&quot;640&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,110)&quot; x2=&quot;640&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,55)&quot; x2=&quot;640&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,0)&quot; x2=&quot;640&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;/g&gt;&lt;/g&gt;&lt;path class=&quot;foreground&quot; aria-hidden=&quot;true&quot; d=&quot;&quot; pointer-events=&quot;none&quot; display=&quot;none&quot;/&gt;&lt;/g&gt;&lt;/g&gt;&lt;g class=&quot;mark-group role-axis&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;axis&quot; aria-label=&quot;X-axis titled &apos;stream length N (ticks)&apos; for a log scale with values from 6,000 to 26,000,000&quot;&gt;&lt;g transform=&quot;translate(0.5,400.5)&quot;&gt;&lt;path class=&quot;background&quot; aria-hidden=&quot;true&quot; d=&quot;M0,0h0v0h0Z&quot; pointer-events=&quot;none&quot;/&gt;&lt;g&gt;&lt;g class=&quot;mark-rule role-axis-tick&quot; pointer-events=&quot;none&quot;&gt;&lt;line transform=&quot;translate(24,0)&quot; x2=&quot;0&quot; y2=&quot;5&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(183,0)&quot; x2=&quot;0&quot; y2=&quot;5&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(342,0)&quot; x2=&quot;0&quot; y2=&quot;5&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(501,0)&quot; x2=&quot;0&quot; y2=&quot;5&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(607,0)&quot; x2=&quot;0&quot; y2=&quot;5&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;/g&gt;&lt;g class=&quot;mark-text role-axis-label&quot; pointer-events=&quot;none&quot;&gt;&lt;text text-anchor=&quot;middle&quot; transform=&quot;translate(23.79900950783776,16)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;12px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;8,192&lt;/text&gt;&lt;text text-anchor=&quot;middle&quot; transform=&quot;translate(182.7228106083368,16)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;12px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;65,536&lt;/text&gt;&lt;text text-anchor=&quot;middle&quot; transform=&quot;translate(341.64661170883585,16)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;12px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;524,288&lt;/text&gt;&lt;text text-anchor=&quot;middle&quot; transform=&quot;translate(500.5704128093349,16)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;12px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;4,194,304&lt;/text&gt;&lt;text text-anchor=&quot;middle&quot; transform=&quot;translate(606.5196135430008,16)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;12px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;16,777,216&lt;/text&gt;&lt;/g&gt;&lt;g class=&quot;mark-rule role-axis-domain&quot; pointer-events=&quot;none&quot;&gt;&lt;line transform=&quot;translate(0,0)&quot; x2=&quot;640&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;/g&gt;&lt;g class=&quot;mark-text role-axis-title&quot; pointer-events=&quot;none&quot;&gt;&lt;text text-anchor=&quot;middle&quot; transform=&quot;translate(320,32)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;13px&quot; font-weight=&quot;bold&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;stream length N (ticks)&lt;/text&gt;&lt;/g&gt;&lt;/g&gt;&lt;path class=&quot;foreground&quot; aria-hidden=&quot;true&quot; d=&quot;&quot; pointer-events=&quot;none&quot; display=&quot;none&quot;/&gt;&lt;/g&gt;&lt;/g&gt;&lt;g class=&quot;mark-group role-axis&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;axis&quot; aria-label=&quot;Y-axis titled &apos;measured forward error |qt_hat - qt|&apos; for a log scale with values from 3e-11 to 1e+4&quot;&gt;&lt;g transform=&quot;translate(0.5,0.5)&quot;&gt;&lt;path class=&quot;background&quot; aria-hidden=&quot;true&quot; d=&quot;M0,0h0v0h0Z&quot; pointer-events=&quot;none&quot;/&gt;&lt;g&gt;&lt;g class=&quot;mark-rule role-axis-tick&quot; pointer-events=&quot;none&quot;&gt;&lt;line transform=&quot;translate(0,386)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,331)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,275)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,220)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,165)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,110)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,55)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,0)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;/g&gt;&lt;g class=&quot;mark-text role-axis-label&quot; pointer-events=&quot;none&quot;&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,389.5984821067169)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;12px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;1e-10&lt;/text&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,334.51298466290024)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;12px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;1e-8&lt;/text&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,279.4274872190835)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;12px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;1e-6&lt;/text&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,224.3419897752668)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;12px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;1e-4&lt;/text&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,169.25649233145012)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;12px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;1e-2&lt;/text&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,114.1709948876334)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;12px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;1e+0&lt;/text&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,59.08549744381672)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;12px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;1e+2&lt;/text&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,4)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;12px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;1e+4&lt;/text&gt;&lt;/g&gt;&lt;g class=&quot;mark-rule role-axis-domain&quot; pointer-events=&quot;none&quot;&gt;&lt;line transform=&quot;translate(0,400)&quot; x2=&quot;0&quot; y2=&quot;-400&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;/g&gt;&lt;g class=&quot;mark-text role-axis-title&quot; pointer-events=&quot;none&quot;&gt;&lt;text text-anchor=&quot;middle&quot; transform=&quot;translate(-47,200) rotate(-90) translate(0,-3)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;13px&quot; font-weight=&quot;bold&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;measured forward error |qt_hat - qt|&lt;/text&gt;&lt;/g&gt;&lt;/g&gt;&lt;path class=&quot;foreground&quot; aria-hidden=&quot;true&quot; d=&quot;&quot; pointer-events=&quot;none&quot; display=&quot;none&quot;/&gt;&lt;/g&gt;&lt;/g&gt;&lt;g class=&quot;mark-group role-scope layer_0_pathgroup&quot; role=&quot;graphics-object&quot; aria-roledescription=&quot;group mark container&quot;&gt;&lt;g transform=&quot;translate(0,0)&quot;&gt;&lt;path class=&quot;background&quot; aria-hidden=&quot;true&quot; d=&quot;M0,0h640v400h-640Z&quot;/&gt;&lt;g&gt;&lt;g class=&quot;mark-line role-mark layer_0_marks&quot; role=&quot;graphics-object&quot; aria-roledescription=&quot;line mark container&quot;&gt;&lt;path aria-label=&quot;n: 8192; drift: 3e-10; series: naive f64&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;line mark&quot; d=&quot;M23.799,371.68L76.774,360.084L129.748,358.359L182.723,350.616L235.697,346.604L288.672,337.474L341.647,334.033L394.621,296.27L447.596,281.92L500.57,293.349L553.545,276.183L606.52,274.503&quot; stroke=&quot;#e69f00&quot; stroke-width=&quot;2&quot; stroke-dasharray=&quot;1,0&quot;/&gt;&lt;/g&gt;&lt;/g&gt;&lt;path class=&quot;foreground&quot; aria-hidden=&quot;true&quot; d=&quot;&quot; display=&quot;none&quot;/&gt;&lt;/g&gt;&lt;g transform=&quot;translate(0,0)&quot;&gt;&lt;path class=&quot;background&quot; aria-hidden=&quot;true&quot; d=&quot;M0,0h640v400h-640Z&quot;/&gt;&lt;g&gt;&lt;g class=&quot;mark-line role-mark layer_0_marks&quot; role=&quot;graphics-object&quot; aria-roledescription=&quot;line mark container&quot;&gt;&lt;path aria-label=&quot;n: 8192; drift: 1e-10; series: KBN f64&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;line mark&quot; d=&quot;M23.799,383.78L76.774,383.78L129.748,383.78L182.723,383.78L235.697,383.78L288.672,383.78L341.647,381.111L394.621,378.93L447.596,342.324L500.57,334.033L553.545,334.033L606.52,334.033&quot; stroke=&quot;#56b4e9&quot; stroke-width=&quot;2&quot; stroke-dasharray=&quot;6,3&quot;/&gt;&lt;/g&gt;&lt;/g&gt;&lt;path class=&quot;foreground&quot; aria-hidden=&quot;true&quot; d=&quot;&quot; display=&quot;none&quot;/&gt;&lt;/g&gt;&lt;g transform=&quot;translate(0,0)&quot;&gt;&lt;path class=&quot;background&quot; aria-hidden=&quot;true&quot; d=&quot;M0,0h640v400h-640Z&quot;/&gt;&lt;g&gt;&lt;g class=&quot;mark-line role-mark layer_0_marks&quot; role=&quot;graphics-object&quot; aria-roledescription=&quot;line mark container&quot;&gt;&lt;path aria-label=&quot;n: 8192; drift: 3e-1; series: naive f32&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;line mark&quot; d=&quot;M23.799,124.612L76.774,111.943L129.748,102.905L182.723,102.681L235.697,99.362L288.672,82.849L341.647,77.692L394.621,37.663L447.596,50.933L500.57,71.47L553.545,24.298L606.52,21.12&quot; stroke=&quot;#d55e00&quot; stroke-width=&quot;2&quot; stroke-dasharray=&quot;1,0&quot;/&gt;&lt;/g&gt;&lt;/g&gt;&lt;path class=&quot;foreground&quot; aria-hidden=&quot;true&quot; d=&quot;&quot; display=&quot;none&quot;/&gt;&lt;/g&gt;&lt;g transform=&quot;translate(0,0)&quot;&gt;&lt;path class=&quot;background&quot; aria-hidden=&quot;true&quot; d=&quot;M0,0h640v400h-640Z&quot;/&gt;&lt;g&gt;&lt;g class=&quot;mark-line role-mark layer_0_marks&quot; role=&quot;graphics-object&quot; aria-roledescription=&quot;line mark container&quot;&gt;&lt;path aria-label=&quot;n: 8192; drift: 6e-2; series: KBN f32&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;line mark&quot; d=&quot;M23.799,143.052L76.774,143.052L129.748,143.052L182.723,143.052L235.697,143.052L288.672,130.493L341.647,136.788L394.621,111.608L447.596,87.784L500.57,89.601L553.545,120.027L606.52,83.533&quot; stroke=&quot;#6272a4&quot; stroke-width=&quot;2&quot; stroke-dasharray=&quot;6,3&quot;/&gt;&lt;/g&gt;&lt;/g&gt;&lt;path class=&quot;foreground&quot; aria-hidden=&quot;true&quot; d=&quot;&quot; display=&quot;none&quot;/&gt;&lt;/g&gt;&lt;/g&gt;&lt;g class=&quot;mark-symbol role-mark layer_1_marks&quot; role=&quot;graphics-object&quot; aria-roledescription=&quot;symbol mark container&quot;&gt;&lt;path aria-label=&quot;n: 8192; drift: 3e-10; series: naive f64&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;point&quot; transform=&quot;translate(23.79900950783776,371.6799526396694)&quot; d=&quot;M2.739,0A2.739,2.739,0,1,1,-2.739,0A2.739,2.739,0,1,1,2.739,0&quot; fill=&quot;#e69f00&quot; stroke-width=&quot;2&quot; stroke-dasharray=&quot;1,0&quot; opacity=&quot;1&quot;/&gt;&lt;path aria-label=&quot;n: 16384; drift: 8e-10; series: naive f64&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;point&quot; transform=&quot;translate(76.77360987467078,360.0843075541828)&quot; d=&quot;M2.739,0A2.739,2.739,0,1,1,-2.739,0A2.739,2.739,0,1,1,2.739,0&quot; fill=&quot;#e69f00&quot; stroke-width=&quot;2&quot; stroke-dasharray=&quot;1,0&quot; opacity=&quot;1&quot;/&gt;&lt;path aria-label=&quot;n: 32768; drift: 1e-9; series: naive f64&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;point&quot; transform=&quot;translate(129.74821024150378,358.3588427183838)&quot; d=&quot;M2.739,0A2.739,2.739,0,1,1,-2.739,0A2.739,2.739,0,1,1,2.739,0&quot; fill=&quot;#e69f00&quot; stroke-width=&quot;2&quot; stroke-dasharray=&quot;1,0&quot; opacity=&quot;1&quot;/&gt;&lt;path aria-label=&quot;n: 65536; drift: 2e-9; series: naive f64&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;point&quot; transform=&quot;translate(182.7228106083368,350.6156081675508)&quot; d=&quot;M2.739,0A2.739,2.739,0,1,1,-2.739,0A2.739,2.739,0,1,1,2.739,0&quot; fill=&quot;#e69f00&quot; stroke-width=&quot;2&quot; stroke-dasharray=&quot;1,0&quot; opacity=&quot;1&quot;/&gt;&lt;path aria-label=&quot;n: 131072; drift: 3e-9; series: naive f64&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;point&quot; transform=&quot;translate(235.69741097516982,346.60419616825146)&quot; d=&quot;M2.739,0A2.739,2.739,0,1,1,-2.739,0A2.739,2.739,0,1,1,2.739,0&quot; fill=&quot;#e69f00&quot; stroke-width=&quot;2&quot; stroke-dasharray=&quot;1,0&quot; opacity=&quot;1&quot;/&gt;&lt;path aria-label=&quot;n: 262144; drift: 6e-9; series: naive f64&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;point&quot; transform=&quot;translate(288.67201134200286,337.47437733892554)&quot; d=&quot;M2.739,0A2.739,2.739,0,1,1,-2.739,0A2.739,2.739,0,1,1,2.739,0&quot; fill=&quot;#e69f00&quot; stroke-width=&quot;2&quot; stroke-dasharray=&quot;1,0&quot; opacity=&quot;1&quot;/&gt;&lt;path aria-label=&quot;n: 524288; drift: 7e-9; series: naive f64&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;point&quot; transform=&quot;translate(341.64661170883585,334.03321950542306)&quot; d=&quot;M2.739,0A2.739,2.739,0,1,1,-2.739,0A2.739,2.739,0,1,1,2.739,0&quot; fill=&quot;#e69f00&quot; stroke-width=&quot;2&quot; stroke-dasharray=&quot;1,0&quot; opacity=&quot;1&quot;/&gt;&lt;path aria-label=&quot;n: 1048576; drift: 2e-7; series: naive f64&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;point&quot; transform=&quot;translate(394.6212120756689,296.27024554918904)&quot; d=&quot;M2.739,0A2.739,2.739,0,1,1,-2.739,0A2.739,2.739,0,1,1,2.739,0&quot; fill=&quot;#e69f00&quot; stroke-width=&quot;2&quot; stroke-dasharray=&quot;1,0&quot; opacity=&quot;1&quot;/&gt;&lt;path aria-label=&quot;n: 2097152; drift: 6e-7; series: naive f64&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;point&quot; transform=&quot;translate(447.59581244250194,281.9197336759326)&quot; d=&quot;M2.739,0A2.739,2.739,0,1,1,-2.739,0A2.739,2.739,0,1,1,2.739,0&quot; fill=&quot;#e69f00&quot; stroke-width=&quot;2&quot; stroke-dasharray=&quot;1,0&quot; opacity=&quot;1&quot;/&gt;&lt;path aria-label=&quot;n: 4194304; drift: 2e-7; series: naive f64&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;point&quot; transform=&quot;translate(500.5704128093349,293.3492415603568)&quot; d=&quot;M2.739,0A2.739,2.739,0,1,1,-2.739,0A2.739,2.739,0,1,1,2.739,0&quot; fill=&quot;#e69f00&quot; stroke-width=&quot;2&quot; stroke-dasharray=&quot;1,0&quot; opacity=&quot;1&quot;/&gt;&lt;path aria-label=&quot;n: 8388608; drift: 9e-7; series: naive f64&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;point&quot; transform=&quot;translate(553.5450131761679,276.1832414348032)&quot; d=&quot;M2.739,0A2.739,2.739,0,1,1,-2.739,0A2.739,2.739,0,1,1,2.739,0&quot; fill=&quot;#e69f00&quot; stroke-width=&quot;2&quot; stroke-dasharray=&quot;1,0&quot; opacity=&quot;1&quot;/&gt;&lt;path aria-label=&quot;n: 16777216; drift: 1e-6; series: naive f64&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;point&quot; transform=&quot;translate(606.5196135430008,274.5032064369784)&quot; d=&quot;M2.739,0A2.739,2.739,0,1,1,-2.739,0A2.739,2.739,0,1,1,2.739,0&quot; fill=&quot;#e69f00&quot; stroke-width=&quot;2&quot; stroke-dasharray=&quot;1,0&quot; opacity=&quot;1&quot;/&gt;&lt;path aria-label=&quot;n: 8192; drift: 1e-10; series: KBN f64&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;point&quot; transform=&quot;translate(23.79900950783776,383.78038356524564)&quot; d=&quot;M2.739,0A2.739,2.739,0,1,1,-2.739,0A2.739,2.739,0,1,1,2.739,0&quot; fill=&quot;#56b4e9&quot; stroke-width=&quot;2&quot; stroke-dasharray=&quot;6,3&quot; opacity=&quot;1&quot;/&gt;&lt;path aria-label=&quot;n: 16384; drift: 1e-10; series: KBN f64&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;point&quot; transform=&quot;translate(76.77360987467078,383.78038356524564)&quot; d=&quot;M2.739,0A2.739,2.739,0,1,1,-2.739,0A2.739,2.739,0,1,1,2.739,0&quot; fill=&quot;#56b4e9&quot; stroke-width=&quot;2&quot; stroke-dasharray=&quot;6,3&quot; opacity=&quot;1&quot;/&gt;&lt;path aria-label=&quot;n: 32768; drift: 1e-10; series: KBN f64&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;point&quot; transform=&quot;translate(129.74821024150378,383.78038356524564)&quot; d=&quot;M2.739,0A2.739,2.739,0,1,1,-2.739,0A2.739,2.739,0,1,1,2.739,0&quot; fill=&quot;#56b4e9&quot; stroke-width=&quot;2&quot; stroke-dasharray=&quot;6,3&quot; opacity=&quot;1&quot;/&gt;&lt;path aria-label=&quot;n: 65536; drift: 1e-10; series: KBN f64&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;point&quot; transform=&quot;translate(182.7228106083368,383.78038356524564)&quot; d=&quot;M2.739,0A2.739,2.739,0,1,1,-2.739,0A2.739,2.739,0,1,1,2.739,0&quot; fill=&quot;#56b4e9&quot; stroke-width=&quot;2&quot; stroke-dasharray=&quot;6,3&quot; opacity=&quot;1&quot;/&gt;&lt;path aria-label=&quot;n: 131072; drift: 1e-10; series: KBN f64&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;point&quot; transform=&quot;translate(235.69741097516982,383.78038356524564)&quot; d=&quot;M2.739,0A2.739,2.739,0,1,1,-2.739,0A2.739,2.739,0,1,1,2.739,0&quot; fill=&quot;#56b4e9&quot; stroke-width=&quot;2&quot; stroke-dasharray=&quot;6,3&quot; opacity=&quot;1&quot;/&gt;&lt;path aria-label=&quot;n: 262144; drift: 1e-10; series: KBN f64&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;point&quot; transform=&quot;translate(288.67201134200286,383.78038356524564)&quot; d=&quot;M2.739,0A2.739,2.739,0,1,1,-2.739,0A2.739,2.739,0,1,1,2.739,0&quot; fill=&quot;#56b4e9&quot; stroke-width=&quot;2&quot; stroke-dasharray=&quot;6,3&quot; opacity=&quot;1&quot;/&gt;&lt;path aria-label=&quot;n: 524288; drift: 1e-10; series: KBN f64&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;point&quot; transform=&quot;translate(341.64661170883585,381.1112092633337)&quot; d=&quot;M2.739,0A2.739,2.739,0,1,1,-2.739,0A2.739,2.739,0,1,1,2.739,0&quot; fill=&quot;#56b4e9&quot; stroke-width=&quot;2&quot; stroke-dasharray=&quot;6,3&quot; opacity=&quot;1&quot;/&gt;&lt;path aria-label=&quot;n: 1048576; drift: 2e-10; series: KBN f64&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;point&quot; transform=&quot;translate(394.6212120756689,378.93034283995337)&quot; d=&quot;M2.739,0A2.739,2.739,0,1,1,-2.739,0A2.739,2.739,0,1,1,2.739,0&quot; fill=&quot;#56b4e9&quot; stroke-width=&quot;2&quot; stroke-dasharray=&quot;6,3&quot; opacity=&quot;1&quot;/&gt;&lt;path aria-label=&quot;n: 2097152; drift: 4e-9; series: KBN f64&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;point&quot; transform=&quot;translate(447.59581244250194,342.3244146392206)&quot; d=&quot;M2.739,0A2.739,2.739,0,1,1,-2.739,0A2.739,2.739,0,1,1,2.739,0&quot; fill=&quot;#56b4e9&quot; stroke-width=&quot;2&quot; stroke-dasharray=&quot;6,3&quot; opacity=&quot;1&quot;/&gt;&lt;path aria-label=&quot;n: 4194304; drift: 7e-9; series: KBN f64&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;point&quot; transform=&quot;translate(500.5704128093349,334.03321950542306)&quot; d=&quot;M2.739,0A2.739,2.739,0,1,1,-2.739,0A2.739,2.739,0,1,1,2.739,0&quot; fill=&quot;#56b4e9&quot; stroke-width=&quot;2&quot; stroke-dasharray=&quot;6,3&quot; opacity=&quot;1&quot;/&gt;&lt;path aria-label=&quot;n: 8388608; drift: 7e-9; series: KBN f64&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;point&quot; transform=&quot;translate(553.5450131761679,334.03321950542306)&quot; d=&quot;M2.739,0A2.739,2.739,0,1,1,-2.739,0A2.739,2.739,0,1,1,2.739,0&quot; fill=&quot;#56b4e9&quot; stroke-width=&quot;2&quot; stroke-dasharray=&quot;6,3&quot; opacity=&quot;1&quot;/&gt;&lt;path aria-label=&quot;n: 16777216; drift: 7e-9; series: KBN f64&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;point&quot; transform=&quot;translate(606.5196135430008,334.03321950542306)&quot; d=&quot;M2.739,0A2.739,2.739,0,1,1,-2.739,0A2.739,2.739,0,1,1,2.739,0&quot; fill=&quot;#56b4e9&quot; stroke-width=&quot;2&quot; stroke-dasharray=&quot;6,3&quot; opacity=&quot;1&quot;/&gt;&lt;path aria-label=&quot;n: 8192; drift: 3e-1; series: naive f32&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;point&quot; transform=&quot;translate(23.79900950783776,124.61236358335235)&quot; d=&quot;M2.739,0A2.739,2.739,0,1,1,-2.739,0A2.739,2.739,0,1,1,2.739,0&quot; fill=&quot;#d55e00&quot; stroke-width=&quot;2&quot; stroke-dasharray=&quot;1,0&quot; opacity=&quot;1&quot;/&gt;&lt;path aria-label=&quot;n: 16384; drift: 9e-1; series: naive f32&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;point&quot; transform=&quot;translate(76.77360987467078,111.94332983696454)&quot; d=&quot;M2.739,0A2.739,2.739,0,1,1,-2.739,0A2.739,2.739,0,1,1,2.739,0&quot; fill=&quot;#d55e00&quot; stroke-width=&quot;2&quot; stroke-dasharray=&quot;1,0&quot; opacity=&quot;1&quot;/&gt;&lt;path aria-label=&quot;n: 32768; drift: 2e+0; series: naive f32&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;point&quot; transform=&quot;translate(129.74821024150378,102.90492963962441)&quot; d=&quot;M2.739,0A2.739,2.739,0,1,1,-2.739,0A2.739,2.739,0,1,1,2.739,0&quot; fill=&quot;#d55e00&quot; stroke-width=&quot;2&quot; stroke-dasharray=&quot;1,0&quot; opacity=&quot;1&quot;/&gt;&lt;path aria-label=&quot;n: 65536; drift: 2e+0; series: naive f32&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;point&quot; transform=&quot;translate(182.7228106083368,102.68094762415667)&quot; d=&quot;M2.739,0A2.739,2.739,0,1,1,-2.739,0A2.739,2.739,0,1,1,2.739,0&quot; fill=&quot;#d55e00&quot; stroke-width=&quot;2&quot; stroke-dasharray=&quot;1,0&quot; opacity=&quot;1&quot;/&gt;&lt;path aria-label=&quot;n: 131072; drift: 2e+0; series: naive f32&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;point&quot; transform=&quot;translate(235.69741097516982,99.36162937325928)&quot; d=&quot;M2.739,0A2.739,2.739,0,1,1,-2.739,0A2.739,2.739,0,1,1,2.739,0&quot; fill=&quot;#d55e00&quot; stroke-width=&quot;2&quot; stroke-dasharray=&quot;1,0&quot; opacity=&quot;1&quot;/&gt;&lt;path aria-label=&quot;n: 262144; drift: 1e+1; series: naive f32&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;point&quot; transform=&quot;translate(288.67201134200286,82.84902731343723)&quot; d=&quot;M2.739,0A2.739,2.739,0,1,1,-2.739,0A2.739,2.739,0,1,1,2.739,0&quot; fill=&quot;#d55e00&quot; stroke-width=&quot;2&quot; stroke-dasharray=&quot;1,0&quot; opacity=&quot;1&quot;/&gt;&lt;path aria-label=&quot;n: 524288; drift: 2e+1; series: naive f32&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;point&quot; transform=&quot;translate(341.64661170883585,77.69236178255542)&quot; d=&quot;M2.739,0A2.739,2.739,0,1,1,-2.739,0A2.739,2.739,0,1,1,2.739,0&quot; fill=&quot;#d55e00&quot; stroke-width=&quot;2&quot; stroke-dasharray=&quot;1,0&quot; opacity=&quot;1&quot;/&gt;&lt;path aria-label=&quot;n: 1048576; drift: 4e+2; series: naive f32&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;point&quot; transform=&quot;translate(394.6212120756689,37.66272926637866)&quot; d=&quot;M2.739,0A2.739,2.739,0,1,1,-2.739,0A2.739,2.739,0,1,1,2.739,0&quot; fill=&quot;#d55e00&quot; stroke-width=&quot;2&quot; stroke-dasharray=&quot;1,0&quot; opacity=&quot;1&quot;/&gt;&lt;path aria-label=&quot;n: 2097152; drift: 1e+2; series: naive f32&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;point&quot; transform=&quot;translate(447.59581244250194,50.93310699436313)&quot; d=&quot;M2.739,0A2.739,2.739,0,1,1,-2.739,0A2.739,2.739,0,1,1,2.739,0&quot; fill=&quot;#d55e00&quot; stroke-width=&quot;2&quot; stroke-dasharray=&quot;1,0&quot; opacity=&quot;1&quot;/&gt;&lt;path aria-label=&quot;n: 4194304; drift: 3e+1; series: naive f32&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;point&quot; transform=&quot;translate(500.5704128093349,71.46982613557138)&quot; d=&quot;M2.739,0A2.739,2.739,0,1,1,-2.739,0A2.739,2.739,0,1,1,2.739,0&quot; fill=&quot;#d55e00&quot; stroke-width=&quot;2&quot; stroke-dasharray=&quot;1,0&quot; opacity=&quot;1&quot;/&gt;&lt;path aria-label=&quot;n: 8388608; drift: 1e+3; series: naive f32&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;point&quot; transform=&quot;translate(553.5450131761679,24.298165022452167)&quot; d=&quot;M2.739,0A2.739,2.739,0,1,1,-2.739,0A2.739,2.739,0,1,1,2.739,0&quot; fill=&quot;#d55e00&quot; stroke-width=&quot;2&quot; stroke-dasharray=&quot;1,0&quot; opacity=&quot;1&quot;/&gt;&lt;path aria-label=&quot;n: 16777216; drift: 2e+3; series: naive f32&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;point&quot; transform=&quot;translate(606.5196135430008,21.120297040733107)&quot; d=&quot;M2.739,0A2.739,2.739,0,1,1,-2.739,0A2.739,2.739,0,1,1,2.739,0&quot; fill=&quot;#d55e00&quot; stroke-width=&quot;2&quot; stroke-dasharray=&quot;1,0&quot; opacity=&quot;1&quot;/&gt;&lt;path aria-label=&quot;n: 8192; drift: 6e-2; series: KBN f32&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;point&quot; transform=&quot;translate(23.79900950783776,143.0520798833773)&quot; d=&quot;M2.739,0A2.739,2.739,0,1,1,-2.739,0A2.739,2.739,0,1,1,2.739,0&quot; fill=&quot;#6272a4&quot; stroke-width=&quot;2&quot; stroke-dasharray=&quot;6,3&quot; opacity=&quot;1&quot;/&gt;&lt;path aria-label=&quot;n: 16384; drift: 6e-2; series: KBN f32&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;point&quot; transform=&quot;translate(76.77360987467078,143.0520798833773)&quot; d=&quot;M2.739,0A2.739,2.739,0,1,1,-2.739,0A2.739,2.739,0,1,1,2.739,0&quot; fill=&quot;#6272a4&quot; stroke-width=&quot;2&quot; stroke-dasharray=&quot;6,3&quot; opacity=&quot;1&quot;/&gt;&lt;path aria-label=&quot;n: 32768; drift: 6e-2; series: KBN f32&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;point&quot; transform=&quot;translate(129.74821024150378,143.0520798833773)&quot; d=&quot;M2.739,0A2.739,2.739,0,1,1,-2.739,0A2.739,2.739,0,1,1,2.739,0&quot; fill=&quot;#6272a4&quot; stroke-width=&quot;2&quot; stroke-dasharray=&quot;6,3&quot; opacity=&quot;1&quot;/&gt;&lt;path aria-label=&quot;n: 65536; drift: 6e-2; series: KBN f32&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;point&quot; transform=&quot;translate(182.7228106083368,143.0520798833773)&quot; d=&quot;M2.739,0A2.739,2.739,0,1,1,-2.739,0A2.739,2.739,0,1,1,2.739,0&quot; fill=&quot;#6272a4&quot; stroke-width=&quot;2&quot; stroke-dasharray=&quot;6,3&quot; opacity=&quot;1&quot;/&gt;&lt;path aria-label=&quot;n: 131072; drift: 6e-2; series: KBN f32&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;point&quot; transform=&quot;translate(235.69741097516982,143.0520798833773)&quot; d=&quot;M2.739,0A2.739,2.739,0,1,1,-2.739,0A2.739,2.739,0,1,1,2.739,0&quot; fill=&quot;#6272a4&quot; stroke-width=&quot;2&quot; stroke-dasharray=&quot;6,3&quot; opacity=&quot;1&quot;/&gt;&lt;path aria-label=&quot;n: 262144; drift: 2e-1; series: KBN f32&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;point&quot; transform=&quot;translate(288.67201134200286,130.49291315447417)&quot; d=&quot;M2.739,0A2.739,2.739,0,1,1,-2.739,0A2.739,2.739,0,1,1,2.739,0&quot; fill=&quot;#6272a4&quot; stroke-width=&quot;2&quot; stroke-dasharray=&quot;6,3&quot; opacity=&quot;1&quot;/&gt;&lt;path aria-label=&quot;n: 524288; drift: 1e-1; series: KBN f32&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;point&quot; transform=&quot;translate(341.64661170883585,136.78835565963388)&quot; d=&quot;M2.739,0A2.739,2.739,0,1,1,-2.739,0A2.739,2.739,0,1,1,2.739,0&quot; fill=&quot;#6272a4&quot; stroke-width=&quot;2&quot; stroke-dasharray=&quot;6,3&quot; opacity=&quot;1&quot;/&gt;&lt;path aria-label=&quot;n: 1048576; drift: 9e-1; series: KBN f32&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;point&quot; transform=&quot;translate(394.6212120756689,111.60848296657701)&quot; d=&quot;M2.739,0A2.739,2.739,0,1,1,-2.739,0A2.739,2.739,0,1,1,2.739,0&quot; fill=&quot;#6272a4&quot; stroke-width=&quot;2&quot; stroke-dasharray=&quot;6,3&quot; opacity=&quot;1&quot;/&gt;&lt;path aria-label=&quot;n: 2097152; drift: 6e+0; series: KBN f32&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;point&quot; transform=&quot;translate(447.59581244250194,87.78421492110068)&quot; d=&quot;M2.739,0A2.739,2.739,0,1,1,-2.739,0A2.739,2.739,0,1,1,2.739,0&quot; fill=&quot;#6272a4&quot; stroke-width=&quot;2&quot; stroke-dasharray=&quot;6,3&quot; opacity=&quot;1&quot;/&gt;&lt;path aria-label=&quot;n: 4194304; drift: 6e+0; series: KBN f32&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;point&quot; transform=&quot;translate(500.5704128093349,89.60104523810024)&quot; d=&quot;M2.739,0A2.739,2.739,0,1,1,-2.739,0A2.739,2.739,0,1,1,2.739,0&quot; fill=&quot;#6272a4&quot; stroke-width=&quot;2&quot; stroke-dasharray=&quot;6,3&quot; opacity=&quot;1&quot;/&gt;&lt;path aria-label=&quot;n: 8388608; drift: 4e-1; series: KBN f32&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;point&quot; transform=&quot;translate(553.5450131761679,120.02728441506795)&quot; d=&quot;M2.739,0A2.739,2.739,0,1,1,-2.739,0A2.739,2.739,0,1,1,2.739,0&quot; fill=&quot;#6272a4&quot; stroke-width=&quot;2&quot; stroke-dasharray=&quot;6,3&quot; opacity=&quot;1&quot;/&gt;&lt;path aria-label=&quot;n: 16777216; drift: 9e+0; series: KBN f32&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;point&quot; transform=&quot;translate(606.5196135430008,83.53308602571676)&quot; d=&quot;M2.739,0A2.739,2.739,0,1,1,-2.739,0A2.739,2.739,0,1,1,2.739,0&quot; fill=&quot;#6272a4&quot; stroke-width=&quot;2&quot; stroke-dasharray=&quot;6,3&quot; opacity=&quot;1&quot;/&gt;&lt;/g&gt;&lt;g class=&quot;mark-group role-legend&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;legend&quot; aria-label=&quot;Symbol legend for fill color, stroke color and strokeDash with 4 values: naive f64, KBN f64, naive f32, KBN f32&quot;&gt;&lt;g transform=&quot;translate(18,18)&quot;&gt;&lt;path class=&quot;background&quot; aria-hidden=&quot;true&quot; d=&quot;M0,0h81v61h-81Z&quot; pointer-events=&quot;none&quot;/&gt;&lt;g&gt;&lt;g class=&quot;mark-group role-legend-entry&quot;&gt;&lt;g transform=&quot;translate(0,0)&quot;&gt;&lt;path class=&quot;background&quot; aria-hidden=&quot;true&quot; d=&quot;M0,0h0v0h0Z&quot; pointer-events=&quot;none&quot;/&gt;&lt;g&gt;&lt;g class=&quot;mark-group role-scope&quot; role=&quot;graphics-object&quot; aria-roledescription=&quot;group mark container&quot;&gt;&lt;g transform=&quot;translate(0,0)&quot;&gt;&lt;path class=&quot;background&quot; aria-hidden=&quot;true&quot; d=&quot;M0,0h80.80000305175781v12.5h-80.80000305175781Z&quot; pointer-events=&quot;none&quot; opacity=&quot;1&quot;/&gt;&lt;g&gt;&lt;g class=&quot;mark-symbol role-legend-symbol&quot; pointer-events=&quot;none&quot;&gt;&lt;path transform=&quot;translate(6,6)&quot; d=&quot;M5,0A5,5,0,1,1,-5,0A5,5,0,1,1,5,0&quot; fill=&quot;#e69f00&quot; stroke=&quot;#e69f00&quot; stroke-width=&quot;1.5&quot; stroke-dasharray=&quot;1,0&quot; opacity=&quot;1&quot;/&gt;&lt;/g&gt;&lt;g class=&quot;mark-text role-legend-label&quot; pointer-events=&quot;none&quot;&gt;&lt;text text-anchor=&quot;start&quot; transform=&quot;translate(16,10)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;12px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;naive f64&lt;/text&gt;&lt;/g&gt;&lt;/g&gt;&lt;path class=&quot;foreground&quot; aria-hidden=&quot;true&quot; d=&quot;&quot; pointer-events=&quot;none&quot; display=&quot;none&quot;/&gt;&lt;/g&gt;&lt;g transform=&quot;translate(0,16)&quot;&gt;&lt;path class=&quot;background&quot; aria-hidden=&quot;true&quot; d=&quot;M0,0h80.80000305175781v12.5h-80.80000305175781Z&quot; pointer-events=&quot;none&quot; opacity=&quot;1&quot;/&gt;&lt;g&gt;&lt;g class=&quot;mark-symbol role-legend-symbol&quot; pointer-events=&quot;none&quot;&gt;&lt;path transform=&quot;translate(6,6)&quot; d=&quot;M5,0A5,5,0,1,1,-5,0A5,5,0,1,1,5,0&quot; fill=&quot;#56b4e9&quot; stroke=&quot;#56b4e9&quot; stroke-width=&quot;1.5&quot; stroke-dasharray=&quot;6,3&quot; opacity=&quot;1&quot;/&gt;&lt;/g&gt;&lt;g class=&quot;mark-text role-legend-label&quot; pointer-events=&quot;none&quot;&gt;&lt;text text-anchor=&quot;start&quot; transform=&quot;translate(16,10)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;12px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;KBN f64&lt;/text&gt;&lt;/g&gt;&lt;/g&gt;&lt;path class=&quot;foreground&quot; aria-hidden=&quot;true&quot; d=&quot;&quot; pointer-events=&quot;none&quot; display=&quot;none&quot;/&gt;&lt;/g&gt;&lt;g transform=&quot;translate(0,32)&quot;&gt;&lt;path class=&quot;background&quot; aria-hidden=&quot;true&quot; d=&quot;M0,0h80.80000305175781v12.5h-80.80000305175781Z&quot; pointer-events=&quot;none&quot; opacity=&quot;1&quot;/&gt;&lt;g&gt;&lt;g class=&quot;mark-symbol role-legend-symbol&quot; pointer-events=&quot;none&quot;&gt;&lt;path transform=&quot;translate(6,6)&quot; d=&quot;M5,0A5,5,0,1,1,-5,0A5,5,0,1,1,5,0&quot; fill=&quot;#d55e00&quot; stroke=&quot;#d55e00&quot; stroke-width=&quot;1.5&quot; stroke-dasharray=&quot;1,0&quot; opacity=&quot;1&quot;/&gt;&lt;/g&gt;&lt;g class=&quot;mark-text role-legend-label&quot; pointer-events=&quot;none&quot;&gt;&lt;text text-anchor=&quot;start&quot; transform=&quot;translate(16,10)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;12px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;naive f32&lt;/text&gt;&lt;/g&gt;&lt;/g&gt;&lt;path class=&quot;foreground&quot; aria-hidden=&quot;true&quot; d=&quot;&quot; pointer-events=&quot;none&quot; display=&quot;none&quot;/&gt;&lt;/g&gt;&lt;g transform=&quot;translate(0,48)&quot;&gt;&lt;path class=&quot;background&quot; aria-hidden=&quot;true&quot; d=&quot;M0,0h80.80000305175781v12.5h-80.80000305175781Z&quot; pointer-events=&quot;none&quot; opacity=&quot;1&quot;/&gt;&lt;g&gt;&lt;g class=&quot;mark-symbol role-legend-symbol&quot; pointer-events=&quot;none&quot;&gt;&lt;path transform=&quot;translate(6,6)&quot; d=&quot;M5,0A5,5,0,1,1,-5,0A5,5,0,1,1,5,0&quot; fill=&quot;#6272a4&quot; stroke=&quot;#6272a4&quot; stroke-width=&quot;1.5&quot; stroke-dasharray=&quot;6,3&quot; opacity=&quot;1&quot;/&gt;&lt;/g&gt;&lt;g class=&quot;mark-text role-legend-label&quot; pointer-events=&quot;none&quot;&gt;&lt;text text-anchor=&quot;start&quot; transform=&quot;translate(16,10)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;12px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;KBN f32&lt;/text&gt;&lt;/g&gt;&lt;/g&gt;&lt;path class=&quot;foreground&quot; aria-hidden=&quot;true&quot; d=&quot;&quot; pointer-events=&quot;none&quot; display=&quot;none&quot;/&gt;&lt;/g&gt;&lt;/g&gt;&lt;/g&gt;&lt;path class=&quot;foreground&quot; aria-hidden=&quot;true&quot; d=&quot;&quot; pointer-events=&quot;none&quot; display=&quot;none&quot;/&gt;&lt;/g&gt;&lt;/g&gt;&lt;/g&gt;&lt;path class=&quot;foreground&quot; aria-hidden=&quot;true&quot; d=&quot;&quot; pointer-events=&quot;none&quot; display=&quot;none&quot;/&gt;&lt;/g&gt;&lt;/g&gt;&lt;/g&gt;&lt;path class=&quot;foreground&quot; aria-hidden=&quot;true&quot; d=&quot;&quot; display=&quot;none&quot;/&gt;&lt;/g&gt;&lt;/g&gt;&lt;/g&gt;&lt;/svg&gt;&lt;/div&gt; &lt;figcaption data-astro-cid-bj3fsypb&gt;Measured drift of the unbroken carry chain vs stream length, per accumulator and precision, against a 128-bit MPFR oracle. Each charted point is the worst case over the seven corpora (30-seed median); the f32 lines blow up past n = 2²⁰, where the compensated correctly-rounded condition is crossed. Chart: the printed drift-vs-N figure in doi:10.5281/zenodo.20599315. The table below is a different cut: the supplement&apos;s per-corpus drift-range table for the LCG corpus, whose minima sit below the charted worst-case lines.&lt;/figcaption&gt; &lt;details class=&quot;data-table&quot; data-astro-cid-bj3fsypb&gt; &lt;summary data-astro-cid-bj3fsypb&gt;data table&lt;/summary&gt;  &lt;div class=&quot;data-table-scroll&quot; data-astro-cid-bj3fsypb&gt;&lt;table&gt;&lt;tr&gt;&lt;th&gt;precision&lt;/th&gt;&lt;th&gt;accumulator&lt;/th&gt;&lt;th&gt;drift min (LCG)&lt;/th&gt;&lt;th&gt;drift max (LCG)&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;f64&lt;/td&gt;&lt;td&gt;naive&lt;/td&gt;&lt;td&gt;1.75e-10&lt;/td&gt;&lt;td&gt;1.08e-6&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;f64&lt;/td&gt;&lt;td&gt;KBN&lt;/td&gt;&lt;td&gt;5.82e-11&lt;/td&gt;&lt;td&gt;7.45e-9&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;f64&lt;/td&gt;&lt;td&gt;Ogita&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;f32&lt;/td&gt;&lt;td&gt;naive&lt;/td&gt;&lt;td&gt;1.25e-2&lt;/td&gt;&lt;td&gt;1.71e3&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;f32&lt;/td&gt;&lt;td&gt;KBN&lt;/td&gt;&lt;td&gt;3.08e-3&lt;/td&gt;&lt;td&gt;9.27&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;f32&lt;/td&gt;&lt;td&gt;Ogita&lt;/td&gt;&lt;td&gt;3.08e-3&lt;/td&gt;&lt;td&gt;1.27&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt; &lt;/details&gt; &lt;/figure&gt; 
&lt;h2 id=&quot;why-not-just-use-fp64&quot;&gt;Why not just use fp64&lt;a class=&quot;heading-anchor&quot; href=&quot;#why-not-just-use-fp64&quot; aria-label=&quot;Link to this section&quot;&gt;¶&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Because deployment already left it behind. High-throughput GPU similarity joins are bounded by memory bandwidth, not arithmetic: holding the stream in a 64-bit storage format halves effective cache and bus throughput against a 32-bit one. Power- and area-constrained edge processors frequently ship no double-precision unit at all. This is the same economics that put bf16 and fp8 into deep-learning training — reduced precision is the operating point, not a tuning choice. What was missing is a forward-error bound parametric in the working precision, stating the conditions under which the stream stays inside tolerance.&lt;/p&gt;
&lt;p&gt;One caveat up front, because it is the structural difference the bound has to price in: a streaming carry chain compounds across ticks. That is strictly worse than one-shot GEMM accumulation, where each output element’s error closes out when the reduction ends. Here nothing ever closes out — and the production target is the trillions-of-ticks regime, several decades beyond where the naive recurrence already fails.&lt;/p&gt;
&lt;span class=&quot;marginnote&quot; role=&quot;note&quot;&gt;Floating-point addition is not associative: reorder a reduction and the bits change. It is the same mechanism behind batch-variant nondeterminism in LLM inference — different batching, different reduction trees, different outputs. Streaming makes the order dependence permanent.&lt;/span&gt;
&lt;h2 id=&quot;cut-the-carry-chain&quot;&gt;Cut the carry chain&lt;a class=&quot;heading-anchor&quot; href=&quot;#cut-the-carry-chain&quot; aria-label=&quot;Link to this section&quot;&gt;¶&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The fix is one line of topology. Reseed the recurrence from a full dot product every &lt;em&gt;k&lt;/em&gt; ticks, and the error bound stops depending on how long you stream — the stream length &lt;em&gt;N&lt;/em&gt; drops out of the formula exactly. The streaming kernel’s whole problem is that a rounding error committed at tick &lt;em&gt;t&lt;/em&gt; rides inside the accumulator for every remaining tick. The re-anchored topology breaks that ride: at every tick, two anchor rows are reseeded from a full length-&lt;em&gt;w&lt;/em&gt; inner product, and a &lt;code&gt;Periodic{k}&lt;/code&gt; policy reseeds the whole window every &lt;em&gt;k&lt;/em&gt; ticks. A carry chain that reaches any cell now has length &lt;em&gt;p&lt;/em&gt; ≤ &lt;em&gt;k&lt;/em&gt;, never &lt;em&gt;N&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;The resulting deterministic envelope, quoted from the preprint (&lt;a href=&quot;https://doi.org/10.5281/zenodo.20599315&quot;&gt;doi:10.5281/zenodo.20599315&lt;/a&gt;, Theorem 4.1):&lt;/p&gt;
&lt;div class=&quot;codeblock&quot;&gt;&lt;div class=&quot;codeblock-head&quot;&gt;&lt;span class=&quot;lang&quot;&gt;text&lt;/span&gt;&lt;button type=&quot;button&quot; class=&quot;copy-btn&quot; data-copy aria-label=&quot;Copy code&quot;&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot; aria-hidden=&quot;true&quot;&gt;&lt;rect width=&quot;14&quot; height=&quot;14&quot; x=&quot;8&quot; y=&quot;8&quot; rx=&quot;2&quot; ry=&quot;2&quot;&gt;&lt;/rect&gt;&lt;path d=&quot;M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;span class=&quot;copy-label&quot;&gt;Copy&lt;/span&gt;&lt;/button&gt;&lt;/div&gt;&lt;pre class=&quot;astro-code astro-code-themes github-light github-dark-default&quot; style=&quot;--shiki-light:#24292e;--shiki-dark:#e6edf3;--shiki-light-bg:#fff;--shiki-dark-bg:#0d1117;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;text&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;|computed QT − exact QT|  ≤  γ_{4(p+w)}(u_acc) · (2p + w) · T★&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;The Higham envelope γ&lt;sub&gt;n&lt;/sub&gt;(&lt;em&gt;u&lt;/em&gt;) = (1+&lt;em&gt;u&lt;/em&gt;)&lt;sup&gt;n&lt;/sup&gt; − 1 ≈ &lt;em&gt;nu&lt;/em&gt; counts compounded roundings; 4(&lt;em&gt;p&lt;/em&gt;+&lt;em&gt;w&lt;/em&gt;) over-counts the roundings along the longest surviving chain — at most four ops per carry step (4&lt;em&gt;p&lt;/em&gt;) plus the length-&lt;em&gt;w&lt;/em&gt; reseed’s 2&lt;em&gt;w&lt;/em&gt; − 1 roundings, together ≤ 4(&lt;em&gt;p&lt;/em&gt;+&lt;em&gt;w&lt;/em&gt;); (2&lt;em&gt;p&lt;/em&gt;+&lt;em&gt;w&lt;/em&gt;) counts the operands whose magnitudes can feed the error; &lt;em&gt;T&lt;/em&gt;&lt;sub&gt;★&lt;/sub&gt; bounds the magnitude of any single pairwise product of stream samples (&lt;em&gt;T&lt;/em&gt;&lt;sub&gt;★&lt;/sub&gt; = &lt;em&gt;M&lt;/em&gt;² for a sample magnitude bound &lt;em&gt;M&lt;/em&gt;); &lt;em&gt;u&lt;/em&gt;&lt;sub&gt;acc&lt;/sub&gt; is the accumulator’s unit roundoff. Nothing in the formula grows with &lt;em&gt;N&lt;/em&gt;. Stream for a trillion ticks and the bound is the same number it was at tick &lt;em&gt;k&lt;/em&gt;.&lt;/p&gt;
&lt;h2 id=&quot;the-theorem-becomes-a-knob&quot;&gt;The theorem becomes a knob&lt;a class=&quot;heading-anchor&quot; href=&quot;#the-theorem-becomes-a-knob&quot; aria-label=&quot;Link to this section&quot;&gt;¶&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;A bound is only useful if someone can act on it. Because the envelope is strictly monotone in the carry length &lt;em&gt;p&lt;/em&gt;, it inverts into a tuning rule: given an error tolerance τ, the largest safe reseed horizon is&lt;/p&gt;
&lt;div class=&quot;codeblock&quot;&gt;&lt;div class=&quot;codeblock-head&quot;&gt;&lt;span class=&quot;lang&quot;&gt;text&lt;/span&gt;&lt;button type=&quot;button&quot; class=&quot;copy-btn&quot; data-copy aria-label=&quot;Copy code&quot;&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot; aria-hidden=&quot;true&quot;&gt;&lt;rect width=&quot;14&quot; height=&quot;14&quot; x=&quot;8&quot; y=&quot;8&quot; rx=&quot;2&quot; ry=&quot;2&quot;&gt;&lt;/rect&gt;&lt;path d=&quot;M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;span class=&quot;copy-label&quot;&gt;Copy&lt;/span&gt;&lt;/button&gt;&lt;/div&gt;&lt;pre class=&quot;astro-code astro-code-themes github-light github-dark-default&quot; style=&quot;--shiki-light:#24292e;--shiki-dark:#e6edf3;--shiki-light-bg:#fff;--shiki-dark-bg:#0d1117;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;text&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;k★  ≈  sqrt( τ / (8 · u_acc · T★) )&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;— the 8 is just the operation-count factor 4 times the operand factor 2. Deployment is that one division and a square root. The theorem compiles down to one integer:&lt;/p&gt;
&lt;div class=&quot;codeblock&quot;&gt;&lt;div class=&quot;codeblock-head&quot;&gt;&lt;span class=&quot;lang&quot;&gt;yaml&lt;/span&gt;&lt;button type=&quot;button&quot; class=&quot;copy-btn&quot; data-copy aria-label=&quot;Copy code&quot;&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot; aria-hidden=&quot;true&quot;&gt;&lt;rect width=&quot;14&quot; height=&quot;14&quot; x=&quot;8&quot; y=&quot;8&quot; rx=&quot;2&quot; ry=&quot;2&quot;&gt;&lt;/rect&gt;&lt;path d=&quot;M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;span class=&quot;copy-label&quot;&gt;Copy&lt;/span&gt;&lt;/button&gt;&lt;/div&gt;&lt;pre class=&quot;astro-code astro-code-themes github-light github-dark-default&quot; style=&quot;--shiki-light:#24292e;--shiki-dark:#e6edf3;--shiki-light-bg:#fff;--shiki-dark-bg:#0d1117;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;yaml&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;--shiki-light:#6A737D;--shiki-dark:#8B949E&quot;&gt;# streaming similarity join — retention policy&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;--shiki-light:#22863A;--shiki-dark:#7EE787&quot;&gt;anchor&lt;/span&gt;&lt;span style=&quot;--shiki-light:#24292E;--shiki-dark:#E6EDF3&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;--shiki-light:#22863A;--shiki-dark:#7EE787&quot;&gt;  policy&lt;/span&gt;&lt;span style=&quot;--shiki-light:#24292E;--shiki-dark:#E6EDF3&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;--shiki-light:#032F62;--shiki-dark:#A5D6FF&quot;&gt;periodic&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;--shiki-light:#22863A;--shiki-dark:#7EE787&quot;&gt;  k&lt;/span&gt;&lt;span style=&quot;--shiki-light:#24292E;--shiki-dark:#E6EDF3&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;--shiki-light:#005CC5;--shiki-dark:#79C0FF&quot;&gt;4096&lt;/span&gt;&lt;span style=&quot;--shiki-light:#6A737D;--shiki-dark:#8B949E&quot;&gt;   # construction default: fp64-safe, ~4000x headroom&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;--shiki-light:#6A737D;--shiki-dark:#8B949E&quot;&gt;  # k: 628  # the fp32-safe bisection root of the envelope constraint (closed form ~676)&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;span class=&quot;marginnote&quot; role=&quot;note&quot;&gt;The closed form says 676 at fp32; the exact bisection root of the envelope constraint is 628. The paper prints both: the closed form overshoots ~7% at fp32, where k* is barely ten times the window length and the leading-order approximation is weakest. Set the bisection root.&lt;/span&gt;
&lt;p&gt;The numbers, from the preprint’s retention-tuning section (§SM10.1): at fp64 the safe root is around 1.7 × 10&lt;sup&gt;7&lt;/sup&gt;, so the construction default &lt;em&gt;k&lt;/em&gt; = 4096 sits under it with roughly 4,000x headroom. At fp32 the safe root is &lt;em&gt;k&lt;/em&gt;* = 628. The same default sits ~4,000x under the fp64 root and 6.5x over the fp32 one — ship fp32 at &lt;em&gt;k&lt;/em&gt; = 4096 and you silently accept a (4096/628)² ≈ 43x tolerance excess. Nothing in the config changed — only the precision — and the theorem says the safe value moved by four orders of magnitude. That is what a bound in a config file buys you: the failure is computable before you ship it.&lt;/p&gt;
&lt;figure class=&quot;full&quot; data-astro-cid-bj3fsypb&gt; &lt;div class=&quot;svgfig svgfig-chart&quot; role=&quot;img&quot; aria-label=&quot;Log-log line of the closed-form tuning rule k* versus accumulator unit roundoff, from k* about 1.6e7 at fp64 (u=2^-53) down to 676 at fp32 (u=2^-24), with the exact bisection roots 1.7e7 and 628 marked as points and the construction default k=4096 drawn as a horizontal rule that is safe at fp64 and unsafe at fp32.&quot; data-astro-cid-bj3fsypb&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; id=&quot;fig-02-tuning-rule-kstar&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot; xmlns:xlink=&quot;http://www.w3.org/1999/xlink&quot; version=&quot;1.1&quot; class=&quot;marks&quot; width=&quot;634&quot; height=&quot;349&quot; viewBox=&quot;0 0 634 349&quot;&gt;&lt;style&gt;#fig-02-tuning-rule-kstar [fill=&quot;#1a1d23&quot; i]{fill:var(--bg)}#fig-02-tuning-rule-kstar [stroke=&quot;#1a1d23&quot; i]{stroke:var(--bg)}#fig-02-tuning-rule-kstar [fill=&quot;#18181b&quot; i]{fill:var(--bg-panel)}#fig-02-tuning-rule-kstar [stroke=&quot;#18181b&quot; i]{stroke:var(--bg-panel)}#fig-02-tuning-rule-kstar [fill=&quot;#2c2f37&quot; i]{fill:var(--current-line)}#fig-02-tuning-rule-kstar [stroke=&quot;#2c2f37&quot; i]{stroke:var(--current-line)}#fig-02-tuning-rule-kstar [fill=&quot;#f4f5f7&quot; i]{fill:var(--fg)}#fig-02-tuning-rule-kstar [stroke=&quot;#f4f5f7&quot; i]{stroke:var(--fg)}#fig-02-tuning-rule-kstar [fill=&quot;#8a8f98&quot; i]{fill:var(--comment)}#fig-02-tuning-rule-kstar [stroke=&quot;#8a8f98&quot; i]{stroke:var(--comment)}&lt;/style&gt;&lt;rect width=&quot;634&quot; height=&quot;349&quot; fill=&quot;#1a1d23&quot;/&gt;&lt;g fill=&quot;none&quot; stroke-miterlimit=&quot;10&quot; transform=&quot;translate(102,11)&quot;&gt;&lt;g class=&quot;mark-group role-frame root&quot; role=&quot;graphics-object&quot; aria-roledescription=&quot;group mark container&quot;&gt;&lt;g transform=&quot;translate(0,0)&quot;&gt;&lt;path class=&quot;background&quot; aria-hidden=&quot;true&quot; d=&quot;M0.5,0.5h480v300h-480Z&quot;/&gt;&lt;g&gt;&lt;g class=&quot;mark-group role-axis&quot; aria-hidden=&quot;true&quot;&gt;&lt;g transform=&quot;translate(0.5,300.5)&quot;&gt;&lt;path class=&quot;background&quot; aria-hidden=&quot;true&quot; d=&quot;M0,0h0v0h0Z&quot; pointer-events=&quot;none&quot;/&gt;&lt;g&gt;&lt;g class=&quot;mark-rule role-axis-grid&quot; pointer-events=&quot;none&quot;&gt;&lt;line transform=&quot;translate(0,-300)&quot; x2=&quot;0&quot; y2=&quot;300&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(44,-300)&quot; x2=&quot;0&quot; y2=&quot;300&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(87,-300)&quot; x2=&quot;0&quot; y2=&quot;300&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(131,-300)&quot; x2=&quot;0&quot; y2=&quot;300&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(175,-300)&quot; x2=&quot;0&quot; y2=&quot;300&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(218,-300)&quot; x2=&quot;0&quot; y2=&quot;300&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(262,-300)&quot; x2=&quot;0&quot; y2=&quot;300&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(305,-300)&quot; x2=&quot;0&quot; y2=&quot;300&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(349,-300)&quot; x2=&quot;0&quot; y2=&quot;300&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(393,-300)&quot; x2=&quot;0&quot; y2=&quot;300&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(436,-300)&quot; x2=&quot;0&quot; y2=&quot;300&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(480,-300)&quot; x2=&quot;0&quot; y2=&quot;300&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;/g&gt;&lt;/g&gt;&lt;path class=&quot;foreground&quot; aria-hidden=&quot;true&quot; d=&quot;&quot; pointer-events=&quot;none&quot; display=&quot;none&quot;/&gt;&lt;/g&gt;&lt;/g&gt;&lt;g class=&quot;mark-group role-axis&quot; aria-hidden=&quot;true&quot;&gt;&lt;g transform=&quot;translate(0.5,0.5)&quot;&gt;&lt;path class=&quot;background&quot; aria-hidden=&quot;true&quot; d=&quot;M0,0h0v0h0Z&quot; pointer-events=&quot;none&quot;/&gt;&lt;g&gt;&lt;g class=&quot;mark-rule role-axis-grid&quot; pointer-events=&quot;none&quot;&gt;&lt;line transform=&quot;translate(0,300)&quot; x2=&quot;480&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,285)&quot; x2=&quot;480&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,276)&quot; x2=&quot;480&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,270)&quot; x2=&quot;480&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,265)&quot; x2=&quot;480&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,261)&quot; x2=&quot;480&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,258)&quot; x2=&quot;480&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,255)&quot; x2=&quot;480&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,252)&quot; x2=&quot;480&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,250)&quot; x2=&quot;480&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,235)&quot; x2=&quot;480&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,226)&quot; x2=&quot;480&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,220)&quot; x2=&quot;480&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,215)&quot; x2=&quot;480&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,211)&quot; x2=&quot;480&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,208)&quot; x2=&quot;480&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,205)&quot; x2=&quot;480&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,202)&quot; x2=&quot;480&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,200)&quot; x2=&quot;480&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,185)&quot; x2=&quot;480&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,176)&quot; x2=&quot;480&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,170)&quot; x2=&quot;480&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,165)&quot; x2=&quot;480&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,161)&quot; x2=&quot;480&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,158)&quot; x2=&quot;480&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,155)&quot; x2=&quot;480&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,152)&quot; x2=&quot;480&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,150)&quot; x2=&quot;480&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,135)&quot; x2=&quot;480&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,126)&quot; x2=&quot;480&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,120)&quot; x2=&quot;480&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,115)&quot; x2=&quot;480&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,111)&quot; x2=&quot;480&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,108)&quot; x2=&quot;480&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,105)&quot; x2=&quot;480&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,102)&quot; x2=&quot;480&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,100)&quot; x2=&quot;480&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,85)&quot; x2=&quot;480&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,76)&quot; x2=&quot;480&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,70)&quot; x2=&quot;480&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,65)&quot; x2=&quot;480&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,61)&quot; x2=&quot;480&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,58)&quot; x2=&quot;480&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,55)&quot; x2=&quot;480&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,52)&quot; x2=&quot;480&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,50)&quot; x2=&quot;480&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,35)&quot; x2=&quot;480&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,26)&quot; x2=&quot;480&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,20)&quot; x2=&quot;480&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,15)&quot; x2=&quot;480&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,11)&quot; x2=&quot;480&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,8)&quot; x2=&quot;480&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,5)&quot; x2=&quot;480&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,2)&quot; x2=&quot;480&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,0)&quot; x2=&quot;480&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;/g&gt;&lt;/g&gt;&lt;path class=&quot;foreground&quot; aria-hidden=&quot;true&quot; d=&quot;&quot; pointer-events=&quot;none&quot; display=&quot;none&quot;/&gt;&lt;/g&gt;&lt;/g&gt;&lt;g class=&quot;mark-group role-axis&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;axis&quot; aria-label=&quot;X-axis titled &apos;accumulator unit roundoff u_acc (log scale)&apos; for a log scale with values from 1e-17 to 0.000001&quot;&gt;&lt;g transform=&quot;translate(0.5,300.5)&quot;&gt;&lt;path class=&quot;background&quot; aria-hidden=&quot;true&quot; d=&quot;M0,0h0v0h0Z&quot; pointer-events=&quot;none&quot;/&gt;&lt;g&gt;&lt;g class=&quot;mark-rule role-axis-tick&quot; pointer-events=&quot;none&quot;&gt;&lt;line transform=&quot;translate(0,0)&quot; x2=&quot;0&quot; y2=&quot;5&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(44,0)&quot; x2=&quot;0&quot; y2=&quot;5&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(87,0)&quot; x2=&quot;0&quot; y2=&quot;5&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(131,0)&quot; x2=&quot;0&quot; y2=&quot;5&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(175,0)&quot; x2=&quot;0&quot; y2=&quot;5&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(218,0)&quot; x2=&quot;0&quot; y2=&quot;5&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(262,0)&quot; x2=&quot;0&quot; y2=&quot;5&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(305,0)&quot; x2=&quot;0&quot; y2=&quot;5&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(349,0)&quot; x2=&quot;0&quot; y2=&quot;5&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(393,0)&quot; x2=&quot;0&quot; y2=&quot;5&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(436,0)&quot; x2=&quot;0&quot; y2=&quot;5&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(480,0)&quot; x2=&quot;0&quot; y2=&quot;5&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;/g&gt;&lt;g class=&quot;mark-text role-axis-label&quot; pointer-events=&quot;none&quot;&gt;&lt;text text-anchor=&quot;start&quot; transform=&quot;translate(0,16)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;1e-17&lt;/text&gt;&lt;text text-anchor=&quot;middle&quot; transform=&quot;translate(43.63636363636358,16)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;0&quot;&gt;1e-16&lt;/text&gt;&lt;text text-anchor=&quot;middle&quot; transform=&quot;translate(87.27272727272731,16)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;1e-15&lt;/text&gt;&lt;text text-anchor=&quot;middle&quot; transform=&quot;translate(130.9090909090909,16)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;1e-14&lt;/text&gt;&lt;text text-anchor=&quot;middle&quot; transform=&quot;translate(174.54545454545456,16)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;1e-13&lt;/text&gt;&lt;text text-anchor=&quot;middle&quot; transform=&quot;translate(218.1818181818182,16)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;1e-12&lt;/text&gt;&lt;text text-anchor=&quot;middle&quot; transform=&quot;translate(261.8181818181818,16)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;1e-11&lt;/text&gt;&lt;text text-anchor=&quot;middle&quot; transform=&quot;translate(305.45454545454544,16)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;1e-10&lt;/text&gt;&lt;text text-anchor=&quot;middle&quot; transform=&quot;translate(349.0909090909091,16)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;1e-9&lt;/text&gt;&lt;text text-anchor=&quot;middle&quot; transform=&quot;translate(392.7272727272727,16)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;1e-8&lt;/text&gt;&lt;text text-anchor=&quot;middle&quot; transform=&quot;translate(436.3636363636364,16)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;1e-7&lt;/text&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(480,16)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;0&quot;&gt;0.000001&lt;/text&gt;&lt;/g&gt;&lt;g class=&quot;mark-rule role-axis-domain&quot; pointer-events=&quot;none&quot;&gt;&lt;line transform=&quot;translate(0,0)&quot; x2=&quot;480&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;/g&gt;&lt;g class=&quot;mark-text role-axis-title&quot; pointer-events=&quot;none&quot;&gt;&lt;text text-anchor=&quot;middle&quot; transform=&quot;translate(240,31)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;12px&quot; font-weight=&quot;bold&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;accumulator unit roundoff u_acc (log scale)&lt;/text&gt;&lt;/g&gt;&lt;/g&gt;&lt;path class=&quot;foreground&quot; aria-hidden=&quot;true&quot; d=&quot;&quot; pointer-events=&quot;none&quot; display=&quot;none&quot;/&gt;&lt;/g&gt;&lt;/g&gt;&lt;g class=&quot;mark-group role-axis&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;axis&quot; aria-label=&quot;Y-axis titled &apos;safe reseed period k* (log scale)&apos; for a log scale with values from 100 to 100,000,000&quot;&gt;&lt;g transform=&quot;translate(0.5,0.5)&quot;&gt;&lt;path class=&quot;background&quot; aria-hidden=&quot;true&quot; d=&quot;M0,0h0v0h0Z&quot; pointer-events=&quot;none&quot;/&gt;&lt;g&gt;&lt;g class=&quot;mark-rule role-axis-tick&quot; pointer-events=&quot;none&quot;&gt;&lt;line transform=&quot;translate(0,300)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,285)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,276)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,270)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,265)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,261)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,258)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,255)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,252)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,250)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,235)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,226)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,220)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,215)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,211)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,208)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,205)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,202)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,200)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,185)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,176)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,170)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,165)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,161)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,158)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,155)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,152)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,150)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,135)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,126)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,120)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,115)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,111)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,108)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,105)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,102)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,100)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,85)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,76)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,70)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,65)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,61)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,58)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,55)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,52)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,50)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,35)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,26)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,20)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,15)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,11)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,8)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,5)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,2)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,0)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;/g&gt;&lt;g class=&quot;mark-text role-axis-label&quot; pointer-events=&quot;none&quot;&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,303)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;100&lt;/text&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,287.94850021680094)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,279.14393726401687)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,272.8970004336019)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,268.05149978319906)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,264.09243748081786)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,260.74509799928717)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,257.84550065040287)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,255.28787452803377)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,253)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;1,000&lt;/text&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,237.94850021680097)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,229.1439372640169)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,222.8970004336019)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,218.05149978319906)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,214.09243748081786)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,210.74509799928717)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,207.84550065040287)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,205.28787452803377)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,203.00000000000003)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;10,000&lt;/text&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,187.948500216801)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,179.14393726401687)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,172.89700043360193)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,168.05149978319906)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,164.09243748081784)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,160.7450979992872)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,157.84550065040284)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,155.2878745280338)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,153)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;100,000&lt;/text&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,137.94850021680097)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,129.14393726401693)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,122.89700043360189)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,118.05149978319909)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,114.09243748081784)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,110.74509799928718)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,107.84550065040284)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,105.28787452803377)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,103.00000000000004)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;1,000,000&lt;/text&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,87.94850021680097)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,79.1439372640169)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,72.89700043360193)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,68.05149978319909)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,64.09243748081782)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,60.74509799928719)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,57.845500650402855)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,55.28787452803384)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,53.00000000000002)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;10,000,000&lt;/text&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,37.94850021680098)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,29.143937264016937)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,22.897000433601907)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,18.051499783199105)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,14.092437480817862)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,10.745097999287232)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,7.845500650402867)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,5.287874528033818)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,3)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;100,000,000&lt;/text&gt;&lt;/g&gt;&lt;g class=&quot;mark-rule role-axis-domain&quot; pointer-events=&quot;none&quot;&gt;&lt;line transform=&quot;translate(0,300)&quot; x2=&quot;0&quot; y2=&quot;-300&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;/g&gt;&lt;g class=&quot;mark-text role-axis-title&quot; pointer-events=&quot;none&quot;&gt;&lt;text text-anchor=&quot;middle&quot; transform=&quot;translate(-83.59999084472656,150) rotate(-90) translate(0,-3)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;12px&quot; font-weight=&quot;bold&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;safe reseed period k* (log scale)&lt;/text&gt;&lt;/g&gt;&lt;/g&gt;&lt;path class=&quot;foreground&quot; aria-hidden=&quot;true&quot; d=&quot;&quot; pointer-events=&quot;none&quot; display=&quot;none&quot;/&gt;&lt;/g&gt;&lt;/g&gt;&lt;g class=&quot;mark-line role-mark layer_0_marks&quot; role=&quot;graphics-object&quot; aria-roledescription=&quot;line mark container&quot;&gt;&lt;path aria-label=&quot;accumulator unit roundoff u_acc (log scale): 1.11022302463e-16; safe reseed period k* (log scale): 15663241&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;line mark&quot; d=&quot;M45.618,40.256L111.297,77.885L176.976,115.513L242.656,153.142L308.335,190.771L374.014,228.4L426.558,258.503&quot; stroke=&quot;#56b4e9&quot; stroke-width=&quot;2.5&quot;/&gt;&lt;/g&gt;&lt;g class=&quot;mark-symbol role-mark layer_1_marks&quot; role=&quot;graphics-object&quot; aria-roledescription=&quot;symbol mark container&quot;&gt;&lt;path aria-label=&quot;u_acc: 1.11022302463e-16; kstar: 17000000&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;point&quot; transform=&quot;translate(45.617900937119884,38.47755393108637)&quot; d=&quot;M5.244,0A5.244,5.244,0,1,1,-5.244,0A5.244,5.244,0,1,1,5.244,0&quot; fill=&quot;#56b4e9&quot; stroke-width=&quot;2&quot; opacity=&quot;0.7&quot;/&gt;&lt;path aria-label=&quot;u_acc: 5.96046447754e-8; kstar: 628&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;point&quot; transform=&quot;translate(426.557677268267,260.1020178131402)&quot; d=&quot;M5.244,0A5.244,5.244,0,1,1,-5.244,0A5.244,5.244,0,1,1,5.244,0&quot; fill=&quot;#56b4e9&quot; stroke-width=&quot;2&quot; opacity=&quot;0.7&quot;/&gt;&lt;/g&gt;&lt;g class=&quot;mark-text role-mark layer_2_marks&quot; role=&quot;graphics-object&quot; aria-roledescription=&quot;text mark container&quot;&gt;&lt;text aria-label=&quot;u_acc: 1.11022302463e-16; kstar: 17000000; label: fp64 root ≈ 1.7e7&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;text mark&quot; text-anchor=&quot;start&quot; transform=&quot;translate(55.617900937119884,35.47755393108637)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;10px&quot; fill=&quot;black&quot;&gt;fp64 root ≈ 1.7e7&lt;/text&gt;&lt;text aria-label=&quot;u_acc: 5.96046447754e-8; kstar: 628; label: fp32 root = 628&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;text mark&quot; text-anchor=&quot;start&quot; transform=&quot;translate(436.557677268267,257.1020178131402)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;10px&quot; fill=&quot;black&quot;&gt;fp32 root = 628&lt;/text&gt;&lt;/g&gt;&lt;g class=&quot;mark-rule role-mark layer_3_marks&quot; role=&quot;graphics-object&quot; aria-roledescription=&quot;rule mark container&quot;&gt;&lt;line aria-label=&quot;kstar: 4096&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;rule mark&quot; transform=&quot;translate(480,219.3820026016113)&quot; x2=&quot;-480&quot; y2=&quot;0&quot; stroke=&quot;#e69f00&quot; stroke-width=&quot;2&quot; stroke-dasharray=&quot;6,4&quot;/&gt;&lt;/g&gt;&lt;g class=&quot;mark-text role-mark layer_4_marks&quot; role=&quot;graphics-object&quot; aria-roledescription=&quot;text mark container&quot;&gt;&lt;text aria-label=&quot;u_acc: 6e-17; kstar: 4096; label: default k = 4096 — safe at fp64, 43x over tolerance at fp32&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;text mark&quot; text-anchor=&quot;start&quot; transform=&quot;translate(37.95569092583171,214.3820026016113)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;10px&quot; fill=&quot;#e69f00&quot;&gt;default k = 4096 — safe at fp64, 43x over tolerance at fp32&lt;/text&gt;&lt;/g&gt;&lt;/g&gt;&lt;path class=&quot;foreground&quot; aria-hidden=&quot;true&quot; d=&quot;&quot; display=&quot;none&quot;/&gt;&lt;/g&gt;&lt;/g&gt;&lt;/g&gt;&lt;/svg&gt;&lt;/div&gt; &lt;figcaption data-astro-cid-bj3fsypb&gt;The tuning rule k* ~ sqrt(tau / (8 u T*)) across accumulator precision, with the exact bisection roots and the k = 4096 default marked. The default clears fp64 by ~4,000x and overshoots the fp32 root by ~6.5x — a ~43x tolerance excess. Computed from the closed form and roots printed in §SM10.1 of the preprint, doi:10.5281/zenodo.20599315.&lt;/figcaption&gt;  &lt;/figure&gt; 
&lt;h2 id=&quot;the-row-where-anchoring-loses&quot;&gt;The row where anchoring loses&lt;a class=&quot;heading-anchor&quot; href=&quot;#the-row-where-anchoring-loses&quot; aria-label=&quot;Link to this section&quot;&gt;¶&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The measured validation, run on the self-anchored sliding sum-of-squares kernel that carries the same recurrence topology (Table 2 of the preprint): 18 (precision, accumulator, &lt;em&gt;k&lt;/em&gt;) cells across &lt;em&gt;N&lt;/em&gt; = 2&lt;sup&gt;13&lt;/sup&gt;…2&lt;sup&gt;24&lt;/sup&gt;, seven corpora, 30 seeds. Every cell holds its measured drift below the envelope — zero violations. At f64 the anchored cells keep drift at or below 4.9 × 10&lt;sup&gt;−8&lt;/sup&gt; against uniform-in-&lt;em&gt;N&lt;/em&gt; envelopes of 7.6 × 10&lt;sup&gt;−4&lt;/sup&gt; (&lt;em&gt;k&lt;/em&gt; = 676) and 2.5 × 10&lt;sup&gt;−2&lt;/sup&gt; (&lt;em&gt;k&lt;/em&gt; = 4096), while the unanchored baseline’s envelope grows to 4.1 × 10&lt;sup&gt;5&lt;/sup&gt; by &lt;em&gt;N&lt;/em&gt; = 2&lt;sup&gt;24&lt;/sup&gt;.&lt;/p&gt;
&lt;span class=&quot;marginnote&quot; role=&quot;note&quot;&gt;Read the f64 rows here against the drift table above and the two compensated accumulators look like they have swapped places: KBN left a residual there and is exact here, Ogita the reverse. That is the kernel, not a transcription slip. The earlier table sums a &lt;em&gt;signed&lt;/em&gt; inner product, where Ogita–Rump–Oishi is correctly rounded on this data and KBN leaves a small residual. This one sums an &lt;em&gt;all-positive&lt;/em&gt; sum of squares, where there is no cancellation left to compensate, so KBN is bit-exact and the doubly compensated path carries a residual at the scale of one f64 ulp. The preprint names it directly: “a kernel property, not a measurement inconsistency.”&lt;/span&gt;
&lt;figure class=&quot;full&quot; data-astro-cid-bj3fsypb&gt; &lt;div class=&quot;svgfig svgfig-chart&quot; role=&quot;img&quot; aria-label=&quot;Measured drift max vs error envelope for all 18 (precision, accumulator, k) cells on a log scale: anchored envelopes sit uniform in N (7.6e-4 and 2.5e-2 at f64; 4.1e5 and 1.3e7 at f32) while unanchored envelopes blow up to 4.1e5 (f64) and 3.1e12 (f32); measured drift sits below the envelope in every cell; the unanchored Ogita-f32 cell at 1.27 beats every anchored f32 cell.&quot; data-astro-cid-bj3fsypb&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; id=&quot;fig-01-anchored-vs-unanchored&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot; xmlns:xlink=&quot;http://www.w3.org/1999/xlink&quot; version=&quot;1.1&quot; class=&quot;marks&quot; width=&quot;874&quot; height=&quot;432&quot; viewBox=&quot;0 0 874 432&quot;&gt;&lt;style&gt;#fig-01-anchored-vs-unanchored [fill=&quot;#1a1d23&quot; i]{fill:var(--bg)}#fig-01-anchored-vs-unanchored [stroke=&quot;#1a1d23&quot; i]{stroke:var(--bg)}#fig-01-anchored-vs-unanchored [fill=&quot;#18181b&quot; i]{fill:var(--bg-panel)}#fig-01-anchored-vs-unanchored [stroke=&quot;#18181b&quot; i]{stroke:var(--bg-panel)}#fig-01-anchored-vs-unanchored [fill=&quot;#2c2f37&quot; i]{fill:var(--current-line)}#fig-01-anchored-vs-unanchored [stroke=&quot;#2c2f37&quot; i]{stroke:var(--current-line)}#fig-01-anchored-vs-unanchored [fill=&quot;#f4f5f7&quot; i]{fill:var(--fg)}#fig-01-anchored-vs-unanchored [stroke=&quot;#f4f5f7&quot; i]{stroke:var(--fg)}#fig-01-anchored-vs-unanchored [fill=&quot;#8a8f98&quot; i]{fill:var(--comment)}#fig-01-anchored-vs-unanchored [stroke=&quot;#8a8f98&quot; i]{stroke:var(--comment)}&lt;/style&gt;&lt;rect width=&quot;874&quot; height=&quot;432&quot; fill=&quot;#1a1d23&quot;/&gt;&lt;g fill=&quot;none&quot; stroke-miterlimit=&quot;10&quot; transform=&quot;translate(159,32)&quot;&gt;&lt;g class=&quot;mark-group role-frame root&quot; role=&quot;graphics-object&quot; aria-roledescription=&quot;group mark container&quot;&gt;&lt;g transform=&quot;translate(0,0)&quot;&gt;&lt;path class=&quot;background&quot; aria-hidden=&quot;true&quot; d=&quot;M0,0h0v0h0Z&quot;/&gt;&lt;g&gt;&lt;g class=&quot;mark-group role-row-header row_header&quot; role=&quot;graphics-object&quot; aria-roledescription=&quot;group mark container&quot;&gt;&lt;g transform=&quot;translate(-1,0)&quot;&gt;&lt;path class=&quot;background&quot; aria-hidden=&quot;true&quot; d=&quot;M0,0h0v300h0Z&quot;/&gt;&lt;g&gt;&lt;g class=&quot;mark-group role-axis&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;axis&quot; aria-label=&quot;Y-axis titled &apos;absolute forward error (log scale)&apos; for a log scale with values from 1e-9 to 1e+13&quot;&gt;&lt;g transform=&quot;translate(0.5,0.5)&quot;&gt;&lt;path class=&quot;background&quot; aria-hidden=&quot;true&quot; d=&quot;M0,0h0v0h0Z&quot; pointer-events=&quot;none&quot;/&gt;&lt;g&gt;&lt;g class=&quot;mark-rule role-axis-tick&quot; pointer-events=&quot;none&quot;&gt;&lt;line transform=&quot;translate(0,286)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,259)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,232)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,205)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,177)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,150)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,123)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,95)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,68)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,41)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,14)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;/g&gt;&lt;g class=&quot;mark-text role-axis-label&quot; pointer-events=&quot;none&quot;&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,291.3636363636364)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;15px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;1e-8&lt;/text&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,264.0909090909091)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;15px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;0.000001&lt;/text&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,236.8181818181818)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;15px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;0.0001&lt;/text&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,209.54545454545456)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;15px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;0.01&lt;/text&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,182.27272727272728)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;15px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;1&lt;/text&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,155)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;15px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;100&lt;/text&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,127.72727272727275)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;15px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;10,000&lt;/text&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,100.45454545454547)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;15px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;1,000,000&lt;/text&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,73.18181818181819)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;15px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;100,000,000&lt;/text&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,45.90909090909091)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;15px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;10,000,000,000&lt;/text&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,18.636363636363658)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;15px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;1e+12&lt;/text&gt;&lt;/g&gt;&lt;g class=&quot;mark-rule role-axis-domain&quot; pointer-events=&quot;none&quot;&gt;&lt;line transform=&quot;translate(0,300)&quot; x2=&quot;0&quot; y2=&quot;-300&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;/g&gt;&lt;g class=&quot;mark-text role-axis-title&quot; pointer-events=&quot;none&quot;&gt;&lt;text text-anchor=&quot;middle&quot; transform=&quot;translate(-137,150) rotate(-90) translate(0,-3)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;16px&quot; font-weight=&quot;bold&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;absolute forward error (log scale)&lt;/text&gt;&lt;/g&gt;&lt;/g&gt;&lt;path class=&quot;foreground&quot; aria-hidden=&quot;true&quot; d=&quot;&quot; pointer-events=&quot;none&quot; display=&quot;none&quot;/&gt;&lt;/g&gt;&lt;/g&gt;&lt;/g&gt;&lt;path class=&quot;foreground&quot; aria-hidden=&quot;true&quot; d=&quot;&quot; display=&quot;none&quot;/&gt;&lt;/g&gt;&lt;/g&gt;&lt;g class=&quot;mark-group role-column-header column_header&quot; role=&quot;graphics-object&quot; aria-roledescription=&quot;group mark container&quot;&gt;&lt;g transform=&quot;translate(0,-1)&quot;&gt;&lt;path class=&quot;background&quot; aria-hidden=&quot;true&quot; d=&quot;M0,0h280v0h-280Z&quot;/&gt;&lt;g&gt;&lt;g class=&quot;mark-group role-title&quot;&gt;&lt;g transform=&quot;translate(140,-26)&quot;&gt;&lt;path class=&quot;background&quot; aria-hidden=&quot;true&quot; d=&quot;M0,0h0v0h0Z&quot; pointer-events=&quot;none&quot;/&gt;&lt;g&gt;&lt;g class=&quot;mark-text role-title-text&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;title&quot; aria-label=&quot;Title text &apos;f64&apos;&quot; pointer-events=&quot;none&quot;&gt;&lt;text text-anchor=&quot;middle&quot; transform=&quot;translate(0,13)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;16px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;f64&lt;/text&gt;&lt;/g&gt;&lt;/g&gt;&lt;path class=&quot;foreground&quot; aria-hidden=&quot;true&quot; d=&quot;&quot; pointer-events=&quot;none&quot; display=&quot;none&quot;/&gt;&lt;/g&gt;&lt;/g&gt;&lt;/g&gt;&lt;path class=&quot;foreground&quot; aria-hidden=&quot;true&quot; d=&quot;&quot; display=&quot;none&quot;/&gt;&lt;/g&gt;&lt;g transform=&quot;translate(302,-1)&quot;&gt;&lt;path class=&quot;background&quot; aria-hidden=&quot;true&quot; d=&quot;M0,0h280v0h-280Z&quot;/&gt;&lt;g&gt;&lt;g class=&quot;mark-group role-title&quot;&gt;&lt;g transform=&quot;translate(140,-26)&quot;&gt;&lt;path class=&quot;background&quot; aria-hidden=&quot;true&quot; d=&quot;M0,0h0v0h0Z&quot; pointer-events=&quot;none&quot;/&gt;&lt;g&gt;&lt;g class=&quot;mark-text role-title-text&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;title&quot; aria-label=&quot;Title text &apos;f32&apos;&quot; pointer-events=&quot;none&quot;&gt;&lt;text text-anchor=&quot;middle&quot; transform=&quot;translate(0,13)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;16px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;f32&lt;/text&gt;&lt;/g&gt;&lt;/g&gt;&lt;path class=&quot;foreground&quot; aria-hidden=&quot;true&quot; d=&quot;&quot; pointer-events=&quot;none&quot; display=&quot;none&quot;/&gt;&lt;/g&gt;&lt;/g&gt;&lt;/g&gt;&lt;path class=&quot;foreground&quot; aria-hidden=&quot;true&quot; d=&quot;&quot; display=&quot;none&quot;/&gt;&lt;/g&gt;&lt;/g&gt;&lt;g class=&quot;mark-group role-column-footer column_footer&quot; role=&quot;graphics-object&quot; aria-roledescription=&quot;group mark container&quot;&gt;&lt;g transform=&quot;translate(0,301)&quot;&gt;&lt;path class=&quot;background&quot; aria-hidden=&quot;true&quot; d=&quot;M0,0h280v0h-280Z&quot;/&gt;&lt;g&gt;&lt;g class=&quot;mark-group role-axis&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;axis&quot; aria-label=&quot;X-axis for a discrete scale with 9 values: naive k=0, kbn k=0, ogita k=0, naive k=676, kbn k=676, ending with ogita k=4096&quot;&gt;&lt;g transform=&quot;translate(0.5,0.5)&quot;&gt;&lt;path class=&quot;background&quot; aria-hidden=&quot;true&quot; d=&quot;M0,0h0v0h0Z&quot; pointer-events=&quot;none&quot;/&gt;&lt;g&gt;&lt;g class=&quot;mark-rule role-axis-tick&quot; pointer-events=&quot;none&quot;&gt;&lt;line transform=&quot;translate(15,0)&quot; x2=&quot;0&quot; y2=&quot;5&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(46,0)&quot; x2=&quot;0&quot; y2=&quot;5&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(77,0)&quot; x2=&quot;0&quot; y2=&quot;5&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(108,0)&quot; x2=&quot;0&quot; y2=&quot;5&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(139,0)&quot; x2=&quot;0&quot; y2=&quot;5&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(171,0)&quot; x2=&quot;0&quot; y2=&quot;5&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(202,0)&quot; x2=&quot;0&quot; y2=&quot;5&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(233,0)&quot; x2=&quot;0&quot; y2=&quot;5&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(264,0)&quot; x2=&quot;0&quot; y2=&quot;5&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;/g&gt;&lt;g class=&quot;mark-text role-axis-label&quot; pointer-events=&quot;none&quot;&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(15.055555555555552,7) rotate(315) translate(0,12)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;15px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;naive k=0&lt;/text&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(46.166666666666664,7) rotate(315) translate(0,12)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;15px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;kbn k=0&lt;/text&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(77.27777777777779,7) rotate(315) translate(0,12)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;15px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;ogita k=0&lt;/text&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(108.38888888888889,7) rotate(315) translate(0,12)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;15px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;naive k=676&lt;/text&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(139.49999999999997,7) rotate(315) translate(0,12)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;15px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;kbn k=676&lt;/text&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(170.6111111111111,7) rotate(315) translate(0,12)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;15px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;ogita k=676&lt;/text&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(201.7222222222222,7) rotate(315) translate(0,12)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;15px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;naive k=4096&lt;/text&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(232.83333333333331,7) rotate(315) translate(0,12)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;15px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;kbn k=4096&lt;/text&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(263.94444444444446,7) rotate(315) translate(0,12)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;15px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;ogita k=4096&lt;/text&gt;&lt;/g&gt;&lt;g class=&quot;mark-rule role-axis-domain&quot; pointer-events=&quot;none&quot;&gt;&lt;line transform=&quot;translate(0,0)&quot; x2=&quot;280&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;/g&gt;&lt;/g&gt;&lt;path class=&quot;foreground&quot; aria-hidden=&quot;true&quot; d=&quot;&quot; pointer-events=&quot;none&quot; display=&quot;none&quot;/&gt;&lt;/g&gt;&lt;/g&gt;&lt;/g&gt;&lt;path class=&quot;foreground&quot; aria-hidden=&quot;true&quot; d=&quot;&quot; display=&quot;none&quot;/&gt;&lt;/g&gt;&lt;g transform=&quot;translate(302,301)&quot;&gt;&lt;path class=&quot;background&quot; aria-hidden=&quot;true&quot; d=&quot;M0,0h280v0h-280Z&quot;/&gt;&lt;g&gt;&lt;g class=&quot;mark-group role-axis&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;axis&quot; aria-label=&quot;X-axis for a discrete scale with 9 values: naive k=0, kbn k=0, ogita k=0, naive k=676, kbn k=676, ending with ogita k=4096&quot;&gt;&lt;g transform=&quot;translate(0.5,0.5)&quot;&gt;&lt;path class=&quot;background&quot; aria-hidden=&quot;true&quot; d=&quot;M0,0h0v0h0Z&quot; pointer-events=&quot;none&quot;/&gt;&lt;g&gt;&lt;g class=&quot;mark-rule role-axis-tick&quot; pointer-events=&quot;none&quot;&gt;&lt;line transform=&quot;translate(15,0)&quot; x2=&quot;0&quot; y2=&quot;5&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(46,0)&quot; x2=&quot;0&quot; y2=&quot;5&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(77,0)&quot; x2=&quot;0&quot; y2=&quot;5&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(108,0)&quot; x2=&quot;0&quot; y2=&quot;5&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(139,0)&quot; x2=&quot;0&quot; y2=&quot;5&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(171,0)&quot; x2=&quot;0&quot; y2=&quot;5&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(202,0)&quot; x2=&quot;0&quot; y2=&quot;5&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(233,0)&quot; x2=&quot;0&quot; y2=&quot;5&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(264,0)&quot; x2=&quot;0&quot; y2=&quot;5&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;/g&gt;&lt;g class=&quot;mark-text role-axis-label&quot; pointer-events=&quot;none&quot;&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(15.055555555555552,7) rotate(315) translate(0,12)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;15px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;naive k=0&lt;/text&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(46.166666666666664,7) rotate(315) translate(0,12)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;15px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;kbn k=0&lt;/text&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(77.27777777777779,7) rotate(315) translate(0,12)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;15px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;ogita k=0&lt;/text&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(108.38888888888889,7) rotate(315) translate(0,12)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;15px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;naive k=676&lt;/text&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(139.49999999999997,7) rotate(315) translate(0,12)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;15px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;kbn k=676&lt;/text&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(170.6111111111111,7) rotate(315) translate(0,12)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;15px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;ogita k=676&lt;/text&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(201.7222222222222,7) rotate(315) translate(0,12)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;15px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;naive k=4096&lt;/text&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(232.83333333333331,7) rotate(315) translate(0,12)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;15px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;kbn k=4096&lt;/text&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(263.94444444444446,7) rotate(315) translate(0,12)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;15px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;ogita k=4096&lt;/text&gt;&lt;/g&gt;&lt;g class=&quot;mark-rule role-axis-domain&quot; pointer-events=&quot;none&quot;&gt;&lt;line transform=&quot;translate(0,0)&quot; x2=&quot;280&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;/g&gt;&lt;/g&gt;&lt;path class=&quot;foreground&quot; aria-hidden=&quot;true&quot; d=&quot;&quot; pointer-events=&quot;none&quot; display=&quot;none&quot;/&gt;&lt;/g&gt;&lt;/g&gt;&lt;/g&gt;&lt;path class=&quot;foreground&quot; aria-hidden=&quot;true&quot; d=&quot;&quot; display=&quot;none&quot;/&gt;&lt;/g&gt;&lt;/g&gt;&lt;g class=&quot;mark-group role-scope cell&quot; role=&quot;graphics-object&quot; aria-roledescription=&quot;group mark container&quot;&gt;&lt;g transform=&quot;translate(0,0)&quot;&gt;&lt;path class=&quot;background&quot; aria-hidden=&quot;true&quot; d=&quot;M0.5,0.5h280v300h-280Z&quot;/&gt;&lt;g&gt;&lt;g class=&quot;mark-group role-axis&quot; aria-hidden=&quot;true&quot;&gt;&lt;g transform=&quot;translate(0.5,0.5)&quot;&gt;&lt;path class=&quot;background&quot; aria-hidden=&quot;true&quot; d=&quot;M0,0h0v0h0Z&quot; pointer-events=&quot;none&quot;/&gt;&lt;g&gt;&lt;g class=&quot;mark-rule role-axis-grid&quot; pointer-events=&quot;none&quot;&gt;&lt;line transform=&quot;translate(0,286)&quot; x2=&quot;280&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,259)&quot; x2=&quot;280&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,232)&quot; x2=&quot;280&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,205)&quot; x2=&quot;280&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,177)&quot; x2=&quot;280&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,150)&quot; x2=&quot;280&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,123)&quot; x2=&quot;280&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,95)&quot; x2=&quot;280&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,68)&quot; x2=&quot;280&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,41)&quot; x2=&quot;280&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,14)&quot; x2=&quot;280&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;/g&gt;&lt;/g&gt;&lt;path class=&quot;foreground&quot; aria-hidden=&quot;true&quot; d=&quot;&quot; pointer-events=&quot;none&quot; display=&quot;none&quot;/&gt;&lt;/g&gt;&lt;/g&gt;&lt;g class=&quot;mark-rect role-mark child_layer_0_marks&quot; role=&quot;graphics-object&quot; aria-roledescription=&quot;rect mark container&quot;&gt;&lt;path aria-label=&quot;cell: naive k=0; absolute forward error (log scale): 408000; regime: unanchored&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;tick&quot; d=&quot;M4.555555555555552,99.7637250487744h22v2h-22Z&quot; fill=&quot;#e69f00&quot; opacity=&quot;0.7&quot;/&gt;&lt;path aria-label=&quot;cell: naive k=676; absolute forward error (log scale): 0.00076; regime: anchored&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;tick&quot; d=&quot;M97.88888888888889,218.8070873779892h22v2h-22Z&quot; fill=&quot;#56b4e9&quot; opacity=&quot;0.7&quot;/&gt;&lt;path aria-label=&quot;cell: naive k=4096; absolute forward error (log scale): 0.0249; regime: anchored&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;tick&quot; d=&quot;M191.2222222222222,198.14273617596726h22v2h-22Z&quot; fill=&quot;#56b4e9&quot; opacity=&quot;0.7&quot;/&gt;&lt;path aria-label=&quot;cell: kbn k=0; absolute forward error (log scale): 408000; regime: unanchored&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;tick&quot; d=&quot;M35.666666666666664,99.7637250487744h22v2h-22Z&quot; fill=&quot;#e69f00&quot; opacity=&quot;0.7&quot;/&gt;&lt;path aria-label=&quot;cell: kbn k=676; absolute forward error (log scale): 0.00076; regime: anchored&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;tick&quot; d=&quot;M128.99999999999997,218.8070873779892h22v2h-22Z&quot; fill=&quot;#56b4e9&quot; opacity=&quot;0.7&quot;/&gt;&lt;path aria-label=&quot;cell: kbn k=4096; absolute forward error (log scale): 0.0249; regime: anchored&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;tick&quot; d=&quot;M222.33333333333331,198.14273617596726h22v2h-22Z&quot; fill=&quot;#56b4e9&quot; opacity=&quot;0.7&quot;/&gt;&lt;path aria-label=&quot;cell: ogita k=0; absolute forward error (log scale): 408000; regime: unanchored&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;tick&quot; d=&quot;M66.77777777777779,99.7637250487744h22v2h-22Z&quot; fill=&quot;#e69f00&quot; opacity=&quot;0.7&quot;/&gt;&lt;path aria-label=&quot;cell: ogita k=676; absolute forward error (log scale): 0.00076; regime: anchored&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;tick&quot; d=&quot;M160.1111111111111,218.8070873779892h22v2h-22Z&quot; fill=&quot;#56b4e9&quot; opacity=&quot;0.7&quot;/&gt;&lt;path aria-label=&quot;cell: ogita k=4096; absolute forward error (log scale): 0.0249; regime: anchored&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;tick&quot; d=&quot;M253.44444444444446,198.14273617596726h22v2h-22Z&quot; fill=&quot;#56b4e9&quot; opacity=&quot;0.7&quot;/&gt;&lt;/g&gt;&lt;g class=&quot;mark-symbol role-mark child_layer_1_marks&quot; role=&quot;graphics-object&quot; aria-roledescription=&quot;symbol mark container&quot;&gt;&lt;path aria-label=&quot;cell: naive k=0; drift: 0.00000107; regime: unanchored&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;point&quot; transform=&quot;translate(15.555555555555552,258.6902212133835)&quot; d=&quot;M4.183,0A4.183,4.183,0,1,1,-4.183,0A4.183,4.183,0,1,1,4.183,0&quot; fill=&quot;#e69f00&quot; stroke-width=&quot;2&quot; opacity=&quot;0.7&quot;/&gt;&lt;path aria-label=&quot;cell: naive k=676; drift: 1.49e-8; regime: anchored&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;point&quot; transform=&quot;translate(108.88888888888889,284.00200543074175)&quot; d=&quot;M4.183,0A4.183,4.183,0,1,1,-4.183,0A4.183,4.183,0,1,1,4.183,0&quot; fill=&quot;#56b4e9&quot; stroke-width=&quot;2&quot; opacity=&quot;0.7&quot;/&gt;&lt;path aria-label=&quot;cell: naive k=4096; drift: 4.84e-8; regime: anchored&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;point&quot; transform=&quot;translate(202.2222222222222,277.0248359775762)&quot; d=&quot;M4.183,0A4.183,4.183,0,1,1,-4.183,0A4.183,4.183,0,1,1,4.183,0&quot; fill=&quot;#56b4e9&quot; stroke-width=&quot;2&quot; opacity=&quot;0.7&quot;/&gt;&lt;path aria-label=&quot;cell: kbn k=676; drift: 2.24e-8; regime: anchored&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;point&quot; transform=&quot;translate(139.99999999999997,281.58752702271596)&quot; d=&quot;M4.183,0A4.183,4.183,0,1,1,-4.183,0A4.183,4.183,0,1,1,4.183,0&quot; fill=&quot;#56b4e9&quot; stroke-width=&quot;2&quot; opacity=&quot;0.7&quot;/&gt;&lt;path aria-label=&quot;cell: kbn k=4096; drift: 1.49e-8; regime: anchored&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;point&quot; transform=&quot;translate(233.33333333333331,284.00200543074175)&quot; d=&quot;M4.183,0A4.183,4.183,0,1,1,-4.183,0A4.183,4.183,0,1,1,4.183,0&quot; fill=&quot;#56b4e9&quot; stroke-width=&quot;2&quot; opacity=&quot;0.7&quot;/&gt;&lt;path aria-label=&quot;cell: ogita k=0; drift: 7.45e-9; regime: unanchored&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;point&quot; transform=&quot;translate(77.77777777777779,288.10695991706876)&quot; d=&quot;M4.183,0A4.183,4.183,0,1,1,-4.183,0A4.183,4.183,0,1,1,4.183,0&quot; fill=&quot;#e69f00&quot; stroke-width=&quot;2&quot; opacity=&quot;0.7&quot;/&gt;&lt;path aria-label=&quot;cell: ogita k=676; drift: 2.24e-8; regime: anchored&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;point&quot; transform=&quot;translate(171.1111111111111,281.58752702271596)&quot; d=&quot;M4.183,0A4.183,4.183,0,1,1,-4.183,0A4.183,4.183,0,1,1,4.183,0&quot; fill=&quot;#56b4e9&quot; stroke-width=&quot;2&quot; opacity=&quot;0.7&quot;/&gt;&lt;path aria-label=&quot;cell: ogita k=4096; drift: 1.49e-8; regime: anchored&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;point&quot; transform=&quot;translate(264.44444444444446,284.00200543074175)&quot; d=&quot;M4.183,0A4.183,4.183,0,1,1,-4.183,0A4.183,4.183,0,1,1,4.183,0&quot; fill=&quot;#56b4e9&quot; stroke-width=&quot;2&quot; opacity=&quot;0.7&quot;/&gt;&lt;/g&gt;&lt;/g&gt;&lt;path class=&quot;foreground&quot; aria-hidden=&quot;true&quot; d=&quot;&quot; display=&quot;none&quot;/&gt;&lt;/g&gt;&lt;g transform=&quot;translate(302,0)&quot;&gt;&lt;path class=&quot;background&quot; aria-hidden=&quot;true&quot; d=&quot;M0.5,0.5h280v300h-280Z&quot;/&gt;&lt;g&gt;&lt;g class=&quot;mark-group role-axis&quot; aria-hidden=&quot;true&quot;&gt;&lt;g transform=&quot;translate(0.5,0.5)&quot;&gt;&lt;path class=&quot;background&quot; aria-hidden=&quot;true&quot; d=&quot;M0,0h0v0h0Z&quot; pointer-events=&quot;none&quot;/&gt;&lt;g&gt;&lt;g class=&quot;mark-rule role-axis-grid&quot; pointer-events=&quot;none&quot;&gt;&lt;line transform=&quot;translate(0,286)&quot; x2=&quot;280&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,259)&quot; x2=&quot;280&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,232)&quot; x2=&quot;280&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,205)&quot; x2=&quot;280&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,177)&quot; x2=&quot;280&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,150)&quot; x2=&quot;280&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,123)&quot; x2=&quot;280&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,95)&quot; x2=&quot;280&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,68)&quot; x2=&quot;280&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,41)&quot; x2=&quot;280&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,14)&quot; x2=&quot;280&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;/g&gt;&lt;/g&gt;&lt;path class=&quot;foreground&quot; aria-hidden=&quot;true&quot; d=&quot;&quot; pointer-events=&quot;none&quot; display=&quot;none&quot;/&gt;&lt;/g&gt;&lt;/g&gt;&lt;g class=&quot;mark-rect role-mark child_layer_0_marks&quot; role=&quot;graphics-object&quot; aria-roledescription=&quot;rect mark container&quot;&gt;&lt;path aria-label=&quot;cell: naive k=0; absolute forward error (log scale): 3.07e+12; regime: unanchored&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;tick&quot; d=&quot;M4.555555555555552,5.993567607129281h22v2h-22Z&quot; fill=&quot;#e69f00&quot; opacity=&quot;0.7&quot;/&gt;&lt;path aria-label=&quot;cell: naive k=676; absolute forward error (log scale): 408000; regime: anchored&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;tick&quot; d=&quot;M97.88888888888889,99.7637250487744h22v2h-22Z&quot; fill=&quot;#56b4e9&quot; opacity=&quot;0.7&quot;/&gt;&lt;path aria-label=&quot;cell: naive k=4096; absolute forward error (log scale): 13400000; regime: anchored&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;tick&quot; d=&quot;M191.2222222222222,79.08493456775265h22v2h-22Z&quot; fill=&quot;#56b4e9&quot; opacity=&quot;0.7&quot;/&gt;&lt;path aria-label=&quot;cell: kbn k=0; absolute forward error (log scale): 3.07e+12; regime: unanchored&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;tick&quot; d=&quot;M35.666666666666664,5.993567607129281h22v2h-22Z&quot; fill=&quot;#e69f00&quot; opacity=&quot;0.7&quot;/&gt;&lt;path aria-label=&quot;cell: kbn k=676; absolute forward error (log scale): 408000; regime: anchored&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;tick&quot; d=&quot;M128.99999999999997,99.7637250487744h22v2h-22Z&quot; fill=&quot;#56b4e9&quot; opacity=&quot;0.7&quot;/&gt;&lt;path aria-label=&quot;cell: kbn k=4096; absolute forward error (log scale): 13400000; regime: anchored&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;tick&quot; d=&quot;M222.33333333333331,79.08493456775265h22v2h-22Z&quot; fill=&quot;#56b4e9&quot; opacity=&quot;0.7&quot;/&gt;&lt;path aria-label=&quot;cell: ogita k=0; absolute forward error (log scale): 3.07e+12; regime: loss row&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;tick&quot; d=&quot;M66.77777777777779,5.993567607129281h22v2h-22Z&quot; fill=&quot;#d55e00&quot; opacity=&quot;0.7&quot;/&gt;&lt;path aria-label=&quot;cell: ogita k=676; absolute forward error (log scale): 408000; regime: anchored&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;tick&quot; d=&quot;M160.1111111111111,99.7637250487744h22v2h-22Z&quot; fill=&quot;#56b4e9&quot; opacity=&quot;0.7&quot;/&gt;&lt;path aria-label=&quot;cell: ogita k=4096; absolute forward error (log scale): 13400000; regime: anchored&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;tick&quot; d=&quot;M253.44444444444446,79.08493456775265h22v2h-22Z&quot; fill=&quot;#56b4e9&quot; opacity=&quot;0.7&quot;/&gt;&lt;/g&gt;&lt;g class=&quot;mark-symbol role-mark child_layer_1_marks&quot; role=&quot;graphics-object&quot; aria-roledescription=&quot;symbol mark container&quot;&gt;&lt;path aria-label=&quot;cell: naive k=0; drift: 1710; regime: unanchored&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;point&quot; transform=&quot;translate(15.555555555555552,133.18641667647063)&quot; d=&quot;M4.183,0A4.183,4.183,0,1,1,-4.183,0A4.183,4.183,0,1,1,4.183,0&quot; fill=&quot;#e69f00&quot; stroke-width=&quot;2&quot; opacity=&quot;0.7&quot;/&gt;&lt;path aria-label=&quot;cell: naive k=676; drift: 17.3; regime: anchored&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;point&quot; transform=&quot;translate(108.88888888888889,160.39028041188007)&quot; d=&quot;M4.183,0A4.183,4.183,0,1,1,-4.183,0A4.183,4.183,0,1,1,4.183,0&quot; fill=&quot;#56b4e9&quot; stroke-width=&quot;2&quot; opacity=&quot;0.7&quot;/&gt;&lt;path aria-label=&quot;cell: naive k=4096; drift: 31.6; regime: anchored&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;point&quot; transform=&quot;translate(202.2222222222222,156.8224488733854)&quot; d=&quot;M4.183,0A4.183,4.183,0,1,1,-4.183,0A4.183,4.183,0,1,1,4.183,0&quot; fill=&quot;#56b4e9&quot; stroke-width=&quot;2&quot; opacity=&quot;0.7&quot;/&gt;&lt;path aria-label=&quot;cell: kbn k=0; drift: 9.27; regime: unanchored&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;point&quot; transform=&quot;translate(46.666666666666664,164.08527635257505)&quot; d=&quot;M4.183,0A4.183,4.183,0,1,1,-4.183,0A4.183,4.183,0,1,1,4.183,0&quot; fill=&quot;#e69f00&quot; stroke-width=&quot;2&quot; opacity=&quot;0.7&quot;/&gt;&lt;path aria-label=&quot;cell: kbn k=676; drift: 6.89; regime: anchored&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;point&quot; transform=&quot;translate(139.99999999999997,165.84246515580514)&quot; d=&quot;M4.183,0A4.183,4.183,0,1,1,-4.183,0A4.183,4.183,0,1,1,4.183,0&quot; fill=&quot;#56b4e9&quot; stroke-width=&quot;2&quot; opacity=&quot;0.7&quot;/&gt;&lt;path aria-label=&quot;cell: kbn k=4096; drift: 5.27; regime: anchored&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;point&quot; transform=&quot;translate(233.33333333333331,167.42985524710164)&quot; d=&quot;M4.183,0A4.183,4.183,0,1,1,-4.183,0A4.183,4.183,0,1,1,4.183,0&quot; fill=&quot;#56b4e9&quot; stroke-width=&quot;2&quot; opacity=&quot;0.7&quot;/&gt;&lt;path aria-label=&quot;cell: ogita k=0; drift: 1.27; regime: loss row&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;point&quot; transform=&quot;translate(77.77777777777779,175.85722198696425)&quot; d=&quot;M4.183,0A4.183,4.183,0,1,1,-4.183,0A4.183,4.183,0,1,1,4.183,0&quot; fill=&quot;#d55e00&quot; stroke-width=&quot;2&quot; opacity=&quot;0.7&quot;/&gt;&lt;path aria-label=&quot;cell: ogita k=676; drift: 6.89; regime: anchored&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;point&quot; transform=&quot;translate(171.1111111111111,165.84246515580514)&quot; d=&quot;M4.183,0A4.183,4.183,0,1,1,-4.183,0A4.183,4.183,0,1,1,4.183,0&quot; fill=&quot;#56b4e9&quot; stroke-width=&quot;2&quot; opacity=&quot;0.7&quot;/&gt;&lt;path aria-label=&quot;cell: ogita k=4096; drift: 5.27; regime: anchored&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;point&quot; transform=&quot;translate(264.44444444444446,167.42985524710164)&quot; d=&quot;M4.183,0A4.183,4.183,0,1,1,-4.183,0A4.183,4.183,0,1,1,4.183,0&quot; fill=&quot;#56b4e9&quot; stroke-width=&quot;2&quot; opacity=&quot;0.7&quot;/&gt;&lt;/g&gt;&lt;/g&gt;&lt;path class=&quot;foreground&quot; aria-hidden=&quot;true&quot; d=&quot;&quot; display=&quot;none&quot;/&gt;&lt;/g&gt;&lt;/g&gt;&lt;g class=&quot;mark-group role-legend&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;legend&quot; aria-label=&quot;Symbol legend for fill color with 3 values: anchored, unanchored, loss row&quot;&gt;&lt;g transform=&quot;translate(601,0)&quot;&gt;&lt;path class=&quot;background&quot; aria-hidden=&quot;true&quot; d=&quot;M0,0h109v52h-109Z&quot; pointer-events=&quot;none&quot;/&gt;&lt;g&gt;&lt;g class=&quot;mark-group role-legend-entry&quot;&gt;&lt;g transform=&quot;translate(0,0)&quot;&gt;&lt;path class=&quot;background&quot; aria-hidden=&quot;true&quot; d=&quot;M0,0h0v0h0Z&quot; pointer-events=&quot;none&quot;/&gt;&lt;g&gt;&lt;g class=&quot;mark-group role-scope&quot; role=&quot;graphics-object&quot; aria-roledescription=&quot;group mark container&quot;&gt;&lt;g transform=&quot;translate(0,0)&quot;&gt;&lt;path class=&quot;background&quot; aria-hidden=&quot;true&quot; d=&quot;M0,0h109v15.5h-109Z&quot; pointer-events=&quot;none&quot; opacity=&quot;1&quot;/&gt;&lt;g&gt;&lt;g class=&quot;mark-symbol role-legend-symbol&quot; pointer-events=&quot;none&quot;&gt;&lt;path transform=&quot;translate(7.5,7.5)&quot; d=&quot;M5,0A5,5,0,1,1,-5,0A5,5,0,1,1,5,0&quot; fill=&quot;#56b4e9&quot; stroke-width=&quot;1.5&quot; opacity=&quot;0.7&quot;/&gt;&lt;/g&gt;&lt;g class=&quot;mark-text role-legend-label&quot; pointer-events=&quot;none&quot;&gt;&lt;text text-anchor=&quot;start&quot; transform=&quot;translate(19,12.5)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;15px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;anchored&lt;/text&gt;&lt;/g&gt;&lt;/g&gt;&lt;path class=&quot;foreground&quot; aria-hidden=&quot;true&quot; d=&quot;&quot; pointer-events=&quot;none&quot; display=&quot;none&quot;/&gt;&lt;/g&gt;&lt;g transform=&quot;translate(0,18)&quot;&gt;&lt;path class=&quot;background&quot; aria-hidden=&quot;true&quot; d=&quot;M0,0h109v15.5h-109Z&quot; pointer-events=&quot;none&quot; opacity=&quot;1&quot;/&gt;&lt;g&gt;&lt;g class=&quot;mark-symbol role-legend-symbol&quot; pointer-events=&quot;none&quot;&gt;&lt;path transform=&quot;translate(7.5,7.5)&quot; d=&quot;M5,0A5,5,0,1,1,-5,0A5,5,0,1,1,5,0&quot; fill=&quot;#e69f00&quot; stroke-width=&quot;1.5&quot; opacity=&quot;0.7&quot;/&gt;&lt;/g&gt;&lt;g class=&quot;mark-text role-legend-label&quot; pointer-events=&quot;none&quot;&gt;&lt;text text-anchor=&quot;start&quot; transform=&quot;translate(19,12.5)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;15px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;unanchored&lt;/text&gt;&lt;/g&gt;&lt;/g&gt;&lt;path class=&quot;foreground&quot; aria-hidden=&quot;true&quot; d=&quot;&quot; pointer-events=&quot;none&quot; display=&quot;none&quot;/&gt;&lt;/g&gt;&lt;g transform=&quot;translate(0,36)&quot;&gt;&lt;path class=&quot;background&quot; aria-hidden=&quot;true&quot; d=&quot;M0,0h109v15.5h-109Z&quot; pointer-events=&quot;none&quot; opacity=&quot;1&quot;/&gt;&lt;g&gt;&lt;g class=&quot;mark-symbol role-legend-symbol&quot; pointer-events=&quot;none&quot;&gt;&lt;path transform=&quot;translate(7.5,7.5)&quot; d=&quot;M5,0A5,5,0,1,1,-5,0A5,5,0,1,1,5,0&quot; fill=&quot;#d55e00&quot; stroke-width=&quot;1.5&quot; opacity=&quot;0.7&quot;/&gt;&lt;/g&gt;&lt;g class=&quot;mark-text role-legend-label&quot; pointer-events=&quot;none&quot;&gt;&lt;text text-anchor=&quot;start&quot; transform=&quot;translate(19,12.5)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;15px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;loss row&lt;/text&gt;&lt;/g&gt;&lt;/g&gt;&lt;path class=&quot;foreground&quot; aria-hidden=&quot;true&quot; d=&quot;&quot; pointer-events=&quot;none&quot; display=&quot;none&quot;/&gt;&lt;/g&gt;&lt;/g&gt;&lt;/g&gt;&lt;path class=&quot;foreground&quot; aria-hidden=&quot;true&quot; d=&quot;&quot; pointer-events=&quot;none&quot; display=&quot;none&quot;/&gt;&lt;/g&gt;&lt;/g&gt;&lt;/g&gt;&lt;path class=&quot;foreground&quot; aria-hidden=&quot;true&quot; d=&quot;&quot; pointer-events=&quot;none&quot; display=&quot;none&quot;/&gt;&lt;/g&gt;&lt;/g&gt;&lt;/g&gt;&lt;path class=&quot;foreground&quot; aria-hidden=&quot;true&quot; d=&quot;&quot; display=&quot;none&quot;/&gt;&lt;/g&gt;&lt;/g&gt;&lt;/g&gt;&lt;/svg&gt;&lt;/div&gt; &lt;figcaption data-astro-cid-bj3fsypb&gt;Measured worst-case drift (points) against the proven envelope (dashes) for all 18 cells — twelve anchored plus the six unanchored k=0 baselines. Zero violations. The vermillion point is the row where anchoring loses. Data: the anchored Periodic{k} table (Table 2) in the preprint, doi:10.5281/zenodo.20599315.&lt;/figcaption&gt; &lt;details class=&quot;data-table&quot; data-astro-cid-bj3fsypb&gt; &lt;summary data-astro-cid-bj3fsypb&gt;data table&lt;/summary&gt;  &lt;div class=&quot;data-table-scroll&quot; data-astro-cid-bj3fsypb&gt;&lt;table&gt;&lt;tr&gt;&lt;th&gt;precision&lt;/th&gt;&lt;th&gt;accumulator&lt;/th&gt;&lt;th&gt;k&lt;/th&gt;&lt;th&gt;drift max&lt;/th&gt;&lt;th&gt;envelope max&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;f64&lt;/td&gt;&lt;td&gt;naive&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;1.07e-06&lt;/td&gt;&lt;td&gt;4.08e+05&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;f64&lt;/td&gt;&lt;td&gt;naive&lt;/td&gt;&lt;td&gt;676&lt;/td&gt;&lt;td&gt;1.49e-08&lt;/td&gt;&lt;td&gt;7.60e-04&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;f64&lt;/td&gt;&lt;td&gt;naive&lt;/td&gt;&lt;td&gt;4096&lt;/td&gt;&lt;td&gt;4.84e-08&lt;/td&gt;&lt;td&gt;2.49e-02&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;f64&lt;/td&gt;&lt;td&gt;kbn&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;4.08e+05&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;f64&lt;/td&gt;&lt;td&gt;kbn&lt;/td&gt;&lt;td&gt;676&lt;/td&gt;&lt;td&gt;2.24e-08&lt;/td&gt;&lt;td&gt;7.60e-04&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;f64&lt;/td&gt;&lt;td&gt;kbn&lt;/td&gt;&lt;td&gt;4096&lt;/td&gt;&lt;td&gt;1.49e-08&lt;/td&gt;&lt;td&gt;2.49e-02&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;f64&lt;/td&gt;&lt;td&gt;ogita&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;7.45e-09&lt;/td&gt;&lt;td&gt;4.08e+05&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;f64&lt;/td&gt;&lt;td&gt;ogita&lt;/td&gt;&lt;td&gt;676&lt;/td&gt;&lt;td&gt;2.24e-08&lt;/td&gt;&lt;td&gt;7.60e-04&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;f64&lt;/td&gt;&lt;td&gt;ogita&lt;/td&gt;&lt;td&gt;4096&lt;/td&gt;&lt;td&gt;1.49e-08&lt;/td&gt;&lt;td&gt;2.49e-02&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;f32&lt;/td&gt;&lt;td&gt;naive&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;1.71e+03&lt;/td&gt;&lt;td&gt;3.07e+12&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;f32&lt;/td&gt;&lt;td&gt;naive&lt;/td&gt;&lt;td&gt;676&lt;/td&gt;&lt;td&gt;1.73e+01&lt;/td&gt;&lt;td&gt;4.08e+05&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;f32&lt;/td&gt;&lt;td&gt;naive&lt;/td&gt;&lt;td&gt;4096&lt;/td&gt;&lt;td&gt;3.16e+01&lt;/td&gt;&lt;td&gt;1.34e+07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;f32&lt;/td&gt;&lt;td&gt;kbn&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;9.27e+00&lt;/td&gt;&lt;td&gt;3.07e+12&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;f32&lt;/td&gt;&lt;td&gt;kbn&lt;/td&gt;&lt;td&gt;676&lt;/td&gt;&lt;td&gt;6.89e+00&lt;/td&gt;&lt;td&gt;4.08e+05&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;f32&lt;/td&gt;&lt;td&gt;kbn&lt;/td&gt;&lt;td&gt;4096&lt;/td&gt;&lt;td&gt;5.27e+00&lt;/td&gt;&lt;td&gt;1.34e+07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;f32&lt;/td&gt;&lt;td&gt;ogita&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;1.27e+00&lt;/td&gt;&lt;td&gt;3.07e+12&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;f32&lt;/td&gt;&lt;td&gt;ogita&lt;/td&gt;&lt;td&gt;676&lt;/td&gt;&lt;td&gt;6.89e+00&lt;/td&gt;&lt;td&gt;4.08e+05&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;f32&lt;/td&gt;&lt;td&gt;ogita&lt;/td&gt;&lt;td&gt;4096&lt;/td&gt;&lt;td&gt;5.27e+00&lt;/td&gt;&lt;td&gt;1.34e+07&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt; &lt;/details&gt; &lt;/figure&gt; 
&lt;p&gt;Now the row that argues against the fix. The unanchored Ogita–Rump accumulator at f32 reaches a worst-case drift of 1.27 — &lt;em&gt;below every anchored f32 cell&lt;/em&gt; (those run 5.27 to 31.6). The reason is mechanical: the reseed itself rounds a length-&lt;em&gt;w&lt;/em&gt; sum every &lt;em&gt;k&lt;/em&gt; ticks, a cost an unbroken compensated chain never pays. Where the accumulator was already strong enough to tame the full chain, anchoring adds rounding events. Where it was designed to help, it helps unambiguously: naive at every tier (1.7 × 10&lt;sup&gt;3&lt;/sup&gt; down to ~30 at f32), KBN at f32 (9.27 down to 5.27). And for every accumulator it wins in the worst case, where only bounded retention keeps the envelope from growing with &lt;em&gt;N&lt;/em&gt;.&lt;/p&gt;
&lt;span class=&quot;marginnote&quot; role=&quot;note&quot;&gt;Anchoring buys worst-case uniformity; on benign data it costs you — the same trade as gradient clipping: pay on nice batches to survive the bad one. It’s an analogy, not an equivalence.&lt;/span&gt;
&lt;h2 id=&quot;the-regime-boundary&quot;&gt;The regime boundary&lt;a class=&quot;heading-anchor&quot; href=&quot;#the-regime-boundary&quot; aria-label=&quot;Link to this section&quot;&gt;¶&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The envelope is a theorem with a boundary. It says something only in the convergence regime 4(&lt;em&gt;p&lt;/em&gt;+&lt;em&gt;w&lt;/em&gt;)·&lt;em&gt;u&lt;/em&gt;&lt;sub&gt;acc&lt;/sub&gt; &amp;lt; 1. At the &lt;em&gt;w&lt;/em&gt; = 64 deployment with an fp32 accumulator, 4&lt;em&gt;w&lt;/em&gt;·&lt;em&gt;u&lt;/em&gt;&lt;sub&gt;acc&lt;/sub&gt; ≈ 1.5 × 10&lt;sup&gt;−5&lt;/sup&gt; — comfortable. Swap in a bf16 &lt;em&gt;accumulator&lt;/em&gt; (&lt;em&gt;u&lt;/em&gt;&lt;sub&gt;acc&lt;/sub&gt; = 2&lt;sup&gt;−8&lt;/sup&gt;) and 4&lt;em&gt;w&lt;/em&gt;·&lt;em&gt;u&lt;/em&gt;&lt;sub&gt;acc&lt;/sub&gt; ≈ 1.0 already at &lt;em&gt;p&lt;/em&gt; = 0: the envelope is vacuous before the first reseed. This is why the bound keeps storage precision and accumulator precision as separate parameters — bf16 storage is fine; bf16 accumulation is outside the theorem (preprint, Table SM2).&lt;/p&gt;
&lt;section class=&quot;faq&quot; aria-label=&quot;driftbound: frequently asked questions&quot; data-astro-cid-z6gx6xcw&gt; &lt;h2 data-astro-cid-z6gx6xcw&gt;driftbound: frequently asked questions&lt;/h2&gt; &lt;div class=&quot;faq-list&quot; data-astro-cid-z6gx6xcw&gt; &lt;details class=&quot;faq-item&quot; open data-astro-cid-z6gx6xcw&gt; &lt;summary data-astro-cid-z6gx6xcw&gt;What is driftbound?&lt;/summary&gt; &lt;div class=&quot;faq-a&quot; data-astro-cid-z6gx6xcw&gt;driftbound is a forward-error analysis of the streaming sliding-window inner product, the kernel deployed as the matrix profile for motif discovery, discord detection, and anomaly mining. It bounds how far the streaming result can drift from the exact value, and reduces the fix to a single integer you set in a config file. The bound is machine-checked in Lean and Coq.&lt;/div&gt; &lt;/details&gt;&lt;details class=&quot;faq-item&quot; open data-astro-cid-z6gx6xcw&gt; &lt;summary data-astro-cid-z6gx6xcw&gt;What problem does driftbound solve?&lt;/summary&gt; &lt;div class=&quot;faq-a&quot; data-astro-cid-z6gx6xcw&gt;The streaming kernel updates by subtracting one product and adding one. It reuses the previous tick&amp;#39;s value indefinitely, so each tick&amp;#39;s rounding error stays in the accumulator and grows linearly with stream length. Across thirty-one matrix-profile papers, none carried a forward-error analysis of this drift. At 32-bit precision, even compensated summation grows without bound past roughly a million ticks.&lt;/div&gt; &lt;/details&gt;&lt;details class=&quot;faq-item&quot; open data-astro-cid-z6gx6xcw&gt; &lt;summary data-astro-cid-z6gx6xcw&gt;What is the fix?&lt;/summary&gt; &lt;div class=&quot;faq-a&quot; data-astro-cid-z6gx6xcw&gt;Reseed the carry chain from a full dot product every &lt;code data-astro-cid-z6gx6xcw&gt;k&lt;/code&gt; ticks. Stream length then drops out of the error bound, so the bound holds the same at a trillion ticks as at the first reseed. The largest safe &lt;code data-astro-cid-z6gx6xcw&gt;k&lt;/code&gt; follows a closed-form tuning rule that reduces to one integer in a config file. At 32-bit precision the safe value is about 43 times tighter than at 64-bit, so a mis-set config is computable before you ship.&lt;/div&gt; &lt;/details&gt;&lt;details class=&quot;faq-item&quot; open data-astro-cid-z6gx6xcw&gt; &lt;summary data-astro-cid-z6gx6xcw&gt;Is the bound proven and validated?&lt;/summary&gt; &lt;div class=&quot;faq-a&quot; data-astro-cid-z6gx6xcw&gt;Yes. The deterministic envelope is proven in a public preprint (doi:10.5281/zenodo.20599315) and machine-checked. Across 18 precision, accumulator, and &lt;code data-astro-cid-z6gx6xcw&gt;k&lt;/code&gt; configurations over seven corpora and stream lengths to 16.7 million ticks, every cell held its measured drift below the bound with zero violations. This includes the one disclosed row where periodic reseeding loses to compensated summation. Two papers are under review.&lt;/div&gt; &lt;/details&gt; &lt;/div&gt; &lt;script type=&quot;application/ld+json&quot;&gt;{&quot;@context&quot;:&quot;https://schema.org&quot;,&quot;@type&quot;:&quot;FAQPage&quot;,&quot;mainEntity&quot;:[{&quot;@type&quot;:&quot;Question&quot;,&quot;name&quot;:&quot;What is driftbound?&quot;,&quot;acceptedAnswer&quot;:{&quot;@type&quot;:&quot;Answer&quot;,&quot;text&quot;:&quot;driftbound is a forward-error analysis of the streaming sliding-window inner product, the kernel deployed as the matrix profile for motif discovery, discord detection, and anomaly mining. It bounds how far the streaming result can drift from the exact value, and reduces the fix to a single integer you set in a config file. The bound is machine-checked in Lean and Coq.&quot;}},{&quot;@type&quot;:&quot;Question&quot;,&quot;name&quot;:&quot;What problem does driftbound solve?&quot;,&quot;acceptedAnswer&quot;:{&quot;@type&quot;:&quot;Answer&quot;,&quot;text&quot;:&quot;The streaming kernel updates by subtracting one product and adding one. It reuses the previous tick&apos;s value indefinitely, so each tick&apos;s rounding error stays in the accumulator and grows linearly with stream length. Across thirty-one matrix-profile papers, none carried a forward-error analysis of this drift. At 32-bit precision, even compensated summation grows without bound past roughly a million ticks.&quot;}},{&quot;@type&quot;:&quot;Question&quot;,&quot;name&quot;:&quot;What is the fix?&quot;,&quot;acceptedAnswer&quot;:{&quot;@type&quot;:&quot;Answer&quot;,&quot;text&quot;:&quot;Reseed the carry chain from a full dot product every k ticks. Stream length then drops out of the error bound, so the bound holds the same at a trillion ticks as at the first reseed. The largest safe k follows a closed-form tuning rule that reduces to one integer in a config file. At 32-bit precision the safe value is about 43 times tighter than at 64-bit, so a mis-set config is computable before you ship.&quot;}},{&quot;@type&quot;:&quot;Question&quot;,&quot;name&quot;:&quot;Is the bound proven and validated?&quot;,&quot;acceptedAnswer&quot;:{&quot;@type&quot;:&quot;Answer&quot;,&quot;text&quot;:&quot;Yes. The deterministic envelope is proven in a public preprint (doi:10.5281/zenodo.20599315) and machine-checked. Across 18 precision, accumulator, and k configurations over seven corpora and stream lengths to 16.7 million ticks, every cell held its measured drift below the bound with zero violations. This includes the one disclosed row where periodic reseeding loses to compensated summation. Two papers are under review.&quot;}}]}&lt;/script&gt; &lt;/section&gt; &lt;!-- Collapsed-by-default FAQ (operator ruling 2026-07-15, supersedes the F-40
     mobile-only collapse): each Q/A pair is a &lt;details&gt;, server-rendered OPEN so
     the answers are visible with no JS, in print, and to crawlers (the full text
     is always in the DOM; the FAQPage JSON-LD above is untouched). This script
     collapses every pair on load AT ALL WIDTHS so the questions read as a
     scannable index and an answer expands on click. astro:page-load covers
     view-transition navigations. --&gt; &lt;script type=&quot;module&quot; src=&quot;https://thepragmaticquant.com/vercel/path0/src/components/Faq.astro?astro&amp;type=script&amp;index=0&amp;lang.ts&quot;&gt;&lt;/script&gt;
&lt;h2 id=&quot;where-the-series-goes&quot;&gt;Where the series goes&lt;a class=&quot;heading-anchor&quot; href=&quot;#where-the-series-goes&quot; aria-label=&quot;Link to this section&quot;&gt;¶&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;That is the deterministic result: an envelope uniform in stream length, and a knob to set it with. What it cannot cover is the worst case itself — this bound has a matching adversary no summation algorithm escapes, and a stall input that makes round-to-nearest discard every increment in the same direction. After that: the kernel production actually runs, how the proofs were made checkable, and a closing &lt;a href=&quot;https://thepragmaticquant.com/one-earthquake-pinned-my-bound/&quot;&gt;scoreboard&lt;/a&gt; where every empirical leg of the program reports its violation count. Next: &lt;a href=&quot;https://thepragmaticquant.com/the-accumulator-that-never-moved/&quot;&gt;the adversary and the coin flip that breaks it&lt;/a&gt;.&lt;/p&gt;</content:encoded><category>floating-point</category><category>time-series</category></item><item><title>The accumulator that never moved</title><link>https://thepragmaticquant.com/the-accumulator-that-never-moved/</link><guid isPermaLink="true">https://thepragmaticquant.com/the-accumulator-that-never-moved/</guid><description>An adversarial input where round-to-nearest throws away every increment in the same direction while the true sum climbs — and the coin flip that breaks the adversary&apos;s one weapon, measured across 20,000 seeds.</description><pubDate>Fri, 12 Jun 2026 00:00:00 GMT</pubDate><content:encoded>&lt;div class=&quot;tldr&quot;&gt;&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt; — There is an input on which round-to-nearest discards every increment, in the same direction, forever: the computed accumulator never moves while the true sum climbs. That stall proves the window-magnitude factor in &lt;a href=&quot;https://thepragmaticquant.com/thirty-one-papers-zero-error-analyses/&quot;&gt;the opening article&lt;/a&gt;’s envelope is necessary, and it proves the hypothesis behind the natural probabilistic refinement &lt;em&gt;false&lt;/em&gt; in the worst case, which is why that refinement ships as a conjecture. A separate matching lower bound (products pre-rounded, accumulator exact) shows the linear error growth itself is intrinsic: no summation algorithm escapes it. The escape is a different rounding mode: stochastic rounding gives an unconditional &lt;em&gt;√n&lt;/em&gt; envelope — the model-derived fp32 deep-n slope is 0.5014, a direct 20,000-seed emulator run to n = 3×10⁷ measures 0.4978, and both confidence intervals exclude the deterministic rate 1.&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;Park an accumulator at an exactly representable value. Feed it increments that are each just under half an ulp of that value. Round-to-nearest evaluates the addition, finds the result closer to where it started, and snaps back. Every step. The same direction. The computed sum is stationary while the true sum climbs monotonically — and the discarded residuals stack into an error of order &lt;em&gt;p(w−p)·u·T★&lt;/em&gt;, quadratic in the window parameters when the carry length sits near half the window. The round-back induction is machine-checked in Coq/Flocq (what that means, and what it does not, is &lt;a href=&quot;https://thepragmaticquant.com/three-axioms-and-one-disclosed-seam/&quot;&gt;a later article’s&lt;/a&gt; job).&lt;/p&gt;
&lt;h2 id=&quot;the-drift-floor-no-algorithm-escapes&quot;&gt;The drift floor no algorithm escapes&lt;a class=&quot;heading-anchor&quot; href=&quot;#the-drift-floor-no-algorithm-escapes&quot; aria-label=&quot;Link to this section&quot;&gt;¶&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://thepragmaticquant.com/thirty-one-papers-zero-error-analyses/&quot;&gt;The opening article&lt;/a&gt; gave an upper bound that grows linearly in the carry length &lt;em&gt;p&lt;/em&gt;. The reflexive objection is that the linearity is analysis slack — surely a better accumulator beats it. My matching lower bound says no: there is an adversarial input forcing drift of at least &lt;em&gt;c·p·u·T★&lt;/em&gt; even if the accumulator performs every summation step in &lt;em&gt;exact&lt;/em&gt; arithmetic. This is a different construction from the stall above, its mirror image: here the products are rounded before they ever reach the accumulator, the adversary places each one a hair past a rounding midpoint so every error lands with the same sign, and the chain has no internal cancellation to spend. In the stall, the products are benign and the accumulator’s own rounding carries the error. (The model excludes fused multiply-add; that is a different machine.)&lt;/p&gt;
&lt;p&gt;That construction is why the upper bound is tight. Kahan, Ogita–Rump, pairwise — pick any summation scheme you like. The error floor is set by the rounding mode, before the algorithm gets a vote.&lt;/p&gt;
&lt;h2 id=&quot;a-conjecture-not-a-theorem&quot;&gt;A conjecture, not a theorem&lt;a class=&quot;heading-anchor&quot; href=&quot;#a-conjecture-not-a-theorem&quot; aria-label=&quot;Link to this section&quot;&gt;¶&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The natural next move is probabilistic: model the rounding errors as mean-zero given the past, run a martingale argument, and the linear rate sharpens to &lt;em&gt;√(p+w)&lt;/em&gt;. That result appears in my paper — as a conjecture, not a theorem. Its load-bearing hypothesis, mean-independence of the rounding errors under round-to-nearest (the paper calls it L1), is what my own stall construction falsifies, and I did not have to hunt for the counterexample: the lower-bound witness and the counterexample are the same object. The input I built to prove the magnitude factor necessary is also an input on which every error is discarded in the same direction, so conditioned on the past the errors are deterministically same-signed; mean-zero fails outright. The hypothesis is provably false in the worst case. Whether it still holds for generic zero-mean data is open — the same question flagged in the recent numerical-analysis literature (research problem 16.1 of Mary’s 2025 habilitation). Demoting it had a price: the deterministic √(p+w) rate stays unclaimed, and the unconditional stochastic-rounding theorem below had to carry the paper’s headline instead.&lt;/p&gt;
&lt;span class=&quot;marginnote&quot; role=&quot;note&quot;&gt;An open problem stated as one is a result, not a gap — and the false-in-the-worst-case proof is what pins the conjecture’s status down.&lt;/span&gt;
&lt;h2 id=&quot;flip-a-coin&quot;&gt;Flip a coin&lt;a class=&quot;heading-anchor&quot; href=&quot;#flip-a-coin&quot; aria-label=&quot;Link to this section&quot;&gt;¶&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Stochastic rounding rounds up or down at random, with probability proportional to proximity. That randomness removes the one property the stall relies on: every error landing the same way. Under stochastic rounding the per-step error splits into a mean-zero random part and a small deterministic residual, and the mean-zero part is mean-zero &lt;em&gt;by construction&lt;/em&gt;, for every input. No L1 hypothesis, no distributional assumption. My main theorem turns that into an unconditional high-probability bound at the √n rate, parametric in three quantities: the storage precision, the accumulator precision, and the hardware random-bit budget &lt;em&gt;r&lt;/em&gt;. The residual deterministic bias scales as 2&lt;sup&gt;−r&lt;/sup&gt;, so a finite random-bit budget leaves a finite bias.&lt;/p&gt;
&lt;h2 id=&quot;20000-seeds-say-n&quot;&gt;20,000 seeds say √n&lt;a class=&quot;heading-anchor&quot; href=&quot;#20000-seeds-say-n&quot; aria-label=&quot;Link to this section&quot;&gt;¶&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;A probabilistic envelope is a claim about a distribution, so I validated it with an ensemble: 20,000 independent stochastic-rounding seeds, run on the coherent regime where round-to-nearest is at its worst. The rate is the claim that matters. At fp32 the in-binade walk is provably a binomial process, and that model puts the deep-n slope at 0.5014 with a confidence interval [0.4990, 0.5039]; a direct emulator run out to n = 3×10⁷ measures 0.4978 [0.4898, 0.5058]. Both intervals exclude the deterministic slope 1, and fp16 (0.5027) and bf16 (0.5144) read the same way. The mean-zero claim checks out too: a 95% interval brackets zero at every precision tier. Envelope coverage is 1.000 at every tested failure probability (λ = 0.1, 0.05, 0.01), with Wilson 99.99% lower bounds at 0.999 — and the bound is not slack for all that coverage, because the empirical-to-theoretical constant ratio sits between 0.56 and 0.72, order one, which is the tightness check.&lt;/p&gt;
&lt;figure class=&quot;full&quot; data-astro-cid-bj3fsypb&gt; &lt;div class=&quot;svgfig svgfig-chart&quot; role=&quot;img&quot; aria-label=&quot;Log-log rate plot from n=1e3 to n=3e7: the round-to-nearest worst-case envelope grows at slope 1 (orange), reaching 30,000x its starting value, while the stochastic-rounding error quantile grows at slope 0.5014 (blue), reaching about 176x — a gap of more than two decades (a factor of about 170) at the right edge.&quot; data-astro-cid-bj3fsypb&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; id=&quot;fig-01-sr-rate-vs-rn&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot; xmlns:xlink=&quot;http://www.w3.org/1999/xlink&quot; version=&quot;1.1&quot; class=&quot;marks&quot; width=&quot;642&quot; height=&quot;389&quot; viewBox=&quot;0 0 642 389&quot;&gt;&lt;style&gt;#fig-01-sr-rate-vs-rn [fill=&quot;#1a1d23&quot; i]{fill:var(--bg)}#fig-01-sr-rate-vs-rn [stroke=&quot;#1a1d23&quot; i]{stroke:var(--bg)}#fig-01-sr-rate-vs-rn [fill=&quot;#18181b&quot; i]{fill:var(--bg-panel)}#fig-01-sr-rate-vs-rn [stroke=&quot;#18181b&quot; i]{stroke:var(--bg-panel)}#fig-01-sr-rate-vs-rn [fill=&quot;#2c2f37&quot; i]{fill:var(--current-line)}#fig-01-sr-rate-vs-rn [stroke=&quot;#2c2f37&quot; i]{stroke:var(--current-line)}#fig-01-sr-rate-vs-rn [fill=&quot;#f4f5f7&quot; i]{fill:var(--fg)}#fig-01-sr-rate-vs-rn [stroke=&quot;#f4f5f7&quot; i]{stroke:var(--fg)}#fig-01-sr-rate-vs-rn [fill=&quot;#8a8f98&quot; i]{fill:var(--comment)}#fig-01-sr-rate-vs-rn [stroke=&quot;#8a8f98&quot; i]{stroke:var(--comment)}&lt;/style&gt;&lt;rect width=&quot;642&quot; height=&quot;389&quot; fill=&quot;#1a1d23&quot;/&gt;&lt;g fill=&quot;none&quot; stroke-miterlimit=&quot;10&quot; transform=&quot;translate(76,11)&quot;&gt;&lt;g class=&quot;mark-group role-frame root&quot; role=&quot;graphics-object&quot; aria-roledescription=&quot;group mark container&quot;&gt;&lt;g transform=&quot;translate(0,0)&quot;&gt;&lt;path class=&quot;background&quot; aria-hidden=&quot;true&quot; d=&quot;M0.5,0.5h560v340h-560Z&quot;/&gt;&lt;g&gt;&lt;g class=&quot;mark-group role-axis&quot; aria-hidden=&quot;true&quot;&gt;&lt;g transform=&quot;translate(0.5,340.5)&quot;&gt;&lt;path class=&quot;background&quot; aria-hidden=&quot;true&quot; d=&quot;M0,0h0v0h0Z&quot; pointer-events=&quot;none&quot;/&gt;&lt;g&gt;&lt;g class=&quot;mark-rule role-axis-grid&quot; pointer-events=&quot;none&quot;&gt;&lt;line transform=&quot;translate(0,-340)&quot; x2=&quot;0&quot; y2=&quot;340&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(34,-340)&quot; x2=&quot;0&quot; y2=&quot;340&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(53,-340)&quot; x2=&quot;0&quot; y2=&quot;340&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(67,-340)&quot; x2=&quot;0&quot; y2=&quot;340&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(78,-340)&quot; x2=&quot;0&quot; y2=&quot;340&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(87,-340)&quot; x2=&quot;0&quot; y2=&quot;340&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(95,-340)&quot; x2=&quot;0&quot; y2=&quot;340&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(101,-340)&quot; x2=&quot;0&quot; y2=&quot;340&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(107,-340)&quot; x2=&quot;0&quot; y2=&quot;340&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(112,-340)&quot; x2=&quot;0&quot; y2=&quot;340&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(146,-340)&quot; x2=&quot;0&quot; y2=&quot;340&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(165,-340)&quot; x2=&quot;0&quot; y2=&quot;340&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(179,-340)&quot; x2=&quot;0&quot; y2=&quot;340&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(190,-340)&quot; x2=&quot;0&quot; y2=&quot;340&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(199,-340)&quot; x2=&quot;0&quot; y2=&quot;340&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(207,-340)&quot; x2=&quot;0&quot; y2=&quot;340&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(213,-340)&quot; x2=&quot;0&quot; y2=&quot;340&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(219,-340)&quot; x2=&quot;0&quot; y2=&quot;340&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(224,-340)&quot; x2=&quot;0&quot; y2=&quot;340&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(258,-340)&quot; x2=&quot;0&quot; y2=&quot;340&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(277,-340)&quot; x2=&quot;0&quot; y2=&quot;340&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(291,-340)&quot; x2=&quot;0&quot; y2=&quot;340&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(302,-340)&quot; x2=&quot;0&quot; y2=&quot;340&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(311,-340)&quot; x2=&quot;0&quot; y2=&quot;340&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(319,-340)&quot; x2=&quot;0&quot; y2=&quot;340&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(325,-340)&quot; x2=&quot;0&quot; y2=&quot;340&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(331,-340)&quot; x2=&quot;0&quot; y2=&quot;340&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(336,-340)&quot; x2=&quot;0&quot; y2=&quot;340&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(370,-340)&quot; x2=&quot;0&quot; y2=&quot;340&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(389,-340)&quot; x2=&quot;0&quot; y2=&quot;340&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(403,-340)&quot; x2=&quot;0&quot; y2=&quot;340&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(414,-340)&quot; x2=&quot;0&quot; y2=&quot;340&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(423,-340)&quot; x2=&quot;0&quot; y2=&quot;340&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(431,-340)&quot; x2=&quot;0&quot; y2=&quot;340&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(437,-340)&quot; x2=&quot;0&quot; y2=&quot;340&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(443,-340)&quot; x2=&quot;0&quot; y2=&quot;340&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(448,-340)&quot; x2=&quot;0&quot; y2=&quot;340&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(482,-340)&quot; x2=&quot;0&quot; y2=&quot;340&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(501,-340)&quot; x2=&quot;0&quot; y2=&quot;340&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(515,-340)&quot; x2=&quot;0&quot; y2=&quot;340&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(526,-340)&quot; x2=&quot;0&quot; y2=&quot;340&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(535,-340)&quot; x2=&quot;0&quot; y2=&quot;340&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(543,-340)&quot; x2=&quot;0&quot; y2=&quot;340&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(549,-340)&quot; x2=&quot;0&quot; y2=&quot;340&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(555,-340)&quot; x2=&quot;0&quot; y2=&quot;340&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(560,-340)&quot; x2=&quot;0&quot; y2=&quot;340&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;/g&gt;&lt;/g&gt;&lt;path class=&quot;foreground&quot; aria-hidden=&quot;true&quot; d=&quot;&quot; pointer-events=&quot;none&quot; display=&quot;none&quot;/&gt;&lt;/g&gt;&lt;/g&gt;&lt;g class=&quot;mark-group role-axis&quot; aria-hidden=&quot;true&quot;&gt;&lt;g transform=&quot;translate(0.5,0.5)&quot;&gt;&lt;path class=&quot;background&quot; aria-hidden=&quot;true&quot; d=&quot;M0,0h0v0h0Z&quot; pointer-events=&quot;none&quot;/&gt;&lt;g&gt;&lt;g class=&quot;mark-rule role-axis-grid&quot; pointer-events=&quot;none&quot;&gt;&lt;line transform=&quot;translate(0,340)&quot; x2=&quot;560&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,320)&quot; x2=&quot;560&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,308)&quot; x2=&quot;560&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,299)&quot; x2=&quot;560&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,292)&quot; x2=&quot;560&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,287)&quot; x2=&quot;560&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,283)&quot; x2=&quot;560&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,279)&quot; x2=&quot;560&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,275)&quot; x2=&quot;560&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,272)&quot; x2=&quot;560&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,252)&quot; x2=&quot;560&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,240)&quot; x2=&quot;560&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,231)&quot; x2=&quot;560&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,224)&quot; x2=&quot;560&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,219)&quot; x2=&quot;560&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,215)&quot; x2=&quot;560&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,211)&quot; x2=&quot;560&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,207)&quot; x2=&quot;560&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,204)&quot; x2=&quot;560&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,184)&quot; x2=&quot;560&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,172)&quot; x2=&quot;560&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,163)&quot; x2=&quot;560&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,156)&quot; x2=&quot;560&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,151)&quot; x2=&quot;560&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,147)&quot; x2=&quot;560&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,143)&quot; x2=&quot;560&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,139)&quot; x2=&quot;560&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,136)&quot; x2=&quot;560&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,116)&quot; x2=&quot;560&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,104)&quot; x2=&quot;560&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,95)&quot; x2=&quot;560&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,88)&quot; x2=&quot;560&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,83)&quot; x2=&quot;560&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,79)&quot; x2=&quot;560&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,75)&quot; x2=&quot;560&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,71)&quot; x2=&quot;560&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,68)&quot; x2=&quot;560&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,48)&quot; x2=&quot;560&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,36)&quot; x2=&quot;560&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,27)&quot; x2=&quot;560&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,20)&quot; x2=&quot;560&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,15)&quot; x2=&quot;560&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,11)&quot; x2=&quot;560&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,7)&quot; x2=&quot;560&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,3)&quot; x2=&quot;560&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,0)&quot; x2=&quot;560&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;/g&gt;&lt;/g&gt;&lt;path class=&quot;foreground&quot; aria-hidden=&quot;true&quot; d=&quot;&quot; pointer-events=&quot;none&quot; display=&quot;none&quot;/&gt;&lt;/g&gt;&lt;/g&gt;&lt;g class=&quot;mark-group role-axis&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;axis&quot; aria-label=&quot;X-axis titled &apos;steps n&apos; for a log scale with values from 1,000 to 100,000,000&quot;&gt;&lt;g transform=&quot;translate(0.5,340.5)&quot;&gt;&lt;path class=&quot;background&quot; aria-hidden=&quot;true&quot; d=&quot;M0,0h0v0h0Z&quot; pointer-events=&quot;none&quot;/&gt;&lt;g&gt;&lt;g class=&quot;mark-rule role-axis-tick&quot; pointer-events=&quot;none&quot;&gt;&lt;line transform=&quot;translate(0,0)&quot; x2=&quot;0&quot; y2=&quot;5&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(34,0)&quot; x2=&quot;0&quot; y2=&quot;5&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(53,0)&quot; x2=&quot;0&quot; y2=&quot;5&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(67,0)&quot; x2=&quot;0&quot; y2=&quot;5&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(78,0)&quot; x2=&quot;0&quot; y2=&quot;5&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(87,0)&quot; x2=&quot;0&quot; y2=&quot;5&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(95,0)&quot; x2=&quot;0&quot; y2=&quot;5&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(101,0)&quot; x2=&quot;0&quot; y2=&quot;5&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(107,0)&quot; x2=&quot;0&quot; y2=&quot;5&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(112,0)&quot; x2=&quot;0&quot; y2=&quot;5&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(146,0)&quot; x2=&quot;0&quot; y2=&quot;5&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(165,0)&quot; x2=&quot;0&quot; y2=&quot;5&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(179,0)&quot; x2=&quot;0&quot; y2=&quot;5&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(190,0)&quot; x2=&quot;0&quot; y2=&quot;5&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(199,0)&quot; x2=&quot;0&quot; y2=&quot;5&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(207,0)&quot; x2=&quot;0&quot; y2=&quot;5&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(213,0)&quot; x2=&quot;0&quot; y2=&quot;5&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(219,0)&quot; x2=&quot;0&quot; y2=&quot;5&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(224,0)&quot; x2=&quot;0&quot; y2=&quot;5&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(258,0)&quot; x2=&quot;0&quot; y2=&quot;5&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(277,0)&quot; x2=&quot;0&quot; y2=&quot;5&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(291,0)&quot; x2=&quot;0&quot; y2=&quot;5&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(302,0)&quot; x2=&quot;0&quot; y2=&quot;5&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(311,0)&quot; x2=&quot;0&quot; y2=&quot;5&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(319,0)&quot; x2=&quot;0&quot; y2=&quot;5&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(325,0)&quot; x2=&quot;0&quot; y2=&quot;5&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(331,0)&quot; x2=&quot;0&quot; y2=&quot;5&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(336,0)&quot; x2=&quot;0&quot; y2=&quot;5&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(370,0)&quot; x2=&quot;0&quot; y2=&quot;5&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(389,0)&quot; x2=&quot;0&quot; y2=&quot;5&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(403,0)&quot; x2=&quot;0&quot; y2=&quot;5&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(414,0)&quot; x2=&quot;0&quot; y2=&quot;5&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(423,0)&quot; x2=&quot;0&quot; y2=&quot;5&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(431,0)&quot; x2=&quot;0&quot; y2=&quot;5&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(437,0)&quot; x2=&quot;0&quot; y2=&quot;5&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(443,0)&quot; x2=&quot;0&quot; y2=&quot;5&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(448,0)&quot; x2=&quot;0&quot; y2=&quot;5&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(482,0)&quot; x2=&quot;0&quot; y2=&quot;5&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(501,0)&quot; x2=&quot;0&quot; y2=&quot;5&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(515,0)&quot; x2=&quot;0&quot; y2=&quot;5&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(526,0)&quot; x2=&quot;0&quot; y2=&quot;5&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(535,0)&quot; x2=&quot;0&quot; y2=&quot;5&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(543,0)&quot; x2=&quot;0&quot; y2=&quot;5&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(549,0)&quot; x2=&quot;0&quot; y2=&quot;5&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(555,0)&quot; x2=&quot;0&quot; y2=&quot;5&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(560,0)&quot; x2=&quot;0&quot; y2=&quot;5&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;/g&gt;&lt;g class=&quot;mark-text role-axis-label&quot; pointer-events=&quot;none&quot;&gt;&lt;text text-anchor=&quot;start&quot; transform=&quot;translate(0,16)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;1,000&lt;/text&gt;&lt;text text-anchor=&quot;middle&quot; transform=&quot;translate(33.71535951436589,16)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;0&quot;&gt;2,000&lt;/text&gt;&lt;text text-anchor=&quot;middle&quot; transform=&quot;translate(53.437580528602155,16)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;middle&quot; transform=&quot;translate(67.43071902873179,16)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;middle&quot; transform=&quot;translate(78.28464048563416,16)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;middle&quot; transform=&quot;translate(87.15294004296804,16)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;middle&quot; transform=&quot;translate(94.65098048159675,16)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;middle&quot; transform=&quot;translate(101.14607854309767,16)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;middle&quot; transform=&quot;translate(106.87516105720441,16)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;middle&quot; transform=&quot;translate(112.00000000000004,16)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;10,000&lt;/text&gt;&lt;text text-anchor=&quot;middle&quot; transform=&quot;translate(145.71535951436584,16)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;0&quot;&gt;20,000&lt;/text&gt;&lt;text text-anchor=&quot;middle&quot; transform=&quot;translate(165.43758052860218,16)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;middle&quot; transform=&quot;translate(179.43071902873172,16)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;middle&quot; transform=&quot;translate(190.2846404856341,16)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;middle&quot; transform=&quot;translate(199.15294004296808,16)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;middle&quot; transform=&quot;translate(206.65098048159672,16)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;middle&quot; transform=&quot;translate(213.14607854309764,16)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;middle&quot; transform=&quot;translate(218.87516105720434,16)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;middle&quot; transform=&quot;translate(223.99999999999997,16)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;100,000&lt;/text&gt;&lt;text text-anchor=&quot;middle&quot; transform=&quot;translate(257.71535951436584,16)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;0&quot;&gt;200,000&lt;/text&gt;&lt;text text-anchor=&quot;middle&quot; transform=&quot;translate(277.43758052860215,16)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;middle&quot; transform=&quot;translate(291.4307190287318,16)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;middle&quot; transform=&quot;translate(302.28464048563404,16)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;middle&quot; transform=&quot;translate(311.152940042968,16)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;middle&quot; transform=&quot;translate(318.6509804815968,16)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;middle&quot; transform=&quot;translate(325.1460785430977,16)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;middle&quot; transform=&quot;translate(330.87516105720437,16)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;middle&quot; transform=&quot;translate(335.99999999999994,16)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;1,000,000&lt;/text&gt;&lt;text text-anchor=&quot;middle&quot; transform=&quot;translate(369.7153595143658,16)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;0&quot;&gt;2,000,000&lt;/text&gt;&lt;text text-anchor=&quot;middle&quot; transform=&quot;translate(389.43758052860215,16)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;middle&quot; transform=&quot;translate(403.4307190287317,16)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;middle&quot; transform=&quot;translate(414.2846404856341,16)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;middle&quot; transform=&quot;translate(423.15294004296805,16)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;middle&quot; transform=&quot;translate(430.65098048159666,16)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;middle&quot; transform=&quot;translate(437.1460785430976,16)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;middle&quot; transform=&quot;translate(442.87516105720425,16)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;middle&quot; transform=&quot;translate(447.99999999999994,16)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;10,000,000&lt;/text&gt;&lt;text text-anchor=&quot;middle&quot; transform=&quot;translate(481.7153595143658,16)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;0&quot;&gt;20,000,000&lt;/text&gt;&lt;text text-anchor=&quot;middle&quot; transform=&quot;translate(501.43758052860204,16)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;middle&quot; transform=&quot;translate(515.4307190287317,16)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;middle&quot; transform=&quot;translate(526.2846404856341,16)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;middle&quot; transform=&quot;translate(535.152940042968,16)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;middle&quot; transform=&quot;translate(542.6509804815967,16)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;middle&quot; transform=&quot;translate(549.1460785430976,16)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;middle&quot; transform=&quot;translate(554.8751610572043,16)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(560,16)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;100,000,000&lt;/text&gt;&lt;/g&gt;&lt;g class=&quot;mark-rule role-axis-domain&quot; pointer-events=&quot;none&quot;&gt;&lt;line transform=&quot;translate(0,0)&quot; x2=&quot;560&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;/g&gt;&lt;g class=&quot;mark-text role-axis-title&quot; pointer-events=&quot;none&quot;&gt;&lt;text text-anchor=&quot;middle&quot; transform=&quot;translate(280,31)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;12px&quot; font-weight=&quot;bold&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;steps n&lt;/text&gt;&lt;/g&gt;&lt;/g&gt;&lt;path class=&quot;foreground&quot; aria-hidden=&quot;true&quot; d=&quot;&quot; pointer-events=&quot;none&quot; display=&quot;none&quot;/&gt;&lt;/g&gt;&lt;/g&gt;&lt;g class=&quot;mark-group role-axis&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;axis&quot; aria-label=&quot;Y-axis titled &apos;error growth (normalized at n = 10³)&apos; for a log scale with values from 1 to 100,000&quot;&gt;&lt;g transform=&quot;translate(0.5,0.5)&quot;&gt;&lt;path class=&quot;background&quot; aria-hidden=&quot;true&quot; d=&quot;M0,0h0v0h0Z&quot; pointer-events=&quot;none&quot;/&gt;&lt;g&gt;&lt;g class=&quot;mark-rule role-axis-tick&quot; pointer-events=&quot;none&quot;&gt;&lt;line transform=&quot;translate(0,340)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,320)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,308)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,299)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,292)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,287)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,283)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,279)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,275)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,272)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,252)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,240)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,231)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,224)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,219)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,215)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,211)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,207)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,204)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,184)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,172)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,163)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,156)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,151)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,147)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,143)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,139)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,136)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,116)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,104)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,95)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,88)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,83)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,79)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,75)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,71)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,68)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,48)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,36)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,27)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,20)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,15)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,11)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,7)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,3)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,0)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;/g&gt;&lt;g class=&quot;mark-text role-axis-label&quot; pointer-events=&quot;none&quot;&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,343)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;1&lt;/text&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,322.5299602948493)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;2&lt;/text&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,310.55575467906294)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,302.05992058969855)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,295.4700397051507)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,290.0857149739122)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,285.53333327903056)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,281.5898808845478)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,278.11150935812594)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,275)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;10&lt;/text&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,254.52996029484925)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;20&lt;/text&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,242.55575467906297)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,234.05992058969858)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,227.4700397051507)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,222.08571497391222)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,217.53333327903053)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,213.58988088454782)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,210.11150935812594)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,207)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;100&lt;/text&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,186.52996029484927)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;200&lt;/text&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,174.555754679063)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,166.05992058969855)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,159.47003970515073)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,154.08571497391225)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,149.53333327903056)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,145.58988088454785)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,142.11150935812591)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,139)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;1,000&lt;/text&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,118.52996029484929)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;2,000&lt;/text&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,106.55575467906297)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,98.05992058969858)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,91.4700397051507)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,86.08571497391225)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,81.53333327903056)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,77.58988088454785)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,74.11150935812589)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,70.99999999999999)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;10,000&lt;/text&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,50.5299602948493)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;20,000&lt;/text&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,38.55575467906294)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,30.05992058969859)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,23.470039705150718)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,18.085714973912225)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,13.533333279030575)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,9.58988088454787)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,6.111509358125939)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,3)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;100,000&lt;/text&gt;&lt;/g&gt;&lt;g class=&quot;mark-rule role-axis-domain&quot; pointer-events=&quot;none&quot;&gt;&lt;line transform=&quot;translate(0,340)&quot; x2=&quot;0&quot; y2=&quot;-340&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;/g&gt;&lt;g class=&quot;mark-text role-axis-title&quot; pointer-events=&quot;none&quot;&gt;&lt;text text-anchor=&quot;middle&quot; transform=&quot;translate(-57.19999694824219,170) rotate(-90) translate(0,-3)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;12px&quot; font-weight=&quot;bold&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;error growth (normalized at n = 10³)&lt;/text&gt;&lt;/g&gt;&lt;/g&gt;&lt;path class=&quot;foreground&quot; aria-hidden=&quot;true&quot; d=&quot;&quot; pointer-events=&quot;none&quot; display=&quot;none&quot;/&gt;&lt;/g&gt;&lt;/g&gt;&lt;g class=&quot;mark-group role-scope layer_0_pathgroup&quot; role=&quot;graphics-object&quot; aria-roledescription=&quot;group mark container&quot;&gt;&lt;g transform=&quot;translate(0,0)&quot;&gt;&lt;path class=&quot;background&quot; aria-hidden=&quot;true&quot; d=&quot;M0,0h560v340h-560Z&quot;/&gt;&lt;g&gt;&lt;g class=&quot;mark-line role-mark layer_0_marks&quot; role=&quot;graphics-object&quot; aria-roledescription=&quot;line mark container&quot;&gt;&lt;path aria-label=&quot;steps n: 1000; rel_error: 1; mode: round-to-nearest worst case (slope 1)&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;line mark&quot; d=&quot;M0,340L112,272L224,204L336,136L448,68L501.438,35.556&quot; stroke=&quot;#e69f00&quot; stroke-width=&quot;2.5&quot;/&gt;&lt;/g&gt;&lt;/g&gt;&lt;path class=&quot;foreground&quot; aria-hidden=&quot;true&quot; d=&quot;&quot; display=&quot;none&quot;/&gt;&lt;/g&gt;&lt;g transform=&quot;translate(0,0)&quot;&gt;&lt;path class=&quot;background&quot; aria-hidden=&quot;true&quot; d=&quot;M0,0h560v340h-560Z&quot;/&gt;&lt;g&gt;&lt;g class=&quot;mark-line role-mark layer_0_marks&quot; role=&quot;graphics-object&quot; aria-roledescription=&quot;line mark container&quot;&gt;&lt;path aria-label=&quot;steps n: 1000; rel_error: 1; mode: stochastic rounding (model-derived slope 0.5014)&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;line mark&quot; d=&quot;M0,340L112,305.909L224,271.809L336,237.714L448,203.619L501.438,187.356&quot; stroke=&quot;#56b4e9&quot; stroke-width=&quot;2.5&quot;/&gt;&lt;/g&gt;&lt;/g&gt;&lt;path class=&quot;foreground&quot; aria-hidden=&quot;true&quot; d=&quot;&quot; display=&quot;none&quot;/&gt;&lt;/g&gt;&lt;/g&gt;&lt;g class=&quot;mark-symbol role-mark layer_1_marks&quot; role=&quot;graphics-object&quot; aria-roledescription=&quot;symbol mark container&quot;&gt;&lt;path aria-label=&quot;steps n: 1000; rel_error: 1; mode: round-to-nearest worst case (slope 1)&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;point&quot; transform=&quot;translate(0,340)&quot; d=&quot;M2.739,0A2.739,2.739,0,1,1,-2.739,0A2.739,2.739,0,1,1,2.739,0&quot; fill=&quot;#e69f00&quot; stroke-width=&quot;2&quot; opacity=&quot;1&quot;/&gt;&lt;path aria-label=&quot;steps n: 10000; rel_error: 10; mode: round-to-nearest worst case (slope 1)&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;point&quot; transform=&quot;translate(112.00000000000004,272)&quot; d=&quot;M2.739,0A2.739,2.739,0,1,1,-2.739,0A2.739,2.739,0,1,1,2.739,0&quot; fill=&quot;#e69f00&quot; stroke-width=&quot;2&quot; opacity=&quot;1&quot;/&gt;&lt;path aria-label=&quot;steps n: 100000; rel_error: 100; mode: round-to-nearest worst case (slope 1)&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;point&quot; transform=&quot;translate(223.99999999999997,204)&quot; d=&quot;M2.739,0A2.739,2.739,0,1,1,-2.739,0A2.739,2.739,0,1,1,2.739,0&quot; fill=&quot;#e69f00&quot; stroke-width=&quot;2&quot; opacity=&quot;1&quot;/&gt;&lt;path aria-label=&quot;steps n: 1000000; rel_error: 1000; mode: round-to-nearest worst case (slope 1)&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;point&quot; transform=&quot;translate(335.99999999999994,136)&quot; d=&quot;M2.739,0A2.739,2.739,0,1,1,-2.739,0A2.739,2.739,0,1,1,2.739,0&quot; fill=&quot;#e69f00&quot; stroke-width=&quot;2&quot; opacity=&quot;1&quot;/&gt;&lt;path aria-label=&quot;steps n: 10000000; rel_error: 10000; mode: round-to-nearest worst case (slope 1)&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;point&quot; transform=&quot;translate(447.99999999999994,67.99999999999999)&quot; d=&quot;M2.739,0A2.739,2.739,0,1,1,-2.739,0A2.739,2.739,0,1,1,2.739,0&quot; fill=&quot;#e69f00&quot; stroke-width=&quot;2&quot; opacity=&quot;1&quot;/&gt;&lt;path aria-label=&quot;steps n: 30000000; rel_error: 30000; mode: round-to-nearest worst case (slope 1)&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;point&quot; transform=&quot;translate(501.43758052860204,35.55575467906294)&quot; d=&quot;M2.739,0A2.739,2.739,0,1,1,-2.739,0A2.739,2.739,0,1,1,2.739,0&quot; fill=&quot;#e69f00&quot; stroke-width=&quot;2&quot; opacity=&quot;1&quot;/&gt;&lt;path aria-label=&quot;steps n: 1000; rel_error: 1; mode: stochastic rounding (model-derived slope 0.5014)&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;point&quot; transform=&quot;translate(0,340)&quot; d=&quot;M2.739,0A2.739,2.739,0,1,1,-2.739,0A2.739,2.739,0,1,1,2.739,0&quot; fill=&quot;#56b4e9&quot; stroke-width=&quot;2&quot; opacity=&quot;1&quot;/&gt;&lt;path aria-label=&quot;steps n: 10000; rel_error: 3.172; mode: stochastic rounding (model-derived slope 0.5014)&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;point&quot; transform=&quot;translate(112.00000000000004,305.90934385210153)&quot; d=&quot;M2.739,0A2.739,2.739,0,1,1,-2.739,0A2.739,2.739,0,1,1,2.739,0&quot; fill=&quot;#56b4e9&quot; stroke-width=&quot;2&quot; opacity=&quot;1&quot;/&gt;&lt;path aria-label=&quot;steps n: 100000; rel_error: 10.065; mode: stochastic rounding (model-derived slope 0.5014)&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;point&quot; transform=&quot;translate(223.99999999999997,271.8086630127222)&quot; d=&quot;M2.739,0A2.739,2.739,0,1,1,-2.739,0A2.739,2.739,0,1,1,2.739,0&quot; fill=&quot;#56b4e9&quot; stroke-width=&quot;2&quot; opacity=&quot;1&quot;/&gt;&lt;path aria-label=&quot;steps n: 1000000; rel_error: 31.93; mode: stochastic rounding (model-derived slope 0.5014)&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;point&quot; transform=&quot;translate(335.99999999999994,237.71447353931774)&quot; d=&quot;M2.739,0A2.739,2.739,0,1,1,-2.739,0A2.739,2.739,0,1,1,2.739,0&quot; fill=&quot;#56b4e9&quot; stroke-width=&quot;2&quot; opacity=&quot;1&quot;/&gt;&lt;path aria-label=&quot;steps n: 10000000; rel_error: 101.3; mode: stochastic rounding (model-derived slope 0.5014)&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;point&quot; transform=&quot;translate(447.99999999999994,203.61855771550094)&quot; d=&quot;M2.739,0A2.739,2.739,0,1,1,-2.739,0A2.739,2.739,0,1,1,2.739,0&quot; fill=&quot;#56b4e9&quot; stroke-width=&quot;2&quot; opacity=&quot;1&quot;/&gt;&lt;path aria-label=&quot;steps n: 30000000; rel_error: 175.7; mode: stochastic rounding (model-derived slope 0.5014)&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;point&quot; transform=&quot;translate(501.43758052860204,187.35552021831998)&quot; d=&quot;M2.739,0A2.739,2.739,0,1,1,-2.739,0A2.739,2.739,0,1,1,2.739,0&quot; fill=&quot;#56b4e9&quot; stroke-width=&quot;2&quot; opacity=&quot;1&quot;/&gt;&lt;/g&gt;&lt;g class=&quot;mark-group role-legend&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;legend&quot; aria-label=&quot;Symbol legend for fill color and stroke color with 2 values: stochastic rounding (model-derived slope 0.5014), round-to-nearest worst case (slope 1)&quot;&gt;&lt;g transform=&quot;translate(18,18)&quot;&gt;&lt;path class=&quot;background&quot; aria-hidden=&quot;true&quot; d=&quot;M0,0h176v29h-176Z&quot; pointer-events=&quot;none&quot;/&gt;&lt;g&gt;&lt;g class=&quot;mark-group role-legend-entry&quot;&gt;&lt;g transform=&quot;translate(0,0)&quot;&gt;&lt;path class=&quot;background&quot; aria-hidden=&quot;true&quot; d=&quot;M0,0h0v0h0Z&quot; pointer-events=&quot;none&quot;/&gt;&lt;g&gt;&lt;g class=&quot;mark-group role-scope&quot; role=&quot;graphics-object&quot; aria-roledescription=&quot;group mark container&quot;&gt;&lt;g transform=&quot;translate(0,0)&quot;&gt;&lt;path class=&quot;background&quot; aria-hidden=&quot;true&quot; d=&quot;M0,0h176v12.5h-176Z&quot; pointer-events=&quot;none&quot; opacity=&quot;1&quot;/&gt;&lt;g&gt;&lt;g class=&quot;mark-symbol role-legend-symbol&quot; pointer-events=&quot;none&quot;&gt;&lt;path transform=&quot;translate(6,6)&quot; d=&quot;M5,0A5,5,0,1,1,-5,0A5,5,0,1,1,5,0&quot; fill=&quot;#56b4e9&quot; stroke=&quot;#56b4e9&quot; stroke-width=&quot;1.5&quot; opacity=&quot;1&quot;/&gt;&lt;/g&gt;&lt;g class=&quot;mark-text role-legend-label&quot; pointer-events=&quot;none&quot;&gt;&lt;text text-anchor=&quot;start&quot; transform=&quot;translate(16,9)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;stochastic rounding (mo…&lt;/text&gt;&lt;/g&gt;&lt;/g&gt;&lt;path class=&quot;foreground&quot; aria-hidden=&quot;true&quot; d=&quot;&quot; pointer-events=&quot;none&quot; display=&quot;none&quot;/&gt;&lt;/g&gt;&lt;g transform=&quot;translate(0,16)&quot;&gt;&lt;path class=&quot;background&quot; aria-hidden=&quot;true&quot; d=&quot;M0,0h176v12.5h-176Z&quot; pointer-events=&quot;none&quot; opacity=&quot;1&quot;/&gt;&lt;g&gt;&lt;g class=&quot;mark-symbol role-legend-symbol&quot; pointer-events=&quot;none&quot;&gt;&lt;path transform=&quot;translate(6,6)&quot; d=&quot;M5,0A5,5,0,1,1,-5,0A5,5,0,1,1,5,0&quot; fill=&quot;#e69f00&quot; stroke=&quot;#e69f00&quot; stroke-width=&quot;1.5&quot; opacity=&quot;1&quot;/&gt;&lt;/g&gt;&lt;g class=&quot;mark-text role-legend-label&quot; pointer-events=&quot;none&quot;&gt;&lt;text text-anchor=&quot;start&quot; transform=&quot;translate(16,9)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;11px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;round-to-nearest worst …&lt;/text&gt;&lt;/g&gt;&lt;/g&gt;&lt;path class=&quot;foreground&quot; aria-hidden=&quot;true&quot; d=&quot;&quot; pointer-events=&quot;none&quot; display=&quot;none&quot;/&gt;&lt;/g&gt;&lt;/g&gt;&lt;/g&gt;&lt;path class=&quot;foreground&quot; aria-hidden=&quot;true&quot; d=&quot;&quot; pointer-events=&quot;none&quot; display=&quot;none&quot;/&gt;&lt;/g&gt;&lt;/g&gt;&lt;/g&gt;&lt;path class=&quot;foreground&quot; aria-hidden=&quot;true&quot; d=&quot;&quot; pointer-events=&quot;none&quot; display=&quot;none&quot;/&gt;&lt;/g&gt;&lt;/g&gt;&lt;/g&gt;&lt;path class=&quot;foreground&quot; aria-hidden=&quot;true&quot; d=&quot;&quot; display=&quot;none&quot;/&gt;&lt;/g&gt;&lt;/g&gt;&lt;/g&gt;&lt;/svg&gt;&lt;/div&gt; &lt;figcaption data-astro-cid-bj3fsypb&gt;Error growth rendered from the printed rates: round-to-nearest&apos;s worst-case linear envelope (slope 1) against the stochastic-rounding ensemble&apos;s model-derived fp32 deep-n slope of 0.5014 (a direct emulator run to n = 3×10⁷ measures 0.4978), normalized at n = 10³. Slopes and coverage from the SR ensemble coverage table in the preprint (doi:10.5281/zenodo.20599315).&lt;/figcaption&gt; &lt;details class=&quot;data-table&quot; data-astro-cid-bj3fsypb&gt; &lt;summary data-astro-cid-bj3fsypb&gt;data table&lt;/summary&gt;  &lt;div class=&quot;data-table-scroll&quot; data-astro-cid-bj3fsypb&gt;&lt;table&gt;&lt;tr&gt;&lt;th&gt;tier&lt;/th&gt;&lt;th&gt;coverage (λ=0.1 / 0.05 / 0.01)&lt;/th&gt;&lt;th&gt;slope [CI]&lt;/th&gt;&lt;th&gt;const. ratio&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;fp32&lt;/td&gt;&lt;td&gt;1.000 [0.999] at all three&lt;/td&gt;&lt;td&gt;0.5014 [0.4990, 0.5039] (model) / 0.4978 [0.4898, 0.5058] (measured)&lt;/td&gt;&lt;td&gt;0.72&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;fp16&lt;/td&gt;&lt;td&gt;1.000 [0.999] at all three&lt;/td&gt;&lt;td&gt;0.5027 [0.4885, 0.5168]&lt;/td&gt;&lt;td&gt;0.65&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;bf16&lt;/td&gt;&lt;td&gt;1.000 [0.999] at all three&lt;/td&gt;&lt;td&gt;0.5144 [0.4544, 0.5745]&lt;/td&gt;&lt;td&gt;0.56&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;demo (u=2⁻¹³)&lt;/td&gt;&lt;td&gt;1.000 [0.999] at all three&lt;/td&gt;&lt;td&gt;0.4964 [0.4877, 0.5051]&lt;/td&gt;&lt;td&gt;0.69&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt; &lt;/details&gt; &lt;/figure&gt; 
&lt;figure class=&quot;full&quot; data-astro-cid-bj3fsypb&gt; &lt;div class=&quot;svgfig svgfig-diagram&quot; role=&quot;img&quot; aria-label=&quot;Schematic of the stall: increments each just under half an ulp arrive at an accumulator parked at a representable value; round-to-nearest snaps the result back every step, so the computed sum stays flat while the exact sum climbs by one discarded residual per step.&quot; data-astro-cid-bj3fsypb&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; width=&quot;900&quot; id=&quot;fig-02-stall-mechanism&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot; viewBox=&quot;0 0 900 410&quot; style=&quot;background:transparent;&quot; role=&quot;img&quot; aria-label=&quot;Stall mechanism: round-to-nearest snaps back every increment, computed sum never moves while exact sum climbs&quot;&gt;&lt;style&gt;#fig-02-stall-mechanism [fill=&quot;#1a1d23&quot; i]{fill:var(--bg)}#fig-02-stall-mechanism [stroke=&quot;#1a1d23&quot; i]{stroke:var(--bg)}#fig-02-stall-mechanism [fill=&quot;#18181b&quot; i]{fill:var(--bg-panel)}#fig-02-stall-mechanism [stroke=&quot;#18181b&quot; i]{stroke:var(--bg-panel)}#fig-02-stall-mechanism [fill=&quot;#2c2f37&quot; i]{fill:var(--current-line)}#fig-02-stall-mechanism [stroke=&quot;#2c2f37&quot; i]{stroke:var(--current-line)}#fig-02-stall-mechanism [fill=&quot;#f4f5f7&quot; i]{fill:var(--fg)}#fig-02-stall-mechanism [stroke=&quot;#f4f5f7&quot; i]{stroke:var(--fg)}#fig-02-stall-mechanism [fill=&quot;#8a8f98&quot; i]{fill:var(--comment)}#fig-02-stall-mechanism [stroke=&quot;#8a8f98&quot; i]{stroke:var(--comment)}&lt;/style&gt;
  &lt;!--
    DESIGN RATIONALE
    Two parallel narratives: the COMPUTED path (top, increment -&gt; round-to-nearest -&gt; sum
    never moves) and the EXACT path (bottom, exact sum climbs -&gt; gap accumulates). Authored
    at the site&apos;s 16px node-text standard with 14px annotations; every box is sized to its
    text with compact padding and the viewBox is the tight bounding box, so no dead bands.
    The diamond decision node and the two-row computed/exact split are kept as the visual
    language. Okabe-Ito accents (orange = stalled/computed, green = exact/truth, blue =
    exact path). Surface hexes -&gt; CSS vars at inline time by Figure.astro.
  --&gt;
  &lt;defs&gt;
    &lt;marker id=&quot;sm-arr&quot; markerWidth=&quot;9&quot; markerHeight=&quot;9&quot; refX=&quot;7&quot; refY=&quot;3&quot; orient=&quot;auto&quot;&gt;
      &lt;path d=&quot;M0,0 L0,6 L8,3 z&quot; fill=&quot;#8A8F98&quot;/&gt;
    &lt;/marker&gt;
    &lt;marker id=&quot;sm-arr-blue&quot; markerWidth=&quot;9&quot; markerHeight=&quot;9&quot; refX=&quot;7&quot; refY=&quot;3&quot; orient=&quot;auto&quot;&gt;
      &lt;path d=&quot;M0,0 L0,6 L8,3 z&quot; fill=&quot;#56B4E9&quot;/&gt;
    &lt;/marker&gt;
    &lt;marker id=&quot;sm-arr-orange&quot; markerWidth=&quot;9&quot; markerHeight=&quot;9&quot; refX=&quot;7&quot; refY=&quot;3&quot; orient=&quot;auto&quot;&gt;
      &lt;path d=&quot;M0,0 L0,6 L8,3 z&quot; fill=&quot;#E69F00&quot;/&gt;
    &lt;/marker&gt;
    &lt;marker id=&quot;sm-arr-green&quot; markerWidth=&quot;9&quot; markerHeight=&quot;9&quot; refX=&quot;7&quot; refY=&quot;3&quot; orient=&quot;auto&quot;&gt;
      &lt;path d=&quot;M0,0 L0,6 L8,3 z&quot; fill=&quot;#009E73&quot;/&gt;
    &lt;/marker&gt;
  &lt;/defs&gt;
  &lt;style&gt;
    .sm text { font-family: var(--mono); }
    .sm .box { fill: var(--bg-panel); stroke: var(--comment); stroke-width: 1.5; }
    .sm .box-warn { fill: var(--bg-panel); stroke: #E69F00; stroke-width: 1.5; }
    .sm .box-good { fill: var(--bg-panel); stroke: #009E73; stroke-width: 1.5; }
    .sm .t1 { font-size: 16px; text-anchor: middle; dominant-baseline: middle; font-weight: bold; fill: var(--fg); }
    .sm .t2 { font-size: 14px; text-anchor: middle; dominant-baseline: middle; fill: #c0c3c8; }
    .sm .elbl { font-size: 14px; text-anchor: middle; fill: var(--comment); dominant-baseline: middle; }
    .sm .warn-t { fill: #E69F00 !important; }
    .sm .good-t { fill: #009E73 !important; }
  &lt;/style&gt;
  &lt;g class=&quot;sm&quot;&gt;
    &lt;!-- TOP ROW: computed narrative --&gt;
    &lt;!-- Node: increment arrives --&gt;
    &lt;rect class=&quot;box&quot; x=&quot;20&quot; y=&quot;40&quot; width=&quot;230&quot; height=&quot;80&quot; rx=&quot;6&quot;/&gt;
    &lt;text text-anchor=&quot;middle&quot; class=&quot;t1&quot; x=&quot;135&quot; y=&quot;68&quot;&gt;increment arrives&lt;/text&gt;
    &lt;text text-anchor=&quot;middle&quot; class=&quot;t2&quot; x=&quot;135&quot; y=&quot;94&quot;&gt;just under ½ ulp of acc&lt;/text&gt;

    &lt;!-- Arrow: inc -&gt; rn --&gt;
    &lt;line stroke=&quot;#8A8F98&quot; stroke-width=&quot;1.5&quot; x1=&quot;250&quot; y1=&quot;80&quot; x2=&quot;312&quot; y2=&quot;80&quot; marker-end=&quot;url(#sm-arr)&quot;/&gt;
    &lt;text text-anchor=&quot;middle&quot; class=&quot;elbl&quot; x=&quot;281&quot; y=&quot;26&quot;&gt;+ to acc&lt;/text&gt;

    &lt;!-- Node: round-to-nearest diamond --&gt;
    &lt;polygon class=&quot;box&quot; points=&quot;430,34 540,80 430,126 320,80&quot;/&gt;
    &lt;text text-anchor=&quot;middle&quot; class=&quot;t1&quot; x=&quot;430&quot; y=&quot;72&quot;&gt;round-to-nearest&lt;/text&gt;
    &lt;text text-anchor=&quot;middle&quot; class=&quot;t2&quot; x=&quot;430&quot; y=&quot;94&quot;&gt;closer to original?&lt;/text&gt;

    &lt;!-- Arrow: rn -&gt; acc (yes) --&gt;
    &lt;line stroke=&quot;#E69F00&quot; stroke-width=&quot;1.5&quot; x1=&quot;540&quot; y1=&quot;80&quot; x2=&quot;612&quot; y2=&quot;80&quot; marker-end=&quot;url(#sm-arr-orange)&quot;/&gt;
    &lt;text text-anchor=&quot;middle&quot; class=&quot;elbl warn-t&quot; x=&quot;577&quot; y=&quot;62&quot;&gt;yes:&lt;/text&gt;
    &lt;text text-anchor=&quot;middle&quot; class=&quot;elbl warn-t&quot; x=&quot;577&quot; y=&quot;98&quot;&gt;snaps&lt;/text&gt;

    &lt;!-- Node: computed sum NEVER MOVES --&gt;
    &lt;rect class=&quot;box-warn&quot; x=&quot;614&quot; y=&quot;38&quot; width=&quot;266&quot; height=&quot;84&quot; rx=&quot;6&quot;/&gt;
    &lt;text text-anchor=&quot;middle&quot; class=&quot;t1 warn-t&quot; x=&quot;747&quot; y=&quot;62&quot;&gt;computed sum&lt;/text&gt;
    &lt;text text-anchor=&quot;middle&quot; class=&quot;t2 warn-t&quot; x=&quot;747&quot; y=&quot;84&quot;&gt;NEVER MOVES&lt;/text&gt;
    &lt;text text-anchor=&quot;middle&quot; class=&quot;t2&quot; x=&quot;747&quot; y=&quot;104&quot;&gt;(parked at seed value)&lt;/text&gt;

    &lt;!-- Arrow: inc -&gt; exact (down, dashed) --&gt;
    &lt;path stroke=&quot;#56B4E9&quot; stroke-width=&quot;1.5&quot; stroke-dasharray=&quot;5 3&quot; fill=&quot;none&quot; d=&quot;M 135 120 L 135 250&quot; marker-end=&quot;url(#sm-arr-blue)&quot;/&gt;
    &lt;text text-anchor=&quot;middle&quot; class=&quot;elbl&quot; style=&quot;fill:#56B4E9&quot; x=&quot;80&quot; y=&quot;190&quot;&gt;exact path&lt;/text&gt;

    &lt;!-- Arrow: computed sum -&gt; gap (down) --&gt;
    &lt;path stroke=&quot;#E69F00&quot; stroke-width=&quot;1.5&quot; fill=&quot;none&quot; d=&quot;M 747 122 L 747 250&quot; marker-end=&quot;url(#sm-arr-orange)&quot;/&gt;

    &lt;!-- BOTTOM ROW: exact narrative --&gt;
    &lt;!-- Node: exact sum climbs --&gt;
    &lt;rect class=&quot;box-good&quot; x=&quot;20&quot; y=&quot;252&quot; width=&quot;230&quot; height=&quot;100&quot; rx=&quot;6&quot;/&gt;
    &lt;text text-anchor=&quot;middle&quot; class=&quot;t1 good-t&quot; x=&quot;135&quot; y=&quot;280&quot;&gt;exact sum&lt;/text&gt;
    &lt;text text-anchor=&quot;middle&quot; class=&quot;t2 good-t&quot; x=&quot;135&quot; y=&quot;304&quot;&gt;climbs each step&lt;/text&gt;
    &lt;text text-anchor=&quot;middle&quot; class=&quot;t2&quot; x=&quot;135&quot; y=&quot;326&quot;&gt;+residual per tick&lt;/text&gt;

    &lt;!-- Node: after p steps error grows --&gt;
    &lt;rect class=&quot;box&quot; x=&quot;500&quot; y=&quot;252&quot; width=&quot;380&quot; height=&quot;118&quot; rx=&quot;6&quot;/&gt;
    &lt;text text-anchor=&quot;middle&quot; class=&quot;t1&quot; x=&quot;690&quot; y=&quot;282&quot;&gt;after p steps&lt;/text&gt;
    &lt;text text-anchor=&quot;middle&quot; class=&quot;t2&quot; x=&quot;690&quot; y=&quot;308&quot;&gt;error ≈ p·(w−p)·u·T★&lt;/text&gt;
    &lt;text text-anchor=&quot;middle&quot; class=&quot;t2&quot; x=&quot;690&quot; y=&quot;330&quot;&gt;all residuals same direction&lt;/text&gt;
    &lt;text text-anchor=&quot;middle&quot; class=&quot;t2&quot; x=&quot;690&quot; y=&quot;352&quot;&gt;(magnitude factor is necessary)&lt;/text&gt;

    &lt;!-- Arrow: exact -&gt; gap --&gt;
    &lt;line stroke=&quot;#009E73&quot; stroke-width=&quot;1.5&quot; x1=&quot;250&quot; y1=&quot;304&quot; x2=&quot;498&quot; y2=&quot;304&quot; marker-end=&quot;url(#sm-arr-green)&quot;/&gt;
  &lt;/g&gt;
&lt;/svg&gt;
&lt;/div&gt; &lt;figcaption data-astro-cid-bj3fsypb&gt;The stall, drawn: a bucket that silently rejects every sub-half-ulp drop while the true level rises. A sketch of the Coq-checked construction; no measured data in this figure.&lt;/figcaption&gt;  &lt;/figure&gt; &lt;script type=&quot;module&quot; src=&quot;https://thepragmaticquant.com/vercel/path0/src/components/Figure.astro?astro&amp;type=script&amp;index=0&amp;lang.ts&quot;&gt;&lt;/script&gt;
&lt;p&gt;This is the same mechanism deep-learning accelerators already ship, here with a proven envelope and the random-bit budget as an explicit parameter. The budget is documented on one vendor’s hardware-SR path (the Graphcore IPU, r ≈ 23), inferable for NVIDIA Hopper, and undisclosed for Blackwell’s down-conversion path. So the bound reads as a hardware contract: the number of random bits a device must supply to sustain a streaming join without coherent drift.&lt;/p&gt;
&lt;p&gt;All of this covers the textbook inner-product kernel. The one production actually ships is structurally different — &lt;a href=&quot;https://thepragmaticquant.com/the-kernel-nobody-analyzed/&quot;&gt;and it had no analysis at all&lt;/a&gt;.&lt;/p&gt;</content:encoded><category>floating-point</category><category>formal-methods</category><category>time-series</category></item><item><title>The error analysis everyone cites is for a kernel nobody runs</title><link>https://thepragmaticquant.com/the-kernel-nobody-analyzed/</link><guid isPermaLink="true">https://thepragmaticquant.com/the-kernel-nobody-analyzed/</guid><description>SCAMP and STUMPY accumulate a mean-centred covariance, not the textbook inner product — and the centred case is structurally different floating-point mathematics, not a special case at mu = 0.</description><pubDate>Fri, 12 Jun 2026 00:00:00 GMT</pubDate><content:encoded>&lt;div class=&quot;tldr&quot;&gt;&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt; — Production deployments of the primitive (SCAMP, STUMPY) do not run the textbook sliding inner product the earlier articles analyzed; they accumulate a mean-centred covariance with cached, reused increments. At &lt;em&gt;mu = 0&lt;/em&gt; the two kernels compute the same values — and their floating-point computation graphs still differ, by two structural breaks and one bias amplification that defeat the raw proof’s machinery and carry a second paper (&lt;a href=&quot;https://doi.org/10.5281/zenodo.20599478&quot;&gt;doi:10.5281/zenodo.20599478&lt;/a&gt;). The centred envelope held in all 100 measured containment cells, worst ratio 7.54e-3.&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;A reviewer will say the centred analysis is a corollary of &lt;a href=&quot;https://thepragmaticquant.com/thirty-one-papers-zero-error-analyses/&quot;&gt;the raw bound&lt;/a&gt;: set the mean to zero and the centred kernel’s values coincide with the raw one’s. I re-derived both kernels symbolically to settle it, and the answer is no. The &lt;em&gt;values&lt;/em&gt; coincide at mu = 0; the &lt;em&gt;floating-point computation graph&lt;/em&gt; does not — by two structural breaks and one bias amplification the raw proof’s machinery cannot absorb. That distinction is the entire second paper.&lt;/p&gt;
&lt;span class=&quot;marginnote&quot; role=&quot;note&quot;&gt;I wanted the corollary to be true — one paper is less work than two. The symbolic re-derivation convinced me otherwise, and the price of being wrong was two new lemmas and their Coq-checked composition algebra.&lt;/span&gt;
&lt;h2 id=&quot;what-production-actually-accumulates&quot;&gt;What production actually accumulates&lt;a class=&quot;heading-anchor&quot; href=&quot;#what-production-actually-accumulates&quot; aria-label=&quot;Link to this section&quot;&gt;¶&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;SCAMP and STUMPY do not slide a raw dot product. They slide a cached covariance by the SCAMP update,&lt;/p&gt;
&lt;div class=&quot;codeblock&quot;&gt;&lt;div class=&quot;codeblock-head&quot;&gt;&lt;span class=&quot;lang&quot;&gt;text&lt;/span&gt;&lt;button type=&quot;button&quot; class=&quot;copy-btn&quot; data-copy aria-label=&quot;Copy code&quot;&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot; aria-hidden=&quot;true&quot;&gt;&lt;rect width=&quot;14&quot; height=&quot;14&quot; x=&quot;8&quot; y=&quot;8&quot; rx=&quot;2&quot; ry=&quot;2&quot;&gt;&lt;/rect&gt;&lt;path d=&quot;M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;span class=&quot;copy-label&quot;&gt;Copy&lt;/span&gt;&lt;/button&gt;&lt;/div&gt;&lt;pre class=&quot;astro-code astro-code-themes github-light github-dark-default&quot; style=&quot;--shiki-light:#24292e;--shiki-dark:#e6edf3;--shiki-light-bg:#fff;--shiki-dark-bg:#0d1117;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;text&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;cov[i+1, j+1] = cov[i, j] + df[i] * dg[j] + dg[i] * df[j]&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;where the mean-deviation increments — &lt;code&gt;df[i] = (x[i+m] - x[i]) / 2&lt;/code&gt; and its &lt;code&gt;dg&lt;/code&gt; sibling — are precomputed once per stream position and reused at every diagonal cell that visits position &lt;code&gt;i&lt;/code&gt;. I verified this against the public release tags: at SCAMP@v4.0.3 the per-diagonal covariance accumulation lives in the CPU stats and tile-kernel sources, and at stumpy@v1.13.0 in the diagonal-compute routine. Both round each product before the staged add — four rounding events per carry tick.&lt;/p&gt;
&lt;p&gt;Two things now break the raw kernel’s structure. Each cached increment is read at up to min(i+1, P−i) distinct diagonal steps. And the carry adds two products per tick and evicts none. A third feature is shared with the raw kernel but enters differently: because increments are reused across all near-diagonal cells, the deterministic rounding bias they carry is &lt;em&gt;correlated&lt;/em&gt; across those cells — the sqrt-of-cell-count averaging an independent-bias model would grant simply is not available, so the bias contribution is stronger, not new.&lt;/p&gt;
&lt;h2 id=&quot;the-cache-reuse-trap&quot;&gt;The cache-reuse trap&lt;a class=&quot;heading-anchor&quot; href=&quot;#the-cache-reuse-trap&quot; aria-label=&quot;Link to this section&quot;&gt;¶&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The raw paper’s probabilistic bound rests on a no-double-count lemma: every rounding event occupies a distinct martingale index, exactly once. Increment reuse kills that hypothesis directly. One rounding committed when &lt;code&gt;df[i]&lt;/code&gt; was formed re-enters up to min(i+1, P−i) later computations — the same coin flip appearing at many martingale positions. Counted naively, the argument dies.&lt;/p&gt;
&lt;p&gt;The fix is a re-partition, one of the paper’s two new lemmas; the companion composition algebra that assembles the resulting martingale bound is machine-checked in Coq. Fix the precompute draws once and fold the reuse into deterministic coefficient perturbations of the form (1+ζ); what remains is a clean event count — the seed fires 4m−1 rounding events, each carry tick fires 4 genuinely fresh ones, for (4m−1) + 4p in total — with every index distinct.&lt;/p&gt;
&lt;figure class=&quot;full&quot; data-astro-cid-bj3fsypb&gt; &lt;div class=&quot;svgfig svgfig-diagram&quot; role=&quot;img&quot; aria-label=&quot;Two-panel schematic. Left: the raw kernel&apos;s telescope, where each tick adds one product and evicts one. Right: the centred kernel&apos;s fan-out, where one precomputed increment df[i] feeds many diagonal cells with nothing evicted; below it, a cell&apos;s two anchor clusters separated by a dead zone that a transient spike cannot reach.&quot; data-astro-cid-bj3fsypb&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; width=&quot;900&quot; id=&quot;fig-02-increment-reuse&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot; viewBox=&quot;0 0 900 560&quot; style=&quot;background:transparent;&quot; role=&quot;img&quot; aria-label=&quot;Two-panel schematic: raw kernel telescope versus centred kernel fan-out with dead-zone locality&quot;&gt;&lt;style&gt;#fig-02-increment-reuse [fill=&quot;#1a1d23&quot; i]{fill:var(--bg)}#fig-02-increment-reuse [stroke=&quot;#1a1d23&quot; i]{stroke:var(--bg)}#fig-02-increment-reuse [fill=&quot;#18181b&quot; i]{fill:var(--bg-panel)}#fig-02-increment-reuse [stroke=&quot;#18181b&quot; i]{stroke:var(--bg-panel)}#fig-02-increment-reuse [fill=&quot;#2c2f37&quot; i]{fill:var(--current-line)}#fig-02-increment-reuse [stroke=&quot;#2c2f37&quot; i]{stroke:var(--current-line)}#fig-02-increment-reuse [fill=&quot;#f4f5f7&quot; i]{fill:var(--fg)}#fig-02-increment-reuse [stroke=&quot;#f4f5f7&quot; i]{stroke:var(--fg)}#fig-02-increment-reuse [fill=&quot;#8a8f98&quot; i]{fill:var(--comment)}#fig-02-increment-reuse [stroke=&quot;#8a8f98&quot; i]{stroke:var(--comment)}&lt;/style&gt;
  &lt;!--
    DESIGN RATIONALE
    Three panels: (A) raw kernel telescope (add one / evict one), (B) centred kernel fan-out
    (one rounding enters many cells), and a full-width localization panel (a transient spike
    landing in the dead zone between anchor windows). Previously authored at 12/10/9px with
    large empty margins; reworked to the site&apos;s 16px node-text standard (14px sublabels) with
    boxes sized to their text and compact panel padding, so each panel FILLS its frame and the
    viewBox is the tight content bounding box. The two top panels each take ~half width; the
    localization panel spans full width below. Okabe-Ito accents (green = entering / anchor,
    orange = leaving / spike, blue = centred cells). Surface hexes -&gt; CSS vars via Figure.astro.
  --&gt;
  &lt;defs&gt;
    &lt;marker id=&quot;ir-arr&quot; markerWidth=&quot;9&quot; markerHeight=&quot;9&quot; refX=&quot;7&quot; refY=&quot;3&quot; orient=&quot;auto&quot;&gt;
      &lt;path d=&quot;M0,0 L0,6 L8,3 z&quot; fill=&quot;#8A8F98&quot;/&gt;
    &lt;/marker&gt;
    &lt;marker id=&quot;ir-arr-green&quot; markerWidth=&quot;9&quot; markerHeight=&quot;9&quot; refX=&quot;7&quot; refY=&quot;3&quot; orient=&quot;auto&quot;&gt;
      &lt;path d=&quot;M0,0 L0,6 L8,3 z&quot; fill=&quot;#009E73&quot;/&gt;
    &lt;/marker&gt;
    &lt;marker id=&quot;ir-arr-blue&quot; markerWidth=&quot;9&quot; markerHeight=&quot;9&quot; refX=&quot;7&quot; refY=&quot;3&quot; orient=&quot;auto&quot;&gt;
      &lt;path d=&quot;M0,0 L0,6 L8,3 z&quot; fill=&quot;#56B4E9&quot;/&gt;
    &lt;/marker&gt;
    &lt;marker id=&quot;ir-arr-orange&quot; markerWidth=&quot;9&quot; markerHeight=&quot;9&quot; refX=&quot;7&quot; refY=&quot;3&quot; orient=&quot;auto&quot;&gt;
      &lt;path d=&quot;M0,0 L0,6 L8,3 z&quot; fill=&quot;#E69F00&quot;/&gt;
    &lt;/marker&gt;
  &lt;/defs&gt;
  &lt;style&gt;
    .t1ir { font-family: var(--mono); font-size: 16px; text-anchor: middle; dominant-baseline: middle; font-weight: bold; fill: var(--fg); }
    .t2ir { font-family: var(--mono); font-size: 14px; text-anchor: middle; dominant-baseline: middle; fill: #c0c3c8; }
    .sectir { font-family: var(--mono); font-size: 15px; text-anchor: start; dominant-baseline: middle; fill: var(--comment); }
    .noteir { font-family: var(--mono); font-size: 14px; text-anchor: middle; dominant-baseline: middle; fill: var(--comment); }
    .elblir { font-family: var(--mono); font-size: 14px; text-anchor: middle; fill: var(--comment); dominant-baseline: middle; }
  &lt;/style&gt;

  &lt;!-- ===== TOP-LEFT: Raw kernel telescope ===== --&gt;
  &lt;rect fill=&quot;#1a1d23&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; x=&quot;10&quot; y=&quot;14&quot; width=&quot;435&quot; height=&quot;200&quot; rx=&quot;8&quot;/&gt;
  &lt;text text-anchor=&quot;start&quot; class=&quot;sectir&quot; x=&quot;26&quot; y=&quot;40&quot;&gt;Raw kernel: add one, evict one&lt;/text&gt;

  &lt;rect fill=&quot;#18181b&quot; stroke=&quot;#8A8F98&quot; stroke-width=&quot;1.5&quot; x=&quot;34&quot; y=&quot;64&quot; width=&quot;130&quot; height=&quot;70&quot; rx=&quot;5&quot;/&gt;
  &lt;text text-anchor=&quot;middle&quot; class=&quot;t1ir&quot; x=&quot;99&quot; y=&quot;90&quot;&gt;QT(t)&lt;/text&gt;
  &lt;text text-anchor=&quot;middle&quot; class=&quot;t2ir&quot; x=&quot;99&quot; y=&quot;114&quot;&gt;prev product&lt;/text&gt;

  &lt;!-- + entering / - leaving --&gt;
  &lt;line stroke=&quot;#009E73&quot; stroke-width=&quot;1.5&quot; x1=&quot;164&quot; y1=&quot;82&quot; x2=&quot;278&quot; y2=&quot;82&quot; marker-end=&quot;url(#ir-arr-green)&quot;/&gt;
  &lt;text text-anchor=&quot;middle&quot; class=&quot;elblir&quot; style=&quot;fill:#009E73&quot; x=&quot;221&quot; y=&quot;74&quot;&gt;+ entering&lt;/text&gt;
  &lt;line stroke=&quot;#E69F00&quot; stroke-width=&quot;1.5&quot; stroke-dasharray=&quot;4 3&quot; x1=&quot;164&quot; y1=&quot;116&quot; x2=&quot;278&quot; y2=&quot;116&quot; marker-end=&quot;url(#ir-arr-orange)&quot;/&gt;
  &lt;text text-anchor=&quot;middle&quot; class=&quot;elblir&quot; style=&quot;fill:#E69F00&quot; x=&quot;221&quot; y=&quot;124&quot;&gt;− leaving&lt;/text&gt;

  &lt;rect fill=&quot;#18181b&quot; stroke=&quot;#8A8F98&quot; stroke-width=&quot;1.5&quot; x=&quot;280&quot; y=&quot;64&quot; width=&quot;144&quot; height=&quot;70&quot; rx=&quot;5&quot;/&gt;
  &lt;text text-anchor=&quot;middle&quot; class=&quot;t1ir&quot; x=&quot;352&quot; y=&quot;90&quot;&gt;QT(t+1)&lt;/text&gt;
  &lt;text text-anchor=&quot;middle&quot; class=&quot;t2ir&quot; x=&quot;352&quot; y=&quot;114&quot;&gt;updated value&lt;/text&gt;

  &lt;text text-anchor=&quot;middle&quot; class=&quot;noteir&quot; x=&quot;227&quot; y=&quot;188&quot;&gt;error in ← error out: telescopes partially&lt;/text&gt;

  &lt;!-- ===== TOP-RIGHT: Centred fan-out ===== --&gt;
  &lt;rect fill=&quot;#1a1d23&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; x=&quot;455&quot; y=&quot;14&quot; width=&quot;435&quot; height=&quot;200&quot; rx=&quot;8&quot;/&gt;
  &lt;text text-anchor=&quot;start&quot; class=&quot;sectir&quot; x=&quot;471&quot; y=&quot;40&quot;&gt;Centred kernel: add two, evict none&lt;/text&gt;

  &lt;rect fill=&quot;#18181b&quot; stroke=&quot;#56B4E9&quot; stroke-width=&quot;1.5&quot; x=&quot;471&quot; y=&quot;64&quot; width=&quot;180&quot; height=&quot;80&quot; rx=&quot;5&quot;/&gt;
  &lt;text text-anchor=&quot;middle&quot; class=&quot;t1ir&quot; x=&quot;561&quot; y=&quot;88&quot;&gt;cached df[i]&lt;/text&gt;
  &lt;text text-anchor=&quot;middle&quot; class=&quot;t2ir&quot; x=&quot;561&quot; y=&quot;108&quot;&gt;rounded once&lt;/text&gt;
  &lt;text text-anchor=&quot;middle&quot; class=&quot;t2ir&quot; x=&quot;561&quot; y=&quot;130&quot;&gt;at precompute&lt;/text&gt;

  &lt;line stroke=&quot;#56B4E9&quot; stroke-width=&quot;1.5&quot; x1=&quot;651&quot; y1=&quot;80&quot; x2=&quot;704&quot; y2=&quot;70&quot; marker-end=&quot;url(#ir-arr-blue)&quot;/&gt;
  &lt;line stroke=&quot;#56B4E9&quot; stroke-width=&quot;1.5&quot; x1=&quot;651&quot; y1=&quot;104&quot; x2=&quot;704&quot; y2=&quot;104&quot; marker-end=&quot;url(#ir-arr-blue)&quot;/&gt;
  &lt;line stroke=&quot;#56B4E9&quot; stroke-width=&quot;1.5&quot; x1=&quot;651&quot; y1=&quot;128&quot; x2=&quot;704&quot; y2=&quot;138&quot; marker-end=&quot;url(#ir-arr-blue)&quot;/&gt;

  &lt;rect fill=&quot;#18181b&quot; stroke=&quot;#56B4E9&quot; stroke-width=&quot;1&quot; x=&quot;706&quot; y=&quot;54&quot; width=&quot;166&quot; height=&quot;32&quot; rx=&quot;5&quot;/&gt;
  &lt;text text-anchor=&quot;middle&quot; class=&quot;t2ir&quot; style=&quot;fill:#56B4E9&quot; x=&quot;789&quot; y=&quot;70&quot;&gt;cell (i, j)&lt;/text&gt;
  &lt;rect fill=&quot;#18181b&quot; stroke=&quot;#56B4E9&quot; stroke-width=&quot;1&quot; x=&quot;706&quot; y=&quot;90&quot; width=&quot;166&quot; height=&quot;32&quot; rx=&quot;5&quot;/&gt;
  &lt;text text-anchor=&quot;middle&quot; class=&quot;t2ir&quot; style=&quot;fill:#56B4E9&quot; x=&quot;789&quot; y=&quot;106&quot;&gt;cell (i, j+1)&lt;/text&gt;
  &lt;rect fill=&quot;#18181b&quot; stroke=&quot;#56B4E9&quot; stroke-width=&quot;1&quot; x=&quot;706&quot; y=&quot;126&quot; width=&quot;166&quot; height=&quot;32&quot; rx=&quot;5&quot;/&gt;
  &lt;text text-anchor=&quot;middle&quot; class=&quot;t2ir&quot; style=&quot;fill:#56B4E9&quot; x=&quot;789&quot; y=&quot;142&quot;&gt;cell (i, j+2)…&lt;/text&gt;

  &lt;text text-anchor=&quot;middle&quot; class=&quot;noteir&quot; x=&quot;640&quot; y=&quot;188&quot;&gt;same rounding enters up to P−i cells&lt;/text&gt;

  &lt;!-- ===== BOTTOM: Localization / dead zone ===== --&gt;
  &lt;rect fill=&quot;#1a1d23&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; x=&quot;10&quot; y=&quot;240&quot; width=&quot;880&quot; height=&quot;306&quot; rx=&quot;8&quot;/&gt;
  &lt;text text-anchor=&quot;start&quot; class=&quot;sectir&quot; x=&quot;26&quot; y=&quot;268&quot;&gt;Localization: transient spike lands in dead zone between anchor windows&lt;/text&gt;

  &lt;!-- Anchor cluster L --&gt;
  &lt;rect fill=&quot;#18181b&quot; stroke=&quot;#009E73&quot; stroke-width=&quot;1.5&quot; x=&quot;36&quot; y=&quot;300&quot; width=&quot;200&quot; height=&quot;116&quot; rx=&quot;5&quot;/&gt;
  &lt;text text-anchor=&quot;middle&quot; class=&quot;t1ir&quot; style=&quot;fill:#009E73&quot; x=&quot;136&quot; y=&quot;330&quot;&gt;anchor cluster L&lt;/text&gt;
  &lt;text text-anchor=&quot;middle&quot; class=&quot;t2ir&quot; x=&quot;136&quot; y=&quot;356&quot;&gt;read by the cell&lt;/text&gt;
  &lt;text text-anchor=&quot;middle&quot; class=&quot;t2ir&quot; x=&quot;136&quot; y=&quot;378&quot;&gt;to build cov. update&lt;/text&gt;

  &lt;!-- Dead zone --&gt;
  &lt;rect fill=&quot;#1a1d23&quot; stroke=&quot;#8A8F98&quot; stroke-width=&quot;1&quot; stroke-dasharray=&quot;4 2&quot; x=&quot;266&quot; y=&quot;300&quot; width=&quot;250&quot; height=&quot;116&quot; rx=&quot;5&quot;/&gt;
  &lt;text text-anchor=&quot;middle&quot; class=&quot;t1ir&quot; style=&quot;fill:var(--comment)&quot; x=&quot;391&quot; y=&quot;338&quot;&gt;dead zone&lt;/text&gt;
  &lt;text text-anchor=&quot;middle&quot; class=&quot;t2ir&quot; x=&quot;391&quot; y=&quot;364&quot;&gt;never read by this cell&lt;/text&gt;

  &lt;!-- Anchor cluster R --&gt;
  &lt;rect fill=&quot;#18181b&quot; stroke=&quot;#009E73&quot; stroke-width=&quot;1.5&quot; x=&quot;546&quot; y=&quot;300&quot; width=&quot;200&quot; height=&quot;116&quot; rx=&quot;5&quot;/&gt;
  &lt;text text-anchor=&quot;middle&quot; class=&quot;t1ir&quot; style=&quot;fill:#009E73&quot; x=&quot;646&quot; y=&quot;330&quot;&gt;anchor cluster R&lt;/text&gt;
  &lt;text text-anchor=&quot;middle&quot; class=&quot;t2ir&quot; x=&quot;646&quot; y=&quot;356&quot;&gt;read by the cell&lt;/text&gt;
  &lt;text text-anchor=&quot;middle&quot; class=&quot;t2ir&quot; x=&quot;646&quot; y=&quot;378&quot;&gt;to build cov. update&lt;/text&gt;

  &lt;!-- Transient spike --&gt;
  &lt;ellipse fill=&quot;#18181b&quot; stroke=&quot;#E69F00&quot; stroke-width=&quot;1.5&quot; cx=&quot;780&quot; cy=&quot;470&quot; rx=&quot;100&quot; ry=&quot;40&quot;/&gt;
  &lt;text text-anchor=&quot;middle&quot; class=&quot;t1ir&quot; style=&quot;fill:#E69F00&quot; x=&quot;780&quot; y=&quot;462&quot;&gt;transient spike&lt;/text&gt;
  &lt;text text-anchor=&quot;middle&quot; class=&quot;t2ir&quot; x=&quot;780&quot; y=&quot;486&quot;&gt;(e.g. reseed noise)&lt;/text&gt;

  &lt;!-- spike -&gt; dead zone --&gt;
  &lt;path stroke=&quot;#E69F00&quot; stroke-width=&quot;1.5&quot; stroke-dasharray=&quot;5 3&quot; fill=&quot;none&quot; d=&quot;M 700 466 L 425 452&quot; marker-end=&quot;url(#ir-arr-orange)&quot;/&gt;
  &lt;text text-anchor=&quot;middle&quot; class=&quot;elblir&quot; style=&quot;fill:#E69F00&quot; x=&quot;565&quot; y=&quot;436&quot;&gt;lands here — cell error unchanged&lt;/text&gt;

  &lt;!-- Note --&gt;
  &lt;text text-anchor=&quot;start&quot; style=&quot;font-family: var(--mono); font-size:14px; fill:var(--comment); text-anchor:start; dominant-baseline:middle&quot; x=&quot;26&quot; y=&quot;510&quot;&gt;proven in preprint doi:10.5281/zenodo.20599478:&lt;/text&gt;
  &lt;text text-anchor=&quot;start&quot; style=&quot;font-family: var(--mono); font-size:14px; fill:var(--comment); text-anchor:start; dominant-baseline:middle&quot; x=&quot;26&quot; y=&quot;536&quot;&gt;a spike in the dead zone cannot affect the cell&apos;s forward error&lt;/text&gt;
&lt;/svg&gt;
&lt;/div&gt; &lt;figcaption data-astro-cid-bj3fsypb&gt;Increment reuse fan-out versus the raw telescope, and the healing-in-the-gap locality of the localization corollary: a spike in the dead zone between a cell&apos;s two anchor windows provably cannot touch that cell. Mechanism sketch, no measured data; the localization corollary it depicts is proved in the preprint (doi:10.5281/zenodo.20599478).&lt;/figcaption&gt;  &lt;/figure&gt; &lt;script type=&quot;module&quot; src=&quot;https://thepragmaticquant.com/vercel/path0/src/components/Figure.astro?astro&amp;type=script&amp;index=0&amp;lang.ts&quot;&gt;&lt;/script&gt;
&lt;h2 id=&quot;add-two-evict-none&quot;&gt;Add two, evict none&lt;a class=&quot;heading-anchor&quot; href=&quot;#add-two-evict-none&quot; aria-label=&quot;Link to this section&quot;&gt;¶&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The raw carry adds one product and removes one, so errors can partially telescope. The centred carry adds two and removes nothing. Counterintuitively, this makes the &lt;em&gt;lower&lt;/em&gt; bound easier to prove: the summed errors are 2p entering products with no leaving term to cancel against, so the adversary just pushes every rounding the same way. The paper’s lower bounds land at Θ(p·u·M_cov) and Θ(p·m·u·M_cov) against an upper envelope of Θ((2p+m)(p+m)·u·M_cov) — matched on the carry-rate in p and on the magnitude weighting; a residual gap of order m/p remains when p is much smaller than m.&lt;/p&gt;
&lt;h2 id=&quot;conditioning-is-not-a-prefactor&quot;&gt;Conditioning is not a prefactor&lt;a class=&quot;heading-anchor&quot; href=&quot;#conditioning-is-not-a-prefactor&quot; aria-label=&quot;Link to this section&quot;&gt;¶&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The way mean-centring is usually justified conflates two effects — I conflated them myself until the derivation forced the split. Centring wins because it avoids catastrophic cancellation: the small covariance you divide by is computed directly, not as the difference of two large inner products. It does &lt;em&gt;not&lt;/em&gt; win by a smaller error constant — the centred magnitude scale M_cov can be up to twice the raw scale T★. The bounds quantify each effect separately.&lt;/p&gt;
&lt;span class=&quot;marginnote&quot; role=&quot;note&quot;&gt;Practitioner’s note from the preprint: FMA hardware strictly reduces rounding events below the model, so the envelopes are safe pessimistic ceilings on FMA silicon; and z-normalised increments sit far above the subnormal threshold, so flush-to-zero never triggers here.&lt;/span&gt;
&lt;p&gt;The remaining check is whether the centred envelope holds on the kernel that ships. The measured check ran the genuine two-product off-diagonal carry against an f64-exact reference at N = 2^20, across 7 synthetic corpora, 30 seeds per cell, windows 16 through 256, reference distances up to 4096, near and far diagonal bands. All 100 (precision, window, distance, band) cells were contained; the table below prints the per-(precision, window) worst-case rows of that grid. The worst ratio of measured error to envelope was 7.54e-3 — two orders of magnitude of headroom — and at f32 with window 256 the measured error was 1.89 against an envelope of 290.&lt;/p&gt;
&lt;figure class=&quot;full&quot; data-astro-cid-bj3fsypb&gt; &lt;div class=&quot;svgfig svgfig-chart&quot; role=&quot;img&quot; aria-label=&quot;Log-scale dot chart of the ten printed worst-cell containment ratios, f64 and f32, windows 16 to 256: every ratio sits between 3.59e-3 and 7.54e-3, far below the containment line at 1.&quot; data-astro-cid-bj3fsypb&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; id=&quot;fig-01-containment-ratios&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot; xmlns:xlink=&quot;http://www.w3.org/1999/xlink&quot; version=&quot;1.1&quot; class=&quot;marks&quot; width=&quot;554&quot; height=&quot;309&quot; viewBox=&quot;0 0 554 309&quot;&gt;&lt;style&gt;#fig-01-containment-ratios [fill=&quot;#1a1d23&quot; i]{fill:var(--bg)}#fig-01-containment-ratios [stroke=&quot;#1a1d23&quot; i]{stroke:var(--bg)}#fig-01-containment-ratios [fill=&quot;#18181b&quot; i]{fill:var(--bg-panel)}#fig-01-containment-ratios [stroke=&quot;#18181b&quot; i]{stroke:var(--bg-panel)}#fig-01-containment-ratios [fill=&quot;#2c2f37&quot; i]{fill:var(--current-line)}#fig-01-containment-ratios [stroke=&quot;#2c2f37&quot; i]{stroke:var(--current-line)}#fig-01-containment-ratios [fill=&quot;#f4f5f7&quot; i]{fill:var(--fg)}#fig-01-containment-ratios [stroke=&quot;#f4f5f7&quot; i]{stroke:var(--fg)}#fig-01-containment-ratios [fill=&quot;#8a8f98&quot; i]{fill:var(--comment)}#fig-01-containment-ratios [stroke=&quot;#8a8f98&quot; i]{stroke:var(--comment)}&lt;/style&gt;&lt;rect width=&quot;554&quot; height=&quot;309&quot; fill=&quot;#1a1d23&quot;/&gt;&lt;g fill=&quot;none&quot; stroke-miterlimit=&quot;10&quot; transform=&quot;translate(57,13)&quot;&gt;&lt;g class=&quot;mark-group role-frame root&quot; role=&quot;graphics-object&quot; aria-roledescription=&quot;group mark container&quot;&gt;&lt;g transform=&quot;translate(0,0)&quot;&gt;&lt;path class=&quot;background&quot; aria-hidden=&quot;true&quot; d=&quot;M0.5,0.5h420v260h-420Z&quot;/&gt;&lt;g&gt;&lt;g class=&quot;mark-group role-axis&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;axis&quot; aria-label=&quot;X-axis titled &apos;window w&apos; for a log scale with values from 8 to 512&quot;&gt;&lt;g transform=&quot;translate(0.5,260.5)&quot;&gt;&lt;path class=&quot;background&quot; aria-hidden=&quot;true&quot; d=&quot;M0,0h0v0h0Z&quot; pointer-events=&quot;none&quot;/&gt;&lt;g&gt;&lt;g class=&quot;mark-rule role-axis-tick&quot; pointer-events=&quot;none&quot;&gt;&lt;line transform=&quot;translate(70,0)&quot; x2=&quot;0&quot; y2=&quot;5&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(140,0)&quot; x2=&quot;0&quot; y2=&quot;5&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(210,0)&quot; x2=&quot;0&quot; y2=&quot;5&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(280,0)&quot; x2=&quot;0&quot; y2=&quot;5&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(350,0)&quot; x2=&quot;0&quot; y2=&quot;5&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;/g&gt;&lt;g class=&quot;mark-text role-axis-label&quot; pointer-events=&quot;none&quot;&gt;&lt;text text-anchor=&quot;middle&quot; transform=&quot;translate(70,15)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;10px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;16&lt;/text&gt;&lt;text text-anchor=&quot;middle&quot; transform=&quot;translate(140,15)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;10px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;32&lt;/text&gt;&lt;text text-anchor=&quot;middle&quot; transform=&quot;translate(209.99999999999994,15)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;10px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;64&lt;/text&gt;&lt;text text-anchor=&quot;middle&quot; transform=&quot;translate(279.99999999999994,15)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;10px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;128&lt;/text&gt;&lt;text text-anchor=&quot;middle&quot; transform=&quot;translate(349.99999999999994,15)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;10px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;256&lt;/text&gt;&lt;/g&gt;&lt;g class=&quot;mark-rule role-axis-domain&quot; pointer-events=&quot;none&quot;&gt;&lt;line transform=&quot;translate(0,0)&quot; x2=&quot;420&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;/g&gt;&lt;g class=&quot;mark-text role-axis-title&quot; pointer-events=&quot;none&quot;&gt;&lt;text text-anchor=&quot;middle&quot; transform=&quot;translate(210,29)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;10px&quot; font-weight=&quot;bold&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;window w&lt;/text&gt;&lt;/g&gt;&lt;/g&gt;&lt;path class=&quot;foreground&quot; aria-hidden=&quot;true&quot; d=&quot;&quot; pointer-events=&quot;none&quot; display=&quot;none&quot;/&gt;&lt;/g&gt;&lt;/g&gt;&lt;g class=&quot;mark-group role-axis&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;axis&quot; aria-label=&quot;Y-axis titled &apos;measured error / centred envelope (worst cell)&apos; for a log scale with values from 0.001 to 10&quot;&gt;&lt;g transform=&quot;translate(0.5,0.5)&quot;&gt;&lt;path class=&quot;background&quot; aria-hidden=&quot;true&quot; d=&quot;M0,0h0v0h0Z&quot; pointer-events=&quot;none&quot;/&gt;&lt;g&gt;&lt;g class=&quot;mark-rule role-axis-tick&quot; pointer-events=&quot;none&quot;&gt;&lt;line transform=&quot;translate(0,260)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,240)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,229)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,221)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,215)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,209)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,205)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,201)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,198)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,195)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,175)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,164)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,156)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,150)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,144)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,140)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,136)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,133)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,130)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,110)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,99)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,91)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,85)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,79)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,75)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,71)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,68)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,65)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,45)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,34)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,26)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,20)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,14)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,10)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,6)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,3)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,0)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;/g&gt;&lt;g class=&quot;mark-text role-axis-label&quot; pointer-events=&quot;none&quot;&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,263)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;10px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;0.001&lt;/text&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,243.43305028184122)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;10px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;0.002&lt;/text&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,231.98711844322196)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;10px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,223.86610056368244)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;10px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,217.56694971815878)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;10px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,212.42016872506318)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;10px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,208.0686273990733)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;10px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,204.29915084552368)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;10px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,200.9742368864439)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;10px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,198)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;10px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;0.01&lt;/text&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,178.43305028184122)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;10px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;0.02&lt;/text&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,166.98711844322196)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;10px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,158.86610056368244)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;10px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,152.56694971815878)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;10px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,147.42016872506318)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;10px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,143.06862739907334)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;10px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,139.29915084552368)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;10px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,135.9742368864439)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;10px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,133)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;10px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;0.1&lt;/text&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,113.43305028184125)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;10px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;0.2&lt;/text&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,101.98711844322196)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;10px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,93.86610056368247)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;10px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,87.56694971815881)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;10px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,82.42016872506318)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;10px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,78.06862739907334)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;10px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,74.29915084552368)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;10px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,70.97423688644389)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;10px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,68.00000000000003)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;10px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;1&lt;/text&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,48.43305028184125)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;10px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;2&lt;/text&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,36.98711844322199)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;10px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,28.866100563682465)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;10px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,22.56694971815884)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;10px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,17.420168725063206)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;10px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,13.068627399073328)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;10px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,9.299150845523684)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;10px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,5.97423688644389)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;10px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;/&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,3)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;10px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;10&lt;/text&gt;&lt;/g&gt;&lt;g class=&quot;mark-rule role-axis-domain&quot; pointer-events=&quot;none&quot;&gt;&lt;line transform=&quot;translate(0,260)&quot; x2=&quot;0&quot; y2=&quot;-260&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;/g&gt;&lt;g class=&quot;mark-text role-axis-title&quot; pointer-events=&quot;none&quot;&gt;&lt;text text-anchor=&quot;middle&quot; transform=&quot;translate(-41,130) rotate(-90) translate(0,-2)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;10px&quot; font-weight=&quot;bold&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;measured error / centred envelope (worst cell)&lt;/text&gt;&lt;/g&gt;&lt;/g&gt;&lt;path class=&quot;foreground&quot; aria-hidden=&quot;true&quot; d=&quot;&quot; pointer-events=&quot;none&quot; display=&quot;none&quot;/&gt;&lt;/g&gt;&lt;/g&gt;&lt;g class=&quot;mark-rule role-mark layer_0_marks&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;rule mark container&quot;&gt;&lt;line transform=&quot;translate(420,65.00000000000003)&quot; x2=&quot;-420&quot; y2=&quot;0&quot; stroke=&quot;#888888&quot; stroke-dasharray=&quot;6,4&quot;/&gt;&lt;line transform=&quot;translate(420,65.00000000000003)&quot; x2=&quot;-420&quot; y2=&quot;0&quot; stroke=&quot;#888888&quot; stroke-dasharray=&quot;6,4&quot;/&gt;&lt;line transform=&quot;translate(420,65.00000000000003)&quot; x2=&quot;-420&quot; y2=&quot;0&quot; stroke=&quot;#888888&quot; stroke-dasharray=&quot;6,4&quot;/&gt;&lt;line transform=&quot;translate(420,65.00000000000003)&quot; x2=&quot;-420&quot; y2=&quot;0&quot; stroke=&quot;#888888&quot; stroke-dasharray=&quot;6,4&quot;/&gt;&lt;line transform=&quot;translate(420,65.00000000000003)&quot; x2=&quot;-420&quot; y2=&quot;0&quot; stroke=&quot;#888888&quot; stroke-dasharray=&quot;6,4&quot;/&gt;&lt;line transform=&quot;translate(420,65.00000000000003)&quot; x2=&quot;-420&quot; y2=&quot;0&quot; stroke=&quot;#888888&quot; stroke-dasharray=&quot;6,4&quot;/&gt;&lt;line transform=&quot;translate(420,65.00000000000003)&quot; x2=&quot;-420&quot; y2=&quot;0&quot; stroke=&quot;#888888&quot; stroke-dasharray=&quot;6,4&quot;/&gt;&lt;line transform=&quot;translate(420,65.00000000000003)&quot; x2=&quot;-420&quot; y2=&quot;0&quot; stroke=&quot;#888888&quot; stroke-dasharray=&quot;6,4&quot;/&gt;&lt;line transform=&quot;translate(420,65.00000000000003)&quot; x2=&quot;-420&quot; y2=&quot;0&quot; stroke=&quot;#888888&quot; stroke-dasharray=&quot;6,4&quot;/&gt;&lt;line transform=&quot;translate(420,65.00000000000003)&quot; x2=&quot;-420&quot; y2=&quot;0&quot; stroke=&quot;#888888&quot; stroke-dasharray=&quot;6,4&quot;/&gt;&lt;/g&gt;&lt;g class=&quot;mark-text role-mark layer_1_marks&quot; role=&quot;graphics-object&quot; aria-roledescription=&quot;text mark container&quot;&gt;&lt;text text-anchor=&quot;start&quot; transform=&quot;translate(74,60.00000000000003)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;9px&quot; fill=&quot;#888888&quot;&gt;containment line (ratio = 1)&lt;/text&gt;&lt;text text-anchor=&quot;start&quot; transform=&quot;translate(74,60.00000000000003)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;9px&quot; fill=&quot;#888888&quot;&gt;containment line (ratio = 1)&lt;/text&gt;&lt;text text-anchor=&quot;start&quot; transform=&quot;translate(74,60.00000000000003)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;9px&quot; fill=&quot;#888888&quot;&gt;containment line (ratio = 1)&lt;/text&gt;&lt;text text-anchor=&quot;start&quot; transform=&quot;translate(74,60.00000000000003)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;9px&quot; fill=&quot;#888888&quot;&gt;containment line (ratio = 1)&lt;/text&gt;&lt;text text-anchor=&quot;start&quot; transform=&quot;translate(74,60.00000000000003)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;9px&quot; fill=&quot;#888888&quot;&gt;containment line (ratio = 1)&lt;/text&gt;&lt;text text-anchor=&quot;start&quot; transform=&quot;translate(74,60.00000000000003)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;9px&quot; fill=&quot;#888888&quot;&gt;containment line (ratio = 1)&lt;/text&gt;&lt;text text-anchor=&quot;start&quot; transform=&quot;translate(74,60.00000000000003)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;9px&quot; fill=&quot;#888888&quot;&gt;containment line (ratio = 1)&lt;/text&gt;&lt;text text-anchor=&quot;start&quot; transform=&quot;translate(74,60.00000000000003)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;9px&quot; fill=&quot;#888888&quot;&gt;containment line (ratio = 1)&lt;/text&gt;&lt;text text-anchor=&quot;start&quot; transform=&quot;translate(74,60.00000000000003)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;9px&quot; fill=&quot;#888888&quot;&gt;containment line (ratio = 1)&lt;/text&gt;&lt;text text-anchor=&quot;start&quot; transform=&quot;translate(74,60.00000000000003)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;9px&quot; fill=&quot;#888888&quot;&gt;containment line (ratio = 1)&lt;/text&gt;&lt;/g&gt;&lt;g class=&quot;mark-group role-scope layer_2_layer_0_pathgroup&quot; role=&quot;graphics-object&quot; aria-roledescription=&quot;group mark container&quot;&gt;&lt;g transform=&quot;translate(0,0)&quot;&gt;&lt;path class=&quot;background&quot; aria-hidden=&quot;true&quot; d=&quot;M0,0h420v260h-420Z&quot;/&gt;&lt;g&gt;&lt;g class=&quot;mark-line role-mark layer_2_layer_0_marks&quot; role=&quot;graphics-object&quot; aria-roledescription=&quot;line mark container&quot;&gt;&lt;path aria-label=&quot;w: 16; ratio: 0.00402; precision: f64&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;line mark&quot; d=&quot;M70,220.725L140,205.475L210,205.028L280,202.971L350,206.39&quot; stroke=&quot;#56b4e9&quot; stroke-width=&quot;2&quot;/&gt;&lt;/g&gt;&lt;/g&gt;&lt;path class=&quot;foreground&quot; aria-hidden=&quot;true&quot; d=&quot;&quot; display=&quot;none&quot;/&gt;&lt;/g&gt;&lt;g transform=&quot;translate(0,0)&quot;&gt;&lt;path class=&quot;background&quot; aria-hidden=&quot;true&quot; d=&quot;M0,0h420v260h-420Z&quot;/&gt;&lt;g&gt;&lt;g class=&quot;mark-line role-mark layer_2_layer_0_marks&quot; role=&quot;graphics-object&quot; aria-roledescription=&quot;line mark container&quot;&gt;&lt;path aria-label=&quot;w: 16; ratio: 0.00359; precision: f32&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;line mark&quot; d=&quot;M70,223.919L140,213.351L210,206.858L280,208.268L350,207.117&quot; stroke=&quot;#e69f00&quot; stroke-width=&quot;2&quot;/&gt;&lt;/g&gt;&lt;/g&gt;&lt;path class=&quot;foreground&quot; aria-hidden=&quot;true&quot; d=&quot;&quot; display=&quot;none&quot;/&gt;&lt;/g&gt;&lt;/g&gt;&lt;g class=&quot;mark-symbol role-mark layer_2_layer_1_marks&quot; role=&quot;graphics-object&quot; aria-roledescription=&quot;symbol mark container&quot;&gt;&lt;path aria-label=&quot;w: 16; ratio: 0.00402; precision: f64&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;point&quot; transform=&quot;translate(70,220.72530654950947)&quot; d=&quot;M4.183,0A4.183,4.183,0,1,1,-4.183,0A4.183,4.183,0,1,1,4.183,0&quot; fill=&quot;#56b4e9&quot; stroke-width=&quot;2&quot; opacity=&quot;1&quot;/&gt;&lt;path aria-label=&quot;w: 32; ratio: 0.0069; precision: f64&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;point&quot; transform=&quot;translate(140,205.4748091020784)&quot; d=&quot;M4.183,0A4.183,4.183,0,1,1,-4.183,0A4.183,4.183,0,1,1,4.183,0&quot; fill=&quot;#56b4e9&quot; stroke-width=&quot;2&quot; opacity=&quot;1&quot;/&gt;&lt;path aria-label=&quot;w: 64; ratio: 0.00701; precision: f64&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;point&quot; transform=&quot;translate(209.99999999999994,205.02832883216723)&quot; d=&quot;M4.183,0A4.183,4.183,0,1,1,-4.183,0A4.183,4.183,0,1,1,4.183,0&quot; fill=&quot;#56b4e9&quot; stroke-width=&quot;2&quot; opacity=&quot;1&quot;/&gt;&lt;path aria-label=&quot;w: 128; ratio: 0.00754; precision: f64&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;point&quot; transform=&quot;translate(279.99999999999994,202.9708625184647)&quot; d=&quot;M4.183,0A4.183,4.183,0,1,1,-4.183,0A4.183,4.183,0,1,1,4.183,0&quot; fill=&quot;#56b4e9&quot; stroke-width=&quot;2&quot; opacity=&quot;1&quot;/&gt;&lt;path aria-label=&quot;w: 256; ratio: 0.00668; precision: f64&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;point&quot; transform=&quot;translate(349.99999999999994,206.38952993908953)&quot; d=&quot;M4.183,0A4.183,4.183,0,1,1,-4.183,0A4.183,4.183,0,1,1,4.183,0&quot; fill=&quot;#56b4e9&quot; stroke-width=&quot;2&quot; opacity=&quot;1&quot;/&gt;&lt;path aria-label=&quot;w: 16; ratio: 0.00359; precision: f32&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;point&quot; transform=&quot;translate(70,223.91886084240926)&quot; d=&quot;M4.183,0A4.183,4.183,0,1,1,-4.183,0A4.183,4.183,0,1,1,4.183,0&quot; fill=&quot;#e69f00&quot; stroke-width=&quot;2&quot; opacity=&quot;1&quot;/&gt;&lt;path aria-label=&quot;w: 32; ratio: 0.00522; precision: f32&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;point&quot; transform=&quot;translate(140,213.35141730485296)&quot; d=&quot;M4.183,0A4.183,4.183,0,1,1,-4.183,0A4.183,4.183,0,1,1,4.183,0&quot; fill=&quot;#e69f00&quot; stroke-width=&quot;2&quot; opacity=&quot;1&quot;/&gt;&lt;path aria-label=&quot;w: 64; ratio: 0.00657; precision: f32&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;point&quot; transform=&quot;translate(209.99999999999994,206.85825097861425)&quot; d=&quot;M4.183,0A4.183,4.183,0,1,1,-4.183,0A4.183,4.183,0,1,1,4.183,0&quot; fill=&quot;#e69f00&quot; stroke-width=&quot;2&quot; opacity=&quot;1&quot;/&gt;&lt;path aria-label=&quot;w: 128; ratio: 0.00625; precision: f32&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;point&quot; transform=&quot;translate(279.99999999999994,208.26779887263513)&quot; d=&quot;M4.183,0A4.183,4.183,0,1,1,-4.183,0A4.183,4.183,0,1,1,4.183,0&quot; fill=&quot;#e69f00&quot; stroke-width=&quot;2&quot; opacity=&quot;1&quot;/&gt;&lt;path aria-label=&quot;w: 256; ratio: 0.00651; precision: f32&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;point&quot; transform=&quot;translate(349.99999999999994,207.11723574306754)&quot; d=&quot;M4.183,0A4.183,4.183,0,1,1,-4.183,0A4.183,4.183,0,1,1,4.183,0&quot; fill=&quot;#e69f00&quot; stroke-width=&quot;2&quot; opacity=&quot;1&quot;/&gt;&lt;/g&gt;&lt;g class=&quot;mark-group role-legend&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;legend&quot; aria-label=&quot;Symbol legend titled &apos;precision&apos; for fill color and stroke color with 2 values: f64, f32&quot;&gt;&lt;g transform=&quot;translate(438,0)&quot;&gt;&lt;path class=&quot;background&quot; aria-hidden=&quot;true&quot; d=&quot;M0,0h54v44h-54Z&quot; pointer-events=&quot;none&quot;/&gt;&lt;g&gt;&lt;g class=&quot;mark-group role-legend-entry&quot;&gt;&lt;g transform=&quot;translate(0,15)&quot;&gt;&lt;path class=&quot;background&quot; aria-hidden=&quot;true&quot; d=&quot;M0,0h0v0h0Z&quot; pointer-events=&quot;none&quot;/&gt;&lt;g&gt;&lt;g class=&quot;mark-group role-scope&quot; role=&quot;graphics-object&quot; aria-roledescription=&quot;group mark container&quot;&gt;&lt;g transform=&quot;translate(0,0)&quot;&gt;&lt;path class=&quot;background&quot; aria-hidden=&quot;true&quot; d=&quot;M0,0h34v12.5h-34Z&quot; pointer-events=&quot;none&quot; opacity=&quot;1&quot;/&gt;&lt;g&gt;&lt;g class=&quot;mark-symbol role-legend-symbol&quot; pointer-events=&quot;none&quot;&gt;&lt;path transform=&quot;translate(6,6)&quot; d=&quot;M5,0A5,5,0,1,1,-5,0A5,5,0,1,1,5,0&quot; fill=&quot;#56b4e9&quot; stroke=&quot;#56b4e9&quot; stroke-width=&quot;1.5&quot; opacity=&quot;1&quot;/&gt;&lt;/g&gt;&lt;g class=&quot;mark-text role-legend-label&quot; pointer-events=&quot;none&quot;&gt;&lt;text text-anchor=&quot;start&quot; transform=&quot;translate(16,9)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;10px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;f64&lt;/text&gt;&lt;/g&gt;&lt;/g&gt;&lt;path class=&quot;foreground&quot; aria-hidden=&quot;true&quot; d=&quot;&quot; pointer-events=&quot;none&quot; display=&quot;none&quot;/&gt;&lt;/g&gt;&lt;g transform=&quot;translate(0,16)&quot;&gt;&lt;path class=&quot;background&quot; aria-hidden=&quot;true&quot; d=&quot;M0,0h34v12.5h-34Z&quot; pointer-events=&quot;none&quot; opacity=&quot;1&quot;/&gt;&lt;g&gt;&lt;g class=&quot;mark-symbol role-legend-symbol&quot; pointer-events=&quot;none&quot;&gt;&lt;path transform=&quot;translate(6,6)&quot; d=&quot;M5,0A5,5,0,1,1,-5,0A5,5,0,1,1,5,0&quot; fill=&quot;#e69f00&quot; stroke=&quot;#e69f00&quot; stroke-width=&quot;1.5&quot; opacity=&quot;1&quot;/&gt;&lt;/g&gt;&lt;g class=&quot;mark-text role-legend-label&quot; pointer-events=&quot;none&quot;&gt;&lt;text text-anchor=&quot;start&quot; transform=&quot;translate(16,9)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;10px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;f32&lt;/text&gt;&lt;/g&gt;&lt;/g&gt;&lt;path class=&quot;foreground&quot; aria-hidden=&quot;true&quot; d=&quot;&quot; pointer-events=&quot;none&quot; display=&quot;none&quot;/&gt;&lt;/g&gt;&lt;/g&gt;&lt;/g&gt;&lt;path class=&quot;foreground&quot; aria-hidden=&quot;true&quot; d=&quot;&quot; pointer-events=&quot;none&quot; display=&quot;none&quot;/&gt;&lt;/g&gt;&lt;/g&gt;&lt;g class=&quot;mark-text role-legend-title&quot; pointer-events=&quot;none&quot;&gt;&lt;text text-anchor=&quot;start&quot; transform=&quot;translate(0,8)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;10px&quot; font-weight=&quot;bold&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;precision&lt;/text&gt;&lt;/g&gt;&lt;/g&gt;&lt;path class=&quot;foreground&quot; aria-hidden=&quot;true&quot; d=&quot;&quot; pointer-events=&quot;none&quot; display=&quot;none&quot;/&gt;&lt;/g&gt;&lt;/g&gt;&lt;/g&gt;&lt;path class=&quot;foreground&quot; aria-hidden=&quot;true&quot; d=&quot;&quot; display=&quot;none&quot;/&gt;&lt;/g&gt;&lt;/g&gt;&lt;/g&gt;&lt;/svg&gt;&lt;/div&gt; &lt;figcaption data-astro-cid-bj3fsypb&gt;Worst-cell ratio of measured forward error to the centred envelope, per precision and window. Every cell sits roughly two orders of magnitude below the containment line. Data: Table 1 of the preprint (doi:10.5281/zenodo.20599478).&lt;/figcaption&gt; &lt;details class=&quot;data-table&quot; data-astro-cid-bj3fsypb&gt; &lt;summary data-astro-cid-bj3fsypb&gt;data table&lt;/summary&gt;  &lt;div class=&quot;data-table-scroll&quot; data-astro-cid-bj3fsypb&gt;&lt;table&gt;&lt;tr&gt;&lt;th&gt;precision&lt;/th&gt;&lt;th&gt;w&lt;/th&gt;&lt;th&gt;tightest (p, band)&lt;/th&gt;&lt;th&gt;measured err&lt;/th&gt;&lt;th&gt;centred envelope&lt;/th&gt;&lt;th&gt;ratio&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;f64&lt;/td&gt;&lt;td&gt;16&lt;/td&gt;&lt;td&gt;(64, near)&lt;/td&gt;&lt;td&gt;2.04e-10&lt;/td&gt;&lt;td&gt;5.06e-08&lt;/td&gt;&lt;td&gt;4.02e-3&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;f64&lt;/td&gt;&lt;td&gt;32&lt;/td&gt;&lt;td&gt;(64, near)&lt;/td&gt;&lt;td&gt;4.66e-10&lt;/td&gt;&lt;td&gt;6.75e-08&lt;/td&gt;&lt;td&gt;6.90e-3&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;f64&lt;/td&gt;&lt;td&gt;64&lt;/td&gt;&lt;td&gt;(64, near)&lt;/td&gt;&lt;td&gt;7.57e-10&lt;/td&gt;&lt;td&gt;1.08e-07&lt;/td&gt;&lt;td&gt;7.01e-3&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;f64&lt;/td&gt;&lt;td&gt;128&lt;/td&gt;&lt;td&gt;(64, near)&lt;/td&gt;&lt;td&gt;1.63e-09&lt;/td&gt;&lt;td&gt;2.16e-07&lt;/td&gt;&lt;td&gt;7.54e-3&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;f64&lt;/td&gt;&lt;td&gt;256&lt;/td&gt;&lt;td&gt;(64, near)&lt;/td&gt;&lt;td&gt;3.61e-09&lt;/td&gt;&lt;td&gt;5.40e-07&lt;/td&gt;&lt;td&gt;6.68e-3&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;f32&lt;/td&gt;&lt;td&gt;16&lt;/td&gt;&lt;td&gt;(64, near)&lt;/td&gt;&lt;td&gt;9.74e-02&lt;/td&gt;&lt;td&gt;2.72e+01&lt;/td&gt;&lt;td&gt;3.59e-3&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;f32&lt;/td&gt;&lt;td&gt;32&lt;/td&gt;&lt;td&gt;(64, near)&lt;/td&gt;&lt;td&gt;1.89e-01&lt;/td&gt;&lt;td&gt;3.62e+01&lt;/td&gt;&lt;td&gt;5.22e-3&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;f32&lt;/td&gt;&lt;td&gt;64&lt;/td&gt;&lt;td&gt;(64, near)&lt;/td&gt;&lt;td&gt;3.81e-01&lt;/td&gt;&lt;td&gt;5.80e+01&lt;/td&gt;&lt;td&gt;6.57e-3&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;f32&lt;/td&gt;&lt;td&gt;128&lt;/td&gt;&lt;td&gt;(64, near)&lt;/td&gt;&lt;td&gt;7.25e-01&lt;/td&gt;&lt;td&gt;1.16e+02&lt;/td&gt;&lt;td&gt;6.25e-3&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;f32&lt;/td&gt;&lt;td&gt;256&lt;/td&gt;&lt;td&gt;(64, near)&lt;/td&gt;&lt;td&gt;1.89e+00&lt;/td&gt;&lt;td&gt;2.90e+02&lt;/td&gt;&lt;td&gt;6.51e-3&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt; &lt;/details&gt; &lt;/figure&gt; 
&lt;p&gt;This experiment exercises the &lt;em&gt;off-diagonal&lt;/em&gt; carry specifically, and the design earns a closer look: a validation of the same shape can stream the wrong quantity, compare it against the wrong envelope, and still pass with every cell green. &lt;a href=&quot;https://thepragmaticquant.com/green-is-not-evidence/&quot;&gt;How a green experiment can be measuring nothing&lt;/a&gt; is the next article’s story.&lt;/p&gt;</content:encoded><category>floating-point</category><category>time-series</category><category>formal-methods</category><category>evals</category></item><item><title>Green is not evidence</title><link>https://thepragmaticquant.com/green-is-not-evidence/</link><guid isPermaLink="true">https://thepragmaticquant.com/green-is-not-evidence/</guid><description>An experiment can validate the wrong quantity against the wrong envelope and pass, a self-test canary can fail identically whether the gate works or not, and an audit command can print nothing and exit 0 — three gate designs that read green while checking nothing.</description><pubDate>Fri, 12 Jun 2026 00:00:00 GMT</pubDate><content:encoded>&lt;div class=&quot;tldr&quot;&gt;&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt; — Three verification gate designs can read green while verifying nothing: an empirical validation that measures the wrong quantity against the wrong envelope, a canary that returns the same exit code whether the gate is alive or dead, and a reviewer-facing audit command that produces no evidence and exits 0. Each failure mode became a mechanical rule — the table at the end carries all three.&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;An empirical validation that streams a diagonal sum-of-squares and checks it against the raw kernel’s envelope — the wrong quantity, against the wrong bound — will pass. Of course it will pass: an experiment that validates the wrong thing looks exactly like one that validates the right thing. Both produce a table of cells under a curve and a green check mark. The centred paper’s validation instead runs the genuine off-diagonal cross-covariance grid whose numbers &lt;a href=&quot;https://thepragmaticquant.com/the-kernel-nobody-analyzed/&quot;&gt;the previous article&lt;/a&gt; reports — every cell contained, against the centred envelope that actually governs it. That corrected design is the good news. This article is about the failure mode: how the wrong design passes, and two other gate designs that fail for equally hollow reasons.&lt;/p&gt;
&lt;h2 id=&quot;consistency-is-not-faithfulness&quot;&gt;Consistency is not faithfulness&lt;a class=&quot;heading-anchor&quot; href=&quot;#consistency-is-not-faithfulness&quot; aria-label=&quot;Link to this section&quot;&gt;¶&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Formal gates — proof checkers, CI assertions — check that conclusions follow from premises. None of them check that the premises are true of the deployed code. The wrong-envelope experiment above is internally consistent: the harness runs, the comparison executes, every cell lands under the curve. The flaw sits upstream of everything the gates can see — the quantity being streamed is not the quantity the deployed kernel streams, and the envelope it is compared against is not the theorem that covers it.&lt;/p&gt;
&lt;p&gt;This is the same failure class as &lt;a href=&quot;https://thepragmaticquant.com/the-kernel-nobody-analyzed/&quot;&gt;the misformalization the previous article describes&lt;/a&gt;, one layer down: there, analyzing the textbook kernel while production runs a different one; here, &lt;em&gt;validating&lt;/em&gt; a different quantity while believing you validated the real one. A claim can ship false while every formal gate is green. Consistency and faithfulness need different machinery.&lt;/p&gt;
&lt;p&gt;The uncomfortable property of this failure class is why it attracts no scrutiny. A passing test looks fine: the harness is careful, the comparison is correct given its inputs, and reviewer instinct spends attention on red cells, of which there are none. Nothing in the output reveals that the quantity being measured is the wrong one. The wrongness lives in the binding between the experiment and the thing it claims to be about — a place no amount of staring at output can reach. So the binding is what a machine must test, deliberately, in every build.&lt;/p&gt;
&lt;h2 id=&quot;strict-equality-or-nothing&quot;&gt;Strict equality or nothing&lt;a class=&quot;heading-anchor&quot; href=&quot;#strict-equality-or-nothing&quot; aria-label=&quot;Link to this section&quot;&gt;¶&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The fix was a rebuild, not a patch: a different streamed quantity, a different envelope, the whole grid rerun from scratch. The machinery that keeps it fixed: one symbolic oracle as the single source of truth for what the deployed recurrence computes, fuzzed against the actual pip-installed kernel on integer-valued inputs where floating point is exact — so the comparison is strict &lt;code&gt;==&lt;/code&gt;. Any tolerance parameter is rejected outright, because tolerance creep is the named decay path: every &lt;code&gt;atol&lt;/code&gt; starts as “just to absorb harmless noise” and ends as the hole the next wrong-quantity bug walks through.&lt;/p&gt;
&lt;div class=&quot;codeblock&quot;&gt;&lt;div class=&quot;codeblock-head&quot;&gt;&lt;span class=&quot;lang&quot;&gt;python&lt;/span&gt;&lt;button type=&quot;button&quot; class=&quot;copy-btn&quot; data-copy aria-label=&quot;Copy code&quot;&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot; aria-hidden=&quot;true&quot;&gt;&lt;rect width=&quot;14&quot; height=&quot;14&quot; x=&quot;8&quot; y=&quot;8&quot; rx=&quot;2&quot; ry=&quot;2&quot;&gt;&lt;/rect&gt;&lt;path d=&quot;M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;span class=&quot;copy-label&quot;&gt;Copy&lt;/span&gt;&lt;/button&gt;&lt;/div&gt;&lt;pre class=&quot;astro-code astro-code-themes github-light github-dark-default&quot; style=&quot;--shiki-light:#24292e;--shiki-dark:#e6edf3;--shiki-light-bg:#fff;--shiki-dark-bg:#0d1117;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;python&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;--shiki-light:#6A737D;--shiki-dark:#8B949E&quot;&gt;# the shape of the rule, not project source&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;--shiki-light:#D73A49;--shiki-dark:#FF7B72&quot;&gt;assert&lt;/span&gt;&lt;span style=&quot;--shiki-light:#24292E;--shiki-dark:#E6EDF3&quot;&gt; oracle_value &lt;/span&gt;&lt;span style=&quot;--shiki-light:#D73A49;--shiki-dark:#FF7B72&quot;&gt;==&lt;/span&gt;&lt;span style=&quot;--shiki-light:#24292E;--shiki-dark:#E6EDF3&quot;&gt; deployed_value          &lt;/span&gt;&lt;span style=&quot;--shiki-light:#6A737D;--shiki-dark:#8B949E&quot;&gt;# accepted&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;--shiki-light:#D73A49;--shiki-dark:#FF7B72&quot;&gt;assert&lt;/span&gt;&lt;span style=&quot;--shiki-light:#005CC5;--shiki-dark:#79C0FF&quot;&gt; abs&lt;/span&gt;&lt;span style=&quot;--shiki-light:#24292E;--shiki-dark:#E6EDF3&quot;&gt;(oracle_value &lt;/span&gt;&lt;span style=&quot;--shiki-light:#D73A49;--shiki-dark:#FF7B72&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;--shiki-light:#24292E;--shiki-dark:#E6EDF3&quot;&gt; deployed_value) &lt;/span&gt;&lt;span style=&quot;--shiki-light:#D73A49;--shiki-dark:#FF7B72&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;--shiki-light:#005CC5;--shiki-dark:#79C0FF&quot;&gt; 1e-9&lt;/span&gt;&lt;span style=&quot;--shiki-light:#6A737D;--shiki-dark:#8B949E&quot;&gt;   # rejected at review, always&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;And because the oracle itself is now the single point of failure, it gets the same treatment: a deliberately poisoned mutant oracle is swapped in on every run, and the harness must catch it or the build fails. The gate demonstrates it can go red in every build that goes green.&lt;/p&gt;
&lt;h2 id=&quot;the-canary-that-couldnt-sing&quot;&gt;The canary that couldn’t sing&lt;a class=&quot;heading-anchor&quot; href=&quot;#the-canary-that-couldnt-sing&quot; aria-label=&quot;Link to this section&quot;&gt;¶&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;That last rule has its own postmortem. One gate’s self-test — its canary — ran the gate against deliberately broken input and asserted a non-zero exit. The canary returned exit 1 in the healthy branch &lt;em&gt;and&lt;/em&gt; in the broken branch. A dead gate read as PASS, indistinguishable from a live one, for the entire lifetime of the canary. An adversarial review pass — run by an AI agent — is the class of check that catches it. The fix is to give every outcome a distinct signature: poison caught, poison missed, clean input passed. That fix, when applied to the first canary, immediately exposed the identical defect in the suite’s one other, older canary: two canaries, one shared blind spot.&lt;/p&gt;
&lt;figure class=&quot;full&quot; data-astro-cid-bj3fsypb&gt; &lt;div class=&quot;svgfig svgfig-diagram&quot; role=&quot;img&quot; aria-label=&quot;Truth table for a gate self-test, before and after. Before: healthy gate plus poison and broken gate plus poison both produce exit 1, so a dead gate is indistinguishable from a live one and reads as PASS. After: poison caught yields its own signature proving the gate live, poison missed fatals the build, and clean input passes normally — three distinct outcomes.&quot; data-astro-cid-bj3fsypb&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; id=&quot;fig-01-canary-truth-table&quot; width=&quot;966&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot; xmlns:xlink=&quot;http://www.w3.org/1999/xlink&quot; class=&quot;flowchart&quot; style=&quot; background-color: transparent;&quot; viewBox=&quot;0 0 966 927&quot; role=&quot;graphics-document document&quot; aria-roledescription=&quot;flowchart-v2&quot;&gt;&lt;style&gt;#fig-01-canary-truth-table [fill=&quot;#1a1d23&quot; i]{fill:var(--bg)}#fig-01-canary-truth-table [stroke=&quot;#1a1d23&quot; i]{stroke:var(--bg)}#fig-01-canary-truth-table [fill=&quot;#18181b&quot; i]{fill:var(--bg-panel)}#fig-01-canary-truth-table [stroke=&quot;#18181b&quot; i]{stroke:var(--bg-panel)}#fig-01-canary-truth-table [fill=&quot;#2c2f37&quot; i]{fill:var(--current-line)}#fig-01-canary-truth-table [stroke=&quot;#2c2f37&quot; i]{stroke:var(--current-line)}#fig-01-canary-truth-table [fill=&quot;#f4f5f7&quot; i]{fill:var(--fg)}#fig-01-canary-truth-table [stroke=&quot;#f4f5f7&quot; i]{stroke:var(--fg)}#fig-01-canary-truth-table [fill=&quot;#8a8f98&quot; i]{fill:var(--comment)}#fig-01-canary-truth-table [stroke=&quot;#8a8f98&quot; i]{stroke:var(--comment)}&lt;/style&gt;&lt;style&gt;#fig-01-canary-truth-table{font-family:var(--mono);font-size:16px;fill:var(--fg);}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#fig-01-canary-truth-table .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#fig-01-canary-truth-table .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#fig-01-canary-truth-table .error-icon{fill:var(--bg-panel);}#fig-01-canary-truth-table .error-text{fill:#e7e7e4;stroke:#e7e7e4;}#fig-01-canary-truth-table .edge-thickness-normal{stroke-width:1px;}#fig-01-canary-truth-table .edge-thickness-thick{stroke-width:3.5px;}#fig-01-canary-truth-table .edge-pattern-solid{stroke-dasharray:0;}#fig-01-canary-truth-table .edge-thickness-invisible{stroke-width:0;fill:none;}#fig-01-canary-truth-table .edge-pattern-dashed{stroke-dasharray:3;}#fig-01-canary-truth-table .edge-pattern-dotted{stroke-dasharray:2;}#fig-01-canary-truth-table .marker{fill:var(--comment);stroke:var(--comment);}#fig-01-canary-truth-table .marker.cross{stroke:var(--comment);}#fig-01-canary-truth-table svg{font-family:var(--mono);font-size:16px;}#fig-01-canary-truth-table p{margin:0;}#fig-01-canary-truth-table .label{font-family:var(--mono);color:var(--fg);}#fig-01-canary-truth-table .cluster-label text{fill:var(--fg);}#fig-01-canary-truth-table .cluster-label span{color:var(--fg);}#fig-01-canary-truth-table .cluster-label span p{background-color:transparent;}#fig-01-canary-truth-table .label text,#fig-01-canary-truth-table span{fill:var(--fg);color:var(--fg);}#fig-01-canary-truth-table .node rect,#fig-01-canary-truth-table .node circle,#fig-01-canary-truth-table .node ellipse,#fig-01-canary-truth-table .node polygon,#fig-01-canary-truth-table .node path{fill:var(--bg-panel);stroke:var(--comment);stroke-width:1px;}#fig-01-canary-truth-table .rough-node .label text,#fig-01-canary-truth-table .node .label text,#fig-01-canary-truth-table .image-shape .label,#fig-01-canary-truth-table .icon-shape .label{text-anchor:middle;}#fig-01-canary-truth-table .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#fig-01-canary-truth-table .rough-node .label,#fig-01-canary-truth-table .node .label,#fig-01-canary-truth-table .image-shape .label,#fig-01-canary-truth-table .icon-shape .label{text-align:center;}#fig-01-canary-truth-table .node.clickable{cursor:pointer;}#fig-01-canary-truth-table .root .anchor path{fill:var(--comment)!important;stroke-width:0;stroke:var(--comment);}#fig-01-canary-truth-table .arrowheadPath{fill:#e5e2dc;}#fig-01-canary-truth-table .edgePath .path{stroke:var(--comment);stroke-width:1px;}#fig-01-canary-truth-table .flowchart-link{stroke:var(--comment);fill:none;}#fig-01-canary-truth-table .edgeLabel{background-color:var(--bg);text-align:center;}#fig-01-canary-truth-table .edgeLabel p{background-color:var(--bg);}#fig-01-canary-truth-table .edgeLabel rect{opacity:0.5;background-color:var(--bg);fill:var(--bg);}#fig-01-canary-truth-table .labelBkg{background-color:rgba(26, 29, 35, 0.5);}#fig-01-canary-truth-table .cluster rect{fill:var(--bg);stroke:var(--current-line);stroke-width:1px;}#fig-01-canary-truth-table .cluster text{fill:var(--fg);}#fig-01-canary-truth-table .cluster span{color:var(--fg);}#fig-01-canary-truth-table div.mermaidTooltip{position:absolute;text-align:center;padding:2px;font-family:var(--mono);font-size:12px;background:var(--bg-panel);border:1px solid hsl(240, 0%, 20%);border-radius:2px;pointer-events:none;z-index:100;}#fig-01-canary-truth-table .flowchartTitleText{text-anchor:middle;font-size:18px;fill:var(--fg);}#fig-01-canary-truth-table rect.text{fill:none;stroke-width:0;}#fig-01-canary-truth-table .icon-shape,#fig-01-canary-truth-table .image-shape{background-color:var(--bg);text-align:center;}#fig-01-canary-truth-table .icon-shape p,#fig-01-canary-truth-table .image-shape p{background-color:var(--bg);padding:2px;}#fig-01-canary-truth-table .icon-shape .label rect,#fig-01-canary-truth-table .image-shape .label rect{opacity:0.5;background-color:var(--bg);fill:var(--bg);}#fig-01-canary-truth-table .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#fig-01-canary-truth-table .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#fig-01-canary-truth-table .node .neo-node{stroke:var(--comment);}#fig-01-canary-truth-table [data-look=&quot;neo&quot;].node rect,#fig-01-canary-truth-table [data-look=&quot;neo&quot;].cluster rect,#fig-01-canary-truth-table [data-look=&quot;neo&quot;].node polygon{stroke:url(#fig-01-canary-truth-table-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#fig-01-canary-truth-table [data-look=&quot;neo&quot;].node path{stroke:url(#fig-01-canary-truth-table-gradient);stroke-width:1px;}#fig-01-canary-truth-table [data-look=&quot;neo&quot;].node .outer-path{filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#fig-01-canary-truth-table [data-look=&quot;neo&quot;].node .neo-line path{stroke:var(--comment);filter:none;}#fig-01-canary-truth-table [data-look=&quot;neo&quot;].node circle{stroke:url(#fig-01-canary-truth-table-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#fig-01-canary-truth-table [data-look=&quot;neo&quot;].node circle .state-start{fill:#000000;}#fig-01-canary-truth-table [data-look=&quot;neo&quot;].icon-shape .icon{fill:url(#fig-01-canary-truth-table-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#fig-01-canary-truth-table [data-look=&quot;neo&quot;].icon-shape .icon-neo path{stroke:url(#fig-01-canary-truth-table-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#fig-01-canary-truth-table :root{--mermaid-font-family:&quot;trebuchet ms&quot;,verdana,arial,sans-serif;}&lt;/style&gt;&lt;g&gt;&lt;marker id=&quot;fig-01-canary-truth-table_flowchart-v2-pointEnd&quot; class=&quot;marker flowchart-v2&quot; viewBox=&quot;0 0 10 10&quot; refX=&quot;5&quot; refY=&quot;5&quot; markerUnits=&quot;userSpaceOnUse&quot; markerWidth=&quot;8&quot; markerHeight=&quot;8&quot; orient=&quot;auto&quot;&gt;&lt;path d=&quot;M 0 0 L 10 5 L 0 10 z&quot; class=&quot;arrowMarkerPath&quot; style=&quot;stroke-width: 1; stroke-dasharray: 1, 0;&quot;/&gt;&lt;/marker&gt;&lt;marker id=&quot;fig-01-canary-truth-table_flowchart-v2-pointStart&quot; class=&quot;marker flowchart-v2&quot; viewBox=&quot;0 0 10 10&quot; refX=&quot;4.5&quot; refY=&quot;5&quot; markerUnits=&quot;userSpaceOnUse&quot; markerWidth=&quot;8&quot; markerHeight=&quot;8&quot; orient=&quot;auto&quot;&gt;&lt;path d=&quot;M 0 5 L 10 10 L 10 0 z&quot; class=&quot;arrowMarkerPath&quot; style=&quot;stroke-width: 1; stroke-dasharray: 1, 0;&quot;/&gt;&lt;/marker&gt;&lt;marker id=&quot;fig-01-canary-truth-table_flowchart-v2-pointEnd-margin&quot; class=&quot;marker flowchart-v2&quot; viewBox=&quot;0 0 11.5 14&quot; refX=&quot;11.5&quot; refY=&quot;7&quot; markerUnits=&quot;userSpaceOnUse&quot; markerWidth=&quot;10.5&quot; markerHeight=&quot;14&quot; orient=&quot;auto&quot;&gt;&lt;path d=&quot;M 0 0 L 11.5 7 L 0 14 z&quot; class=&quot;arrowMarkerPath&quot; style=&quot;stroke-width: 0; stroke-dasharray: 1, 0;&quot;/&gt;&lt;/marker&gt;&lt;marker id=&quot;fig-01-canary-truth-table_flowchart-v2-pointStart-margin&quot; class=&quot;marker flowchart-v2&quot; viewBox=&quot;0 0 11.5 14&quot; refX=&quot;1&quot; refY=&quot;7&quot; markerUnits=&quot;userSpaceOnUse&quot; markerWidth=&quot;11.5&quot; markerHeight=&quot;14&quot; orient=&quot;auto&quot;&gt;&lt;polygon points=&quot;0,7 11.5,14 11.5,0&quot; class=&quot;arrowMarkerPath&quot; style=&quot;stroke-width: 0; stroke-dasharray: 1, 0;&quot;/&gt;&lt;/marker&gt;&lt;marker id=&quot;fig-01-canary-truth-table_flowchart-v2-circleEnd&quot; class=&quot;marker flowchart-v2&quot; viewBox=&quot;0 0 10 10&quot; refX=&quot;11&quot; refY=&quot;5&quot; markerUnits=&quot;userSpaceOnUse&quot; markerWidth=&quot;11&quot; markerHeight=&quot;11&quot; orient=&quot;auto&quot;&gt;&lt;circle cx=&quot;5&quot; cy=&quot;5&quot; r=&quot;5&quot; class=&quot;arrowMarkerPath&quot; style=&quot;stroke-width: 1; stroke-dasharray: 1, 0;&quot;/&gt;&lt;/marker&gt;&lt;marker id=&quot;fig-01-canary-truth-table_flowchart-v2-circleStart&quot; class=&quot;marker flowchart-v2&quot; viewBox=&quot;0 0 10 10&quot; refX=&quot;-1&quot; refY=&quot;5&quot; markerUnits=&quot;userSpaceOnUse&quot; markerWidth=&quot;11&quot; markerHeight=&quot;11&quot; orient=&quot;auto&quot;&gt;&lt;circle cx=&quot;5&quot; cy=&quot;5&quot; r=&quot;5&quot; class=&quot;arrowMarkerPath&quot; style=&quot;stroke-width: 1; stroke-dasharray: 1, 0;&quot;/&gt;&lt;/marker&gt;&lt;marker id=&quot;fig-01-canary-truth-table_flowchart-v2-circleEnd-margin&quot; class=&quot;marker flowchart-v2&quot; viewBox=&quot;0 0 10 10&quot; refY=&quot;5&quot; refX=&quot;12.25&quot; markerUnits=&quot;userSpaceOnUse&quot; markerWidth=&quot;14&quot; markerHeight=&quot;14&quot; orient=&quot;auto&quot;&gt;&lt;circle cx=&quot;5&quot; cy=&quot;5&quot; r=&quot;5&quot; class=&quot;arrowMarkerPath&quot; style=&quot;stroke-width: 0; stroke-dasharray: 1, 0;&quot;/&gt;&lt;/marker&gt;&lt;marker id=&quot;fig-01-canary-truth-table_flowchart-v2-circleStart-margin&quot; class=&quot;marker flowchart-v2&quot; viewBox=&quot;0 0 10 10&quot; refX=&quot;-2&quot; refY=&quot;5&quot; markerUnits=&quot;userSpaceOnUse&quot; markerWidth=&quot;14&quot; markerHeight=&quot;14&quot; orient=&quot;auto&quot;&gt;&lt;circle cx=&quot;5&quot; cy=&quot;5&quot; r=&quot;5&quot; class=&quot;arrowMarkerPath&quot; style=&quot;stroke-width: 0; stroke-dasharray: 1, 0;&quot;/&gt;&lt;/marker&gt;&lt;marker id=&quot;fig-01-canary-truth-table_flowchart-v2-crossEnd&quot; class=&quot;marker cross flowchart-v2&quot; viewBox=&quot;0 0 11 11&quot; refX=&quot;12&quot; refY=&quot;5.2&quot; markerUnits=&quot;userSpaceOnUse&quot; markerWidth=&quot;11&quot; markerHeight=&quot;11&quot; orient=&quot;auto&quot;&gt;&lt;path d=&quot;M 1,1 l 9,9 M 10,1 l -9,9&quot; class=&quot;arrowMarkerPath&quot; style=&quot;stroke-width: 2; stroke-dasharray: 1, 0;&quot;/&gt;&lt;/marker&gt;&lt;marker id=&quot;fig-01-canary-truth-table_flowchart-v2-crossStart&quot; class=&quot;marker cross flowchart-v2&quot; viewBox=&quot;0 0 11 11&quot; refX=&quot;-1&quot; refY=&quot;5.2&quot; markerUnits=&quot;userSpaceOnUse&quot; markerWidth=&quot;11&quot; markerHeight=&quot;11&quot; orient=&quot;auto&quot;&gt;&lt;path d=&quot;M 1,1 l 9,9 M 10,1 l -9,9&quot; class=&quot;arrowMarkerPath&quot; style=&quot;stroke-width: 2; stroke-dasharray: 1, 0;&quot;/&gt;&lt;/marker&gt;&lt;marker id=&quot;fig-01-canary-truth-table_flowchart-v2-crossEnd-margin&quot; class=&quot;marker cross flowchart-v2&quot; viewBox=&quot;0 0 15 15&quot; refX=&quot;17.7&quot; refY=&quot;7.5&quot; markerUnits=&quot;userSpaceOnUse&quot; markerWidth=&quot;12&quot; markerHeight=&quot;12&quot; orient=&quot;auto&quot;&gt;&lt;path d=&quot;M 1,1 L 14,14 M 1,14 L 14,1&quot; class=&quot;arrowMarkerPath&quot; style=&quot;stroke-width: 2.5;&quot;/&gt;&lt;/marker&gt;&lt;marker id=&quot;fig-01-canary-truth-table_flowchart-v2-crossStart-margin&quot; class=&quot;marker cross flowchart-v2&quot; viewBox=&quot;0 0 15 15&quot; refX=&quot;-3.5&quot; refY=&quot;7.5&quot; markerUnits=&quot;userSpaceOnUse&quot; markerWidth=&quot;12&quot; markerHeight=&quot;12&quot; orient=&quot;auto&quot;&gt;&lt;path d=&quot;M 1,1 L 14,14 M 1,14 L 14,1&quot; class=&quot;arrowMarkerPath&quot; style=&quot;stroke-width: 2.5; stroke-dasharray: 1, 0;&quot;/&gt;&lt;/marker&gt;&lt;g class=&quot;root&quot;&gt;&lt;g class=&quot;clusters&quot;/&gt;&lt;g class=&quot;edgePaths&quot;&gt;&lt;path d=&quot;M483,539L483,543.167C483,547.333,483,555.667,483,563.333C483,571,483,578,483,581.5L483,585&quot; id=&quot;fig-01-canary-truth-table-L_BEFORE_AFTER_0&quot; class=&quot;edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link&quot; style=&quot;;&quot; data-edge=&quot;true&quot; data-et=&quot;edge&quot; data-id=&quot;L_BEFORE_AFTER_0&quot; data-points=&quot;W3sieCI6NDgzLCJ5Ijo1Mzl9LHsieCI6NDgzLCJ5Ijo1NjR9LHsieCI6NDgzLCJ5Ijo1ODl9XQ==&quot; data-look=&quot;classic&quot; marker-end=&quot;url(#fig-01-canary-truth-table_flowchart-v2-pointEnd)&quot;/&gt;&lt;/g&gt;&lt;g class=&quot;edgeLabels&quot;&gt;&lt;g class=&quot;edgeLabel&quot;&gt;&lt;g class=&quot;label&quot; data-id=&quot;L_BEFORE_AFTER_0&quot; transform=&quot;translate(0, 0)&quot;&gt;&lt;foreignObject width=&quot;0&quot; height=&quot;0&quot;&gt;&lt;div xmlns=&quot;http://www.w3.org/1999/xhtml&quot; class=&quot;labelBkg&quot; style=&quot;display: table-cell; white-space: nowrap; line-height: 1.5;  text-align: center;&quot;&gt;&lt;span class=&quot;edgeLabel&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;/foreignObject&gt;&lt;/g&gt;&lt;/g&gt;&lt;/g&gt;&lt;g class=&quot;nodes&quot;&gt;&lt;g class=&quot;root&quot; transform=&quot;translate(0, 581)&quot;&gt;&lt;g class=&quot;clusters&quot;&gt;&lt;g class=&quot;cluster&quot; id=&quot;fig-01-canary-truth-table-AFTER&quot; data-look=&quot;classic&quot;&gt;&lt;rect style=&quot;&quot; x=&quot;8&quot; y=&quot;8&quot; width=&quot;950&quot; height=&quot;330&quot;/&gt;&lt;g class=&quot;cluster-label&quot; transform=&quot;translate(305.3984375, 8)&quot;&gt;&lt;foreignObject width=&quot;355.203125&quot; height=&quot;24&quot;&gt;&lt;div xmlns=&quot;http://www.w3.org/1999/xhtml&quot; style=&quot;display: table-cell; white-space: nowrap; line-height: 1.5;&quot;&gt;&lt;span class=&quot;nodeLabel&quot;&gt;&lt;p&gt;After: distinct signature per outcome&lt;/p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/foreignObject&gt;&lt;/g&gt;&lt;/g&gt;&lt;/g&gt;&lt;g class=&quot;edgePaths&quot;&gt;&lt;path d=&quot;M173,123.5L173,133.75C173,144,173,164.5,173,184.333C173,204.167,173,223.333,173,232.917L173,242.5&quot; id=&quot;fig-01-canary-truth-table-L_a1_ap_0&quot; class=&quot;edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link&quot; style=&quot;;&quot; data-edge=&quot;true&quot; data-et=&quot;edge&quot; data-id=&quot;L_a1_ap_0&quot; data-points=&quot;W3sieCI6MTczLCJ5IjoxMjMuNX0seyJ4IjoxNzMsInkiOjE4NX0seyJ4IjoxNzMsInkiOjI0Ni41fV0=&quot; data-look=&quot;classic&quot; marker-end=&quot;url(#fig-01-canary-truth-table_flowchart-v2-pointEnd)&quot;/&gt;&lt;path d=&quot;M483,123.5L483,133.75C483,144,483,164.5,483,184.333C483,204.167,483,223.333,483,232.917L483,242.5&quot; id=&quot;fig-01-canary-truth-table-L_a2_af_0&quot; class=&quot;edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link&quot; style=&quot;;&quot; data-edge=&quot;true&quot; data-et=&quot;edge&quot; data-id=&quot;L_a2_af_0&quot; data-points=&quot;W3sieCI6NDgzLCJ5IjoxMjMuNX0seyJ4Ijo0ODMsInkiOjE4NX0seyJ4Ijo0ODMsInkiOjI0Ni41fV0=&quot; data-look=&quot;classic&quot; marker-end=&quot;url(#fig-01-canary-truth-table_flowchart-v2-pointEnd)&quot;/&gt;&lt;path d=&quot;M793,123.5L793,133.75C793,144,793,164.5,793,184.333C793,204.167,793,223.333,793,232.917L793,242.5&quot; id=&quot;fig-01-canary-truth-table-L_a3_ac_0&quot; class=&quot;edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link&quot; style=&quot;;&quot; data-edge=&quot;true&quot; data-et=&quot;edge&quot; data-id=&quot;L_a3_ac_0&quot; data-points=&quot;W3sieCI6NzkzLCJ5IjoxMjMuNX0seyJ4Ijo3OTMsInkiOjE4NX0seyJ4Ijo3OTMsInkiOjI0Ni41fV0=&quot; data-look=&quot;classic&quot; marker-end=&quot;url(#fig-01-canary-truth-table_flowchart-v2-pointEnd)&quot;/&gt;&lt;/g&gt;&lt;g class=&quot;edgeLabels&quot;&gt;&lt;g class=&quot;edgeLabel&quot; transform=&quot;translate(173, 185)&quot;&gt;&lt;g class=&quot;label&quot; data-id=&quot;L_a1_ap_0&quot; transform=&quot;translate(-100, -24)&quot;&gt;&lt;foreignObject width=&quot;200&quot; height=&quot;48&quot;&gt;&lt;div xmlns=&quot;http://www.w3.org/1999/xhtml&quot; class=&quot;labelBkg&quot; style=&quot;display: table; white-space: break-spaces; line-height: 1.5;  text-align: center; width: 200px;&quot;&gt;&lt;span class=&quot;edgeLabel&quot;&gt;&lt;p&gt;signature: POISON CAUGHT&lt;/p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/foreignObject&gt;&lt;/g&gt;&lt;/g&gt;&lt;g class=&quot;edgeLabel&quot; transform=&quot;translate(483, 185)&quot;&gt;&lt;g class=&quot;label&quot; data-id=&quot;L_a2_af_0&quot; transform=&quot;translate(-100, -24)&quot;&gt;&lt;foreignObject width=&quot;200&quot; height=&quot;48&quot;&gt;&lt;div xmlns=&quot;http://www.w3.org/1999/xhtml&quot; class=&quot;labelBkg&quot; style=&quot;display: table; white-space: break-spaces; line-height: 1.5;  text-align: center; width: 200px;&quot;&gt;&lt;span class=&quot;edgeLabel&quot;&gt;&lt;p&gt;signature: POISON MISSED&lt;/p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/foreignObject&gt;&lt;/g&gt;&lt;/g&gt;&lt;g class=&quot;edgeLabel&quot; transform=&quot;translate(793, 185)&quot;&gt;&lt;g class=&quot;label&quot; data-id=&quot;L_a3_ac_0&quot; transform=&quot;translate(-28.8046875, -12)&quot;&gt;&lt;foreignObject width=&quot;57.609375&quot; height=&quot;24&quot;&gt;&lt;div xmlns=&quot;http://www.w3.org/1999/xhtml&quot; class=&quot;labelBkg&quot; style=&quot;display: table-cell; white-space: nowrap; line-height: 1.5;  text-align: center;&quot;&gt;&lt;span class=&quot;edgeLabel&quot;&gt;&lt;p&gt;exit 0&lt;/p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/foreignObject&gt;&lt;/g&gt;&lt;/g&gt;&lt;/g&gt;&lt;g class=&quot;nodes&quot;&gt;&lt;g class=&quot;node default&quot; id=&quot;fig-01-canary-truth-table-flowchart-a1-6&quot; data-look=&quot;classic&quot; transform=&quot;translate(173, 84.5)&quot;&gt;&lt;rect class=&quot;basic label-container&quot; style=&quot;&quot; x=&quot;-130&quot; y=&quot;-39&quot; width=&quot;260&quot; height=&quot;78&quot;/&gt;&lt;g class=&quot;label&quot; style=&quot;&quot; transform=&quot;translate(-100, -24)&quot;&gt;&lt;rect/&gt;&lt;foreignObject width=&quot;200&quot; height=&quot;48&quot;&gt;&lt;div xmlns=&quot;http://www.w3.org/1999/xhtml&quot; style=&quot;display: table; white-space: break-spaces; line-height: 1.5;  text-align: center; width: 200px;&quot;&gt;&lt;span class=&quot;nodeLabel&quot;&gt;&lt;p&gt;gate LIVE + poisoned input&lt;/p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/foreignObject&gt;&lt;/g&gt;&lt;/g&gt;&lt;g class=&quot;node default&quot; id=&quot;fig-01-canary-truth-table-flowchart-ap-7&quot; data-look=&quot;classic&quot; transform=&quot;translate(173, 273.5)&quot;&gt;&lt;rect class=&quot;basic label-container&quot; style=&quot;&quot; x=&quot;-106.8046875&quot; y=&quot;-27&quot; width=&quot;213.609375&quot; height=&quot;54&quot;/&gt;&lt;g class=&quot;label&quot; style=&quot;&quot; transform=&quot;translate(-76.8046875, -12)&quot;&gt;&lt;rect/&gt;&lt;foreignObject width=&quot;153.609375&quot; height=&quot;24&quot;&gt;&lt;div xmlns=&quot;http://www.w3.org/1999/xhtml&quot; style=&quot;display: table-cell; white-space: nowrap; line-height: 1.5;  text-align: center;&quot;&gt;&lt;span class=&quot;nodeLabel&quot;&gt;&lt;p&gt;gate proven live&lt;/p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/foreignObject&gt;&lt;/g&gt;&lt;/g&gt;&lt;g class=&quot;node default&quot; id=&quot;fig-01-canary-truth-table-flowchart-a2-8&quot; data-look=&quot;classic&quot; transform=&quot;translate(483, 84.5)&quot;&gt;&lt;rect class=&quot;basic label-container&quot; style=&quot;&quot; x=&quot;-130&quot; y=&quot;-39&quot; width=&quot;260&quot; height=&quot;78&quot;/&gt;&lt;g class=&quot;label&quot; style=&quot;&quot; transform=&quot;translate(-100, -24)&quot;&gt;&lt;rect/&gt;&lt;foreignObject width=&quot;200&quot; height=&quot;48&quot;&gt;&lt;div xmlns=&quot;http://www.w3.org/1999/xhtml&quot; style=&quot;display: table; white-space: break-spaces; line-height: 1.5;  text-align: center; width: 200px;&quot;&gt;&lt;span class=&quot;nodeLabel&quot;&gt;&lt;p&gt;gate DEAD + poisoned input&lt;/p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/foreignObject&gt;&lt;/g&gt;&lt;/g&gt;&lt;g class=&quot;node default&quot; id=&quot;fig-01-canary-truth-table-flowchart-af-9&quot; data-look=&quot;classic&quot; transform=&quot;translate(483, 273.5)&quot;&gt;&lt;rect class=&quot;basic label-container&quot; style=&quot;&quot; x=&quot;-87.6015625&quot; y=&quot;-27&quot; width=&quot;175.203125&quot; height=&quot;54&quot;/&gt;&lt;g class=&quot;label&quot; style=&quot;&quot; transform=&quot;translate(-57.6015625, -12)&quot;&gt;&lt;rect/&gt;&lt;foreignObject width=&quot;115.203125&quot; height=&quot;24&quot;&gt;&lt;div xmlns=&quot;http://www.w3.org/1999/xhtml&quot; style=&quot;display: table-cell; white-space: nowrap; line-height: 1.5;  text-align: center;&quot;&gt;&lt;span class=&quot;nodeLabel&quot;&gt;&lt;p&gt;build fatals&lt;/p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/foreignObject&gt;&lt;/g&gt;&lt;/g&gt;&lt;g class=&quot;node default&quot; id=&quot;fig-01-canary-truth-table-flowchart-a3-10&quot; data-look=&quot;classic&quot; transform=&quot;translate(793, 84.5)&quot;&gt;&lt;rect class=&quot;basic label-container&quot; style=&quot;&quot; x=&quot;-130&quot; y=&quot;-39&quot; width=&quot;260&quot; height=&quot;78&quot;/&gt;&lt;g class=&quot;label&quot; style=&quot;&quot; transform=&quot;translate(-100, -24)&quot;&gt;&lt;rect/&gt;&lt;foreignObject width=&quot;200&quot; height=&quot;48&quot;&gt;&lt;div xmlns=&quot;http://www.w3.org/1999/xhtml&quot; style=&quot;display: table; white-space: break-spaces; line-height: 1.5;  text-align: center; width: 200px;&quot;&gt;&lt;span class=&quot;nodeLabel&quot;&gt;&lt;p&gt;gate LIVE + clean input&lt;/p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/foreignObject&gt;&lt;/g&gt;&lt;/g&gt;&lt;g class=&quot;node default&quot; id=&quot;fig-01-canary-truth-table-flowchart-ac-11&quot; data-look=&quot;classic&quot; transform=&quot;translate(793, 273.5)&quot;&gt;&lt;rect class=&quot;basic label-container&quot; style=&quot;&quot; x=&quot;-82.8046875&quot; y=&quot;-27&quot; width=&quot;165.609375&quot; height=&quot;54&quot;/&gt;&lt;g class=&quot;label&quot; style=&quot;&quot; transform=&quot;translate(-52.8046875, -12)&quot;&gt;&lt;rect/&gt;&lt;foreignObject width=&quot;105.609375&quot; height=&quot;24&quot;&gt;&lt;div xmlns=&quot;http://www.w3.org/1999/xhtml&quot; style=&quot;display: table-cell; white-space: nowrap; line-height: 1.5;  text-align: center;&quot;&gt;&lt;span class=&quot;nodeLabel&quot;&gt;&lt;p&gt;normal pass&lt;/p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/foreignObject&gt;&lt;/g&gt;&lt;/g&gt;&lt;/g&gt;&lt;/g&gt;&lt;g class=&quot;root&quot; transform=&quot;translate(155, 0)&quot;&gt;&lt;g class=&quot;clusters&quot;&gt;&lt;g class=&quot;cluster&quot; id=&quot;fig-01-canary-truth-table-BEFORE&quot; data-look=&quot;classic&quot;&gt;&lt;rect style=&quot;&quot; x=&quot;8&quot; y=&quot;8&quot; width=&quot;640&quot; height=&quot;531&quot;/&gt;&lt;g class=&quot;cluster-label&quot; transform=&quot;translate(155.1953125, 8)&quot;&gt;&lt;foreignObject width=&quot;345.609375&quot; height=&quot;24&quot;&gt;&lt;div xmlns=&quot;http://www.w3.org/1999/xhtml&quot; style=&quot;display: table-cell; white-space: nowrap; line-height: 1.5;&quot;&gt;&lt;span class=&quot;nodeLabel&quot;&gt;&lt;p&gt;Before: one exit code for everything&lt;/p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/foreignObject&gt;&lt;/g&gt;&lt;/g&gt;&lt;/g&gt;&lt;g class=&quot;edgePaths&quot;&gt;&lt;path d=&quot;M173,123.5L173,131.75C173,140,173,156.5,185.165,172.637C197.329,188.775,221.658,204.549,233.823,212.437L245.987,220.324&quot; id=&quot;fig-01-canary-truth-table-L_b1_bp_0&quot; class=&quot;edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link&quot; style=&quot;;&quot; data-edge=&quot;true&quot; data-et=&quot;edge&quot; data-id=&quot;L_b1_bp_0&quot; data-points=&quot;W3sieCI6MTczLCJ5IjoxMjMuNX0seyJ4IjoxNzMsInkiOjE3M30seyJ4IjoyNDkuMzQzMjgzNTgyMDg5NTUsInkiOjIyMi41fV0=&quot; data-look=&quot;classic&quot; marker-end=&quot;url(#fig-01-canary-truth-table_flowchart-v2-pointEnd)&quot;/&gt;&lt;path d=&quot;M483,123.5L483,131.75C483,140,483,156.5,470.835,172.637C458.671,188.775,434.342,204.549,422.177,212.437L410.013,220.324&quot; id=&quot;fig-01-canary-truth-table-L_b2_bp_0&quot; class=&quot;edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link&quot; style=&quot;;&quot; data-edge=&quot;true&quot; data-et=&quot;edge&quot; data-id=&quot;L_b2_bp_0&quot; data-points=&quot;W3sieCI6NDgzLCJ5IjoxMjMuNX0seyJ4Ijo0ODMsInkiOjE3M30seyJ4Ijo0MDYuNjU2NzE2NDE3OTEwNDUsInkiOjIyMi41fV0=&quot; data-look=&quot;classic&quot; marker-end=&quot;url(#fig-01-canary-truth-table_flowchart-v2-pointEnd)&quot;/&gt;&lt;path d=&quot;M328,324.5L328,330.75C328,337,328,349.5,328,361.333C328,373.167,328,384.333,328,389.917L328,395.5&quot; id=&quot;fig-01-canary-truth-table-L_bp_bx_0&quot; class=&quot;edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link&quot; style=&quot;;&quot; data-edge=&quot;true&quot; data-et=&quot;edge&quot; data-id=&quot;L_bp_bx_0&quot; data-points=&quot;W3sieCI6MzI4LCJ5IjozMjQuNX0seyJ4IjozMjgsInkiOjM2Mn0seyJ4IjozMjgsInkiOjM5OS41fV0=&quot; data-look=&quot;classic&quot; marker-end=&quot;url(#fig-01-canary-truth-table_flowchart-v2-pointEnd)&quot;/&gt;&lt;/g&gt;&lt;g class=&quot;edgeLabels&quot;&gt;&lt;g class=&quot;edgeLabel&quot; transform=&quot;translate(173, 173)&quot;&gt;&lt;g class=&quot;label&quot; data-id=&quot;L_b1_bp_0&quot; transform=&quot;translate(-28.8046875, -12)&quot;&gt;&lt;foreignObject width=&quot;57.609375&quot; height=&quot;24&quot;&gt;&lt;div xmlns=&quot;http://www.w3.org/1999/xhtml&quot; class=&quot;labelBkg&quot; style=&quot;display: table-cell; white-space: nowrap; line-height: 1.5;  text-align: center;&quot;&gt;&lt;span class=&quot;edgeLabel&quot;&gt;&lt;p&gt;exit 1&lt;/p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/foreignObject&gt;&lt;/g&gt;&lt;/g&gt;&lt;g class=&quot;edgeLabel&quot; transform=&quot;translate(483, 173)&quot;&gt;&lt;g class=&quot;label&quot; data-id=&quot;L_b2_bp_0&quot; transform=&quot;translate(-28.8046875, -12)&quot;&gt;&lt;foreignObject width=&quot;57.609375&quot; height=&quot;24&quot;&gt;&lt;div xmlns=&quot;http://www.w3.org/1999/xhtml&quot; class=&quot;labelBkg&quot; style=&quot;display: table-cell; white-space: nowrap; line-height: 1.5;  text-align: center;&quot;&gt;&lt;span class=&quot;edgeLabel&quot;&gt;&lt;p&gt;exit 1&lt;/p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/foreignObject&gt;&lt;/g&gt;&lt;/g&gt;&lt;g class=&quot;edgeLabel&quot;&gt;&lt;g class=&quot;label&quot; data-id=&quot;L_bp_bx_0&quot; transform=&quot;translate(0, 0)&quot;&gt;&lt;foreignObject width=&quot;0&quot; height=&quot;0&quot;&gt;&lt;div xmlns=&quot;http://www.w3.org/1999/xhtml&quot; class=&quot;labelBkg&quot; style=&quot;display: table-cell; white-space: nowrap; line-height: 1.5;  text-align: center;&quot;&gt;&lt;span class=&quot;edgeLabel&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;/foreignObject&gt;&lt;/g&gt;&lt;/g&gt;&lt;/g&gt;&lt;g class=&quot;nodes&quot;&gt;&lt;g class=&quot;node default&quot; id=&quot;fig-01-canary-truth-table-flowchart-b1-0&quot; data-look=&quot;classic&quot; transform=&quot;translate(173, 84.5)&quot;&gt;&lt;rect class=&quot;basic label-container&quot; style=&quot;&quot; x=&quot;-130&quot; y=&quot;-39&quot; width=&quot;260&quot; height=&quot;78&quot;/&gt;&lt;g class=&quot;label&quot; style=&quot;&quot; transform=&quot;translate(-100, -24)&quot;&gt;&lt;rect/&gt;&lt;foreignObject width=&quot;200&quot; height=&quot;48&quot;&gt;&lt;div xmlns=&quot;http://www.w3.org/1999/xhtml&quot; style=&quot;display: table; white-space: break-spaces; line-height: 1.5;  text-align: center; width: 200px;&quot;&gt;&lt;span class=&quot;nodeLabel&quot;&gt;&lt;p&gt;gate LIVE + poisoned input&lt;/p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/foreignObject&gt;&lt;/g&gt;&lt;/g&gt;&lt;g class=&quot;node default&quot; id=&quot;fig-01-canary-truth-table-flowchart-bp-1&quot; data-look=&quot;classic&quot; transform=&quot;translate(328, 273.5)&quot;&gt;&lt;rect class=&quot;basic label-container&quot; style=&quot;&quot; x=&quot;-130&quot; y=&quot;-51&quot; width=&quot;260&quot; height=&quot;102&quot;/&gt;&lt;g class=&quot;label&quot; style=&quot;&quot; transform=&quot;translate(-100, -36)&quot;&gt;&lt;rect/&gt;&lt;foreignObject width=&quot;200&quot; height=&quot;72&quot;&gt;&lt;div xmlns=&quot;http://www.w3.org/1999/xhtml&quot; style=&quot;display: table; white-space: break-spaces; line-height: 1.5;  text-align: center; width: 200px;&quot;&gt;&lt;span class=&quot;nodeLabel&quot;&gt;&lt;p&gt;self-test sees non-zero&lt;br /&gt;reads as PASS&lt;/p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/foreignObject&gt;&lt;/g&gt;&lt;/g&gt;&lt;g class=&quot;node default&quot; id=&quot;fig-01-canary-truth-table-flowchart-b2-2&quot; data-look=&quot;classic&quot; transform=&quot;translate(483, 84.5)&quot;&gt;&lt;rect class=&quot;basic label-container&quot; style=&quot;&quot; x=&quot;-130&quot; y=&quot;-39&quot; width=&quot;260&quot; height=&quot;78&quot;/&gt;&lt;g class=&quot;label&quot; style=&quot;&quot; transform=&quot;translate(-100, -24)&quot;&gt;&lt;rect/&gt;&lt;foreignObject width=&quot;200&quot; height=&quot;48&quot;&gt;&lt;div xmlns=&quot;http://www.w3.org/1999/xhtml&quot; style=&quot;display: table; white-space: break-spaces; line-height: 1.5;  text-align: center; width: 200px;&quot;&gt;&lt;span class=&quot;nodeLabel&quot;&gt;&lt;p&gt;gate DEAD (no-op) + poisoned input&lt;/p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/foreignObject&gt;&lt;/g&gt;&lt;/g&gt;&lt;g class=&quot;node default&quot; id=&quot;fig-01-canary-truth-table-flowchart-bx-5&quot; data-look=&quot;classic&quot; transform=&quot;translate(328, 450.5)&quot;&gt;&lt;rect class=&quot;basic label-container&quot; style=&quot;&quot; x=&quot;-130&quot; y=&quot;-51&quot; width=&quot;260&quot; height=&quot;102&quot;/&gt;&lt;g class=&quot;label&quot; style=&quot;&quot; transform=&quot;translate(-100, -36)&quot;&gt;&lt;rect/&gt;&lt;foreignObject width=&quot;200&quot; height=&quot;72&quot;&gt;&lt;div xmlns=&quot;http://www.w3.org/1999/xhtml&quot; style=&quot;display: table; white-space: break-spaces; line-height: 1.5;  text-align: center; width: 200px;&quot;&gt;&lt;span class=&quot;nodeLabel&quot;&gt;&lt;p&gt;a dead gate is indistinguishable&lt;br /&gt;from a live one&lt;/p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/foreignObject&gt;&lt;/g&gt;&lt;/g&gt;&lt;/g&gt;&lt;/g&gt;&lt;/g&gt;&lt;/g&gt;&lt;/g&gt;&lt;defs&gt;&lt;filter id=&quot;fig-01-canary-truth-table-drop-shadow&quot; height=&quot;130%&quot; width=&quot;130%&quot;&gt;&lt;feDropShadow dx=&quot;4&quot; dy=&quot;4&quot; stdDeviation=&quot;0&quot; flood-opacity=&quot;0.06&quot; flood-color=&quot;#000000&quot;/&gt;&lt;/filter&gt;&lt;/defs&gt;&lt;defs&gt;&lt;filter id=&quot;fig-01-canary-truth-table-drop-shadow-small&quot; height=&quot;150%&quot; width=&quot;150%&quot;&gt;&lt;feDropShadow dx=&quot;2&quot; dy=&quot;2&quot; stdDeviation=&quot;0&quot; flood-opacity=&quot;0.06&quot; flood-color=&quot;#000000&quot;/&gt;&lt;/filter&gt;&lt;/defs&gt;&lt;linearGradient id=&quot;fig-01-canary-truth-table-gradient&quot; gradientUnits=&quot;objectBoundingBox&quot; x1=&quot;0%&quot; y1=&quot;0%&quot; x2=&quot;100%&quot; y2=&quot;0%&quot;&gt;&lt;stop offset=&quot;0%&quot; stop-color=&quot;#8A8F98&quot; stop-opacity=&quot;1&quot;/&gt;&lt;stop offset=&quot;100%&quot; stop-color=&quot;hsl(223.6363636364, 0%, 29.4117647059%)&quot; stop-opacity=&quot;1&quot;/&gt;&lt;/linearGradient&gt;&lt;/svg&gt;&lt;/div&gt; &lt;figcaption data-astro-cid-bj3fsypb&gt;The canary truth table, before and after. Before the fix, both the healthy and the broken gate produced the same exit code on poisoned input. A sketch of the documented bug mechanism, not project source.&lt;/figcaption&gt;  &lt;/figure&gt; &lt;script type=&quot;module&quot; src=&quot;https://thepragmaticquant.com/vercel/path0/src/components/Figure.astro?astro&amp;type=script&amp;index=0&amp;lang.ts&quot;&gt;&lt;/script&gt;
&lt;p&gt;Days later, an audit found that the planted poisons themselves proved less than they appeared to. Both canaries’ poisons were &lt;em&gt;true&lt;/em&gt; statements whose only falsehood was a placeholder proof. They fired — but one well-meaning edit completing the placeholder would have disarmed them silently, leaving a canary that reports healthy and tests nothing. Every poison now states a proposition that is actually false.&lt;/p&gt;
&lt;span class=&quot;marginnote&quot; role=&quot;note&quot;&gt;Two rules came out of this — every planted poison states something actually false, and every poison gets fired once in CI to prove the gate can fail.&lt;/span&gt;
&lt;h2 id=&quot;exit-0-theater&quot;&gt;Exit-0 theater&lt;a class=&quot;heading-anchor&quot; href=&quot;#exit-0-theater&quot; aria-label=&quot;Link to this section&quot;&gt;¶&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The third postmortem is the simplest. A reviewer-facing audit command is supposed to print, for each theorem in the certificate, its full assumption set — the artifact a referee checks. In this failure class it prints section headers and no evidence, for dozens of theorems, and exits 0. The cause: the prover’s batch mode silently ignores input on stdin and reports success having checked nothing. The verification command verifies nothing, cleanly, every time — and no measurement can catch it without an independent content assertion.&lt;/p&gt;
&lt;div class=&quot;codeblock&quot;&gt;&lt;div class=&quot;codeblock-head&quot;&gt;&lt;span class=&quot;lang&quot;&gt;sh&lt;/span&gt;&lt;button type=&quot;button&quot; class=&quot;copy-btn&quot; data-copy aria-label=&quot;Copy code&quot;&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot; aria-hidden=&quot;true&quot;&gt;&lt;rect width=&quot;14&quot; height=&quot;14&quot; x=&quot;8&quot; y=&quot;8&quot; rx=&quot;2&quot; ry=&quot;2&quot;&gt;&lt;/rect&gt;&lt;path d=&quot;M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;span class=&quot;copy-label&quot;&gt;Copy&lt;/span&gt;&lt;/button&gt;&lt;/div&gt;&lt;pre class=&quot;astro-code astro-code-themes github-light github-dark-default&quot; style=&quot;--shiki-light:#24292e;--shiki-dark:#e6edf3;--shiki-light-bg:#fff;--shiki-dark-bg:#0d1117;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;sh&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;--shiki-light:#6A737D;--shiki-dark:#8B949E&quot;&gt;# the trap: success is inferred from the absence of error&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;--shiki-light:#6F42C1;--shiki-dark:#FFA657&quot;&gt;check_all&lt;/span&gt;&lt;span style=&quot;--shiki-light:#D73A49;--shiki-dark:#FF7B72&quot;&gt; |&lt;/span&gt;&lt;span style=&quot;--shiki-light:#6F42C1;--shiki-dark:#FFA657&quot;&gt; tee&lt;/span&gt;&lt;span style=&quot;--shiki-light:#032F62;--shiki-dark:#A5D6FF&quot;&gt; audit.txt&lt;/span&gt;&lt;span style=&quot;--shiki-light:#24292E;--shiki-dark:#E6EDF3&quot;&gt; ; &lt;/span&gt;&lt;span style=&quot;--shiki-light:#005CC5;--shiki-dark:#79C0FF&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;--shiki-light:#032F62;--shiki-dark:#A5D6FF&quot;&gt; &amp;quot;exit=&lt;/span&gt;&lt;span style=&quot;--shiki-light:#005CC5;--shiki-dark:#79C0FF&quot;&gt;$?&lt;/span&gt;&lt;span style=&quot;--shiki-light:#032F62;--shiki-dark:#A5D6FF&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;--shiki-light:#6A737D;--shiki-dark:#8B949E&quot;&gt;   # exit=0, audit.txt: headers only, zero axiom sets&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;--shiki-light:#6A737D;--shiki-dark:#8B949E&quot;&gt;# the fix: assert on content, not on exit code&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;--shiki-light:#D73A49;--shiki-dark:#FF7B72&quot;&gt;for&lt;/span&gt;&lt;span style=&quot;--shiki-light:#24292E;--shiki-dark:#E6EDF3&quot;&gt; thm &lt;/span&gt;&lt;span style=&quot;--shiki-light:#D73A49;--shiki-dark:#FF7B72&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;--shiki-light:#24292E;--shiki-dark:#E6EDF3&quot;&gt; $THEOREMS; &lt;/span&gt;&lt;span style=&quot;--shiki-light:#D73A49;--shiki-dark:#FF7B72&quot;&gt;do&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;--shiki-light:#24292E;--shiki-dark:#E6EDF3&quot;&gt;  out&lt;/span&gt;&lt;span style=&quot;--shiki-light:#D73A49;--shiki-dark:#FF7B72&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--shiki-light:#24292E;--shiki-dark:#E6EDF3&quot;&gt;$(&lt;/span&gt;&lt;span style=&quot;--shiki-light:#6F42C1;--shiki-dark:#FFA657&quot;&gt;probe&lt;/span&gt;&lt;span style=&quot;--shiki-light:#032F62;--shiki-dark:#A5D6FF&quot;&gt; &amp;quot;&lt;/span&gt;&lt;span style=&quot;--shiki-light:#24292E;--shiki-dark:#E6EDF3&quot;&gt;$thm&lt;/span&gt;&lt;span style=&quot;--shiki-light:#032F62;--shiki-dark:#A5D6FF&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;--shiki-light:#24292E;--shiki-dark:#E6EDF3&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;--shiki-light:#24292E;--shiki-dark:#E6EDF3&quot;&gt;  [ &lt;/span&gt;&lt;span style=&quot;--shiki-light:#D73A49;--shiki-dark:#FF7B72&quot;&gt;-n&lt;/span&gt;&lt;span style=&quot;--shiki-light:#032F62;--shiki-dark:#A5D6FF&quot;&gt; &amp;quot;&lt;/span&gt;&lt;span style=&quot;--shiki-light:#24292E;--shiki-dark:#E6EDF3&quot;&gt;$out&lt;/span&gt;&lt;span style=&quot;--shiki-light:#032F62;--shiki-dark:#A5D6FF&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;--shiki-light:#24292E;--shiki-dark:#E6EDF3&quot;&gt; ] &lt;/span&gt;&lt;span style=&quot;--shiki-light:#D73A49;--shiki-dark:#FF7B72&quot;&gt;||&lt;/span&gt;&lt;span style=&quot;--shiki-light:#24292E;--shiki-dark:#E6EDF3&quot;&gt; { &lt;/span&gt;&lt;span style=&quot;--shiki-light:#005CC5;--shiki-dark:#79C0FF&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;--shiki-light:#032F62;--shiki-dark:#A5D6FF&quot;&gt; &amp;quot;FATAL: &lt;/span&gt;&lt;span style=&quot;--shiki-light:#24292E;--shiki-dark:#E6EDF3&quot;&gt;$thm&lt;/span&gt;&lt;span style=&quot;--shiki-light:#032F62;--shiki-dark:#A5D6FF&quot;&gt; produced no evidence&amp;quot;&lt;/span&gt;&lt;span style=&quot;--shiki-light:#24292E;--shiki-dark:#E6EDF3&quot;&gt;; &lt;/span&gt;&lt;span style=&quot;--shiki-light:#005CC5;--shiki-dark:#79C0FF&quot;&gt;exit&lt;/span&gt;&lt;span style=&quot;--shiki-light:#005CC5;--shiki-dark:#79C0FF&quot;&gt; 1&lt;/span&gt;&lt;span style=&quot;--shiki-light:#24292E;--shiki-dark:#E6EDF3&quot;&gt;; }&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;--shiki-light:#D73A49;--shiki-dark:#FF7B72&quot;&gt;done&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;The rebuilt command runs one compile probe per theorem and fails loudly if any probe does not produce its evidence. Exit 0 is a claim about plumbing — the process ran and nothing crashed. It is not a claim about the world.&lt;/p&gt;
&lt;h2 id=&quot;the-rules&quot;&gt;The rules&lt;a class=&quot;heading-anchor&quot; href=&quot;#the-rules&quot; aria-label=&quot;Link to this section&quot;&gt;¶&lt;/a&gt;&lt;/h2&gt;






























&lt;div class=&quot;table-scroll&quot;&gt;&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;what read green&lt;/th&gt;&lt;th&gt;what was actually true&lt;/th&gt;&lt;th&gt;the rule it became&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Validation passed, all cells under the envelope&lt;/td&gt;&lt;td&gt;Wrong quantity, wrong envelope — the real kernel was never measured&lt;/td&gt;&lt;td&gt;One oracle as source of truth; strict equality at trust boundaries; no tolerance parameters, ever&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Canary asserted non-zero exit, got it&lt;/td&gt;&lt;td&gt;Same exit code from a live gate and a dead one&lt;/td&gt;&lt;td&gt;Distinct failure signatures per outcome; mutation-test the test&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Planted poisons fired and the canaries reported healthy&lt;/td&gt;&lt;td&gt;The poisons were true statements with placeholder proofs — one edit would have disarmed them silently&lt;/td&gt;&lt;td&gt;Every poison states an actually false proposition, and demonstrably fires&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Audit command exited 0&lt;/td&gt;&lt;td&gt;Headers and no evidence — the prover’s batch mode checked nothing&lt;/td&gt;&lt;td&gt;Assert on evidence produced, never on absence of error&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;The generalization is one the AI crowd already lives with: these are evals. A benchmark harness that passes while measuring the wrong thing is indistinguishable from one that works — until you plant a failure that &lt;em&gt;must&lt;/em&gt; fail and watch whether it does. If a planted failure doesn’t fail CI, your gate is decoration, and green is a color, not evidence. The gates that survived are the ones where judgment lives in an artifact a small kernel re-checks rather than in an exit code — &lt;a href=&quot;https://thepragmaticquant.com/three-axioms-and-one-disclosed-seam/&quot;&gt;the next article is about those&lt;/a&gt;.&lt;/p&gt;</content:encoded><category>formal-methods</category><category>evals</category></item><item><title>Three axioms and one disclosed seam</title><link>https://thepragmaticquant.com/three-axioms-and-one-disclosed-seam/</link><guid isPermaLink="true">https://thepragmaticquant.com/three-axioms-and-one-disclosed-seam/</guid><description>Four verification tools, one certificate: every machine-checked theorem mechanically reduced to three classical axioms with zero unfinished proofs — and the one place two provers cannot talk to each other, named right in the theorem statements.</description><pubDate>Fri, 12 Jun 2026 00:00:00 GMT</pubDate><content:encoded>&lt;div class=&quot;tldr&quot;&gt;&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt; — The headline error bounds in this series carry machine-checked proof obligations across four independent tools — five of the six results; the sixth is an open conjecture — and the entire Lean development reduces, mechanically, to three classical axioms — &lt;code&gt;propext&lt;/code&gt;, &lt;code&gt;Classical.choice&lt;/code&gt;, &lt;code&gt;Quot.sound&lt;/code&gt; — with zero unfinished proofs. This article is the from-zero tour of what that certificate means and of the one cross-prover seam no tool can compile away.&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;AlphaProof — the trained reinforcement-learning prover — ran standalone at roughly 64 TPU-hours per problem and solved none of the nine. A basic agent that just alternated LLM generation with Lean verification replicated all nine, costing more only on the hardest. That is the ablation buried in DeepMind’s formal-proof-search paper this spring (arXiv:2605.22763), and it is the part I keep quoting; the headline that got the press is the paper’s most capable agent autonomously resolving 9 of 353 open Erdős problems, at a few hundred dollars each. The documented failure mode is the other part worth quoting: proof sketches leaning on lemmas the model claimed were “established results in the mathematical literature.” On inspection, hallucinations. Prompting against the behavior failed. The sorry-free requirement — end-to-end formal verification — is what exposed them. The kernel is the whole game. Here is what the one behind my two papers buys.&lt;/p&gt;
&lt;figure class=&quot;full&quot; data-astro-cid-bj3fsypb&gt; &lt;div class=&quot;svgfig svgfig-chart&quot; role=&quot;img&quot; aria-label=&quot;Dot chart of the published ablation on the 9 resolved Erdős problems: a basic LLM-plus-Lean-verifier loop replicated 9 of 9, while AlphaProof standalone in tree-search mode, at roughly 64 TPU-hours per problem, solved 0 of 9.&quot; data-astro-cid-bj3fsypb&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; id=&quot;fig-02-alphaproof-ablation&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot; xmlns:xlink=&quot;http://www.w3.org/1999/xlink&quot; version=&quot;1.1&quot; class=&quot;marks&quot; width=&quot;878&quot; height=&quot;172&quot; viewBox=&quot;0 0 878 172&quot;&gt;&lt;style&gt;#fig-02-alphaproof-ablation [fill=&quot;#1a1d23&quot; i]{fill:var(--bg)}#fig-02-alphaproof-ablation [stroke=&quot;#1a1d23&quot; i]{stroke:var(--bg)}#fig-02-alphaproof-ablation [fill=&quot;#18181b&quot; i]{fill:var(--bg-panel)}#fig-02-alphaproof-ablation [stroke=&quot;#18181b&quot; i]{stroke:var(--bg-panel)}#fig-02-alphaproof-ablation [fill=&quot;#2c2f37&quot; i]{fill:var(--current-line)}#fig-02-alphaproof-ablation [stroke=&quot;#2c2f37&quot; i]{stroke:var(--current-line)}#fig-02-alphaproof-ablation [fill=&quot;#f4f5f7&quot; i]{fill:var(--fg)}#fig-02-alphaproof-ablation [stroke=&quot;#f4f5f7&quot; i]{stroke:var(--fg)}#fig-02-alphaproof-ablation [fill=&quot;#8a8f98&quot; i]{fill:var(--comment)}#fig-02-alphaproof-ablation [stroke=&quot;#8a8f98&quot; i]{stroke:var(--comment)}&lt;/style&gt;&lt;rect width=&quot;878&quot; height=&quot;172&quot; fill=&quot;#1a1d23&quot;/&gt;&lt;g fill=&quot;none&quot; stroke-miterlimit=&quot;10&quot; transform=&quot;translate(332,5)&quot;&gt;&lt;g class=&quot;mark-group role-frame root&quot; role=&quot;graphics-object&quot; aria-roledescription=&quot;group mark container&quot;&gt;&lt;g transform=&quot;translate(0,0)&quot;&gt;&lt;path class=&quot;background&quot; aria-hidden=&quot;true&quot; d=&quot;M0.5,0.5h420v120h-420Z&quot;/&gt;&lt;g&gt;&lt;g class=&quot;mark-group role-axis&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;axis&quot; aria-label=&quot;X-axis titled &apos;Erdos problems resolved (of the 9)&apos; for a linear scale with values from 0 to 9&quot;&gt;&lt;g transform=&quot;translate(0.5,120.5)&quot;&gt;&lt;path class=&quot;background&quot; aria-hidden=&quot;true&quot; d=&quot;M0,0h0v0h0Z&quot; pointer-events=&quot;none&quot;/&gt;&lt;g&gt;&lt;g class=&quot;mark-rule role-axis-tick&quot; pointer-events=&quot;none&quot;&gt;&lt;line transform=&quot;translate(0,0)&quot; x2=&quot;0&quot; y2=&quot;5&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(47,0)&quot; x2=&quot;0&quot; y2=&quot;5&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(93,0)&quot; x2=&quot;0&quot; y2=&quot;5&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(140,0)&quot; x2=&quot;0&quot; y2=&quot;5&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(187,0)&quot; x2=&quot;0&quot; y2=&quot;5&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(233,0)&quot; x2=&quot;0&quot; y2=&quot;5&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(280,0)&quot; x2=&quot;0&quot; y2=&quot;5&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(327,0)&quot; x2=&quot;0&quot; y2=&quot;5&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(373,0)&quot; x2=&quot;0&quot; y2=&quot;5&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(420,0)&quot; x2=&quot;0&quot; y2=&quot;5&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;/g&gt;&lt;g class=&quot;mark-text role-axis-label&quot; pointer-events=&quot;none&quot;&gt;&lt;text text-anchor=&quot;start&quot; transform=&quot;translate(0,19)&quot; font-family=&quot;sans-serif&quot; font-size=&quot;15px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;0&lt;/text&gt;&lt;text text-anchor=&quot;middle&quot; transform=&quot;translate(46.666666666666664,19)&quot; font-family=&quot;sans-serif&quot; font-size=&quot;15px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;1&lt;/text&gt;&lt;text text-anchor=&quot;middle&quot; transform=&quot;translate(93.33333333333333,19)&quot; font-family=&quot;sans-serif&quot; font-size=&quot;15px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;2&lt;/text&gt;&lt;text text-anchor=&quot;middle&quot; transform=&quot;translate(140,19)&quot; font-family=&quot;sans-serif&quot; font-size=&quot;15px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;3&lt;/text&gt;&lt;text text-anchor=&quot;middle&quot; transform=&quot;translate(186.66666666666666,19)&quot; font-family=&quot;sans-serif&quot; font-size=&quot;15px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;4&lt;/text&gt;&lt;text text-anchor=&quot;middle&quot; transform=&quot;translate(233.33333333333334,19)&quot; font-family=&quot;sans-serif&quot; font-size=&quot;15px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;5&lt;/text&gt;&lt;text text-anchor=&quot;middle&quot; transform=&quot;translate(280,19)&quot; font-family=&quot;sans-serif&quot; font-size=&quot;15px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;6&lt;/text&gt;&lt;text text-anchor=&quot;middle&quot; transform=&quot;translate(326.6666666666667,19)&quot; font-family=&quot;sans-serif&quot; font-size=&quot;15px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;7&lt;/text&gt;&lt;text text-anchor=&quot;middle&quot; transform=&quot;translate(373.3333333333333,19)&quot; font-family=&quot;sans-serif&quot; font-size=&quot;15px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;8&lt;/text&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(420,19)&quot; font-family=&quot;sans-serif&quot; font-size=&quot;15px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;9&lt;/text&gt;&lt;/g&gt;&lt;g class=&quot;mark-rule role-axis-domain&quot; pointer-events=&quot;none&quot;&gt;&lt;line transform=&quot;translate(0,0)&quot; x2=&quot;420&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;/g&gt;&lt;g class=&quot;mark-text role-axis-title&quot; pointer-events=&quot;none&quot;&gt;&lt;text text-anchor=&quot;middle&quot; transform=&quot;translate(210,39)&quot; font-family=&quot;sans-serif&quot; font-size=&quot;16px&quot; font-weight=&quot;bold&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;Erdos problems resolved (of the 9)&lt;/text&gt;&lt;/g&gt;&lt;/g&gt;&lt;path class=&quot;foreground&quot; aria-hidden=&quot;true&quot; d=&quot;&quot; pointer-events=&quot;none&quot; display=&quot;none&quot;/&gt;&lt;/g&gt;&lt;/g&gt;&lt;g class=&quot;mark-group role-axis&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;axis&quot; aria-label=&quot;Y-axis for a discrete scale with 2 values: basic LLM + Lean verifier loop, AlphaProof standalone (tree search, ~64 TPU-h/problem)&quot;&gt;&lt;g transform=&quot;translate(0.5,0.5)&quot;&gt;&lt;path class=&quot;background&quot; aria-hidden=&quot;true&quot; d=&quot;M0,0h0v0h0Z&quot; pointer-events=&quot;none&quot;/&gt;&lt;g&gt;&lt;g class=&quot;mark-rule role-axis-tick&quot; pointer-events=&quot;none&quot;&gt;&lt;line transform=&quot;translate(0,30)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,90)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;/g&gt;&lt;g class=&quot;mark-text role-axis-label&quot; pointer-events=&quot;none&quot;&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,34.5)&quot; font-family=&quot;sans-serif&quot; font-size=&quot;15px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;basic LLM + Lean verifier loop&lt;/text&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,94.5)&quot; font-family=&quot;sans-serif&quot; font-size=&quot;15px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;AlphaProof standalone (tree search, ~64 TPU…&lt;/text&gt;&lt;/g&gt;&lt;g class=&quot;mark-rule role-axis-domain&quot; pointer-events=&quot;none&quot;&gt;&lt;line transform=&quot;translate(0,0)&quot; x2=&quot;0&quot; y2=&quot;120&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;/g&gt;&lt;/g&gt;&lt;path class=&quot;foreground&quot; aria-hidden=&quot;true&quot; d=&quot;&quot; pointer-events=&quot;none&quot; display=&quot;none&quot;/&gt;&lt;/g&gt;&lt;/g&gt;&lt;g class=&quot;mark-rule role-mark layer_0_marks&quot; role=&quot;graphics-object&quot; aria-roledescription=&quot;rule mark container&quot;&gt;&lt;line aria-label=&quot;system: basic LLM + Lean verifier loop&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;rule mark&quot; transform=&quot;translate(0,30)&quot; x2=&quot;420&quot; y2=&quot;0&quot; stroke=&quot;#bbbbbb&quot; stroke-width=&quot;2&quot;/&gt;&lt;line aria-label=&quot;system: AlphaProof standalone (tree search, ~64 TPU-h/problem)&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;rule mark&quot; transform=&quot;translate(0,90)&quot; x2=&quot;420&quot; y2=&quot;0&quot; stroke=&quot;#bbbbbb&quot; stroke-width=&quot;2&quot;/&gt;&lt;/g&gt;&lt;g class=&quot;mark-symbol role-mark layer_1_marks&quot; role=&quot;graphics-object&quot; aria-roledescription=&quot;symbol mark container&quot;&gt;&lt;path aria-label=&quot;Erdos problems resolved (of the 9): 9; system: basic LLM + Lean verifier loop&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;point&quot; transform=&quot;translate(420,30)&quot; d=&quot;M8.944,0A8.944,8.944,0,1,1,-8.944,0A8.944,8.944,0,1,1,8.944,0&quot; fill=&quot;#56b4e9&quot; stroke-width=&quot;2&quot; opacity=&quot;1&quot;/&gt;&lt;path aria-label=&quot;Erdos problems resolved (of the 9): 0; system: AlphaProof standalone (tree search, ~64 TPU-h/problem)&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;point&quot; transform=&quot;translate(0,90)&quot; d=&quot;M8.944,0A8.944,8.944,0,1,1,-8.944,0A8.944,8.944,0,1,1,8.944,0&quot; fill=&quot;#e69f00&quot; stroke-width=&quot;2&quot; opacity=&quot;1&quot;/&gt;&lt;/g&gt;&lt;g class=&quot;mark-text role-mark layer_2_marks&quot; role=&quot;graphics-object&quot; aria-roledescription=&quot;text mark container&quot;&gt;&lt;text aria-label=&quot;resolved: 9; system: basic LLM + Lean verifier loop; note: replicated all 9 (costlier on the hardest)&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;text mark&quot; text-anchor=&quot;middle&quot; transform=&quot;translate(420,18)&quot; font-family=&quot;sans-serif&quot; font-size=&quot;14px&quot; fill=&quot;#555555&quot;&gt;replicated all 9 (costlier on the hardest)&lt;/text&gt;&lt;text aria-label=&quot;resolved: 0; system: AlphaProof standalone (tree search, ~64 TPU-h/problem); note: solved none&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;text mark&quot; text-anchor=&quot;middle&quot; transform=&quot;translate(0,78)&quot; font-family=&quot;sans-serif&quot; font-size=&quot;14px&quot; fill=&quot;#555555&quot;&gt;solved none&lt;/text&gt;&lt;/g&gt;&lt;/g&gt;&lt;path class=&quot;foreground&quot; aria-hidden=&quot;true&quot; d=&quot;&quot; display=&quot;none&quot;/&gt;&lt;/g&gt;&lt;/g&gt;&lt;/g&gt;&lt;/svg&gt;&lt;/div&gt; &lt;figcaption data-astro-cid-bj3fsypb&gt;The published ablation, redrawn: a bare LLM + Lean-verifier loop replicated all 9 resolved Erdős problems; the trained prover standalone solved 0 of 9. Data from arXiv:2605.22763; the 9/353 headline belongs to the paper&apos;s most capable agent.&lt;/figcaption&gt; &lt;details class=&quot;data-table&quot; data-astro-cid-bj3fsypb&gt; &lt;summary data-astro-cid-bj3fsypb&gt;data table&lt;/summary&gt;  &lt;div class=&quot;data-table-scroll&quot; data-astro-cid-bj3fsypb&gt;&lt;table&gt;&lt;tr&gt;&lt;th&gt;system&lt;/th&gt;&lt;th&gt;resolved (of the 9)&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;basic LLM + Lean verifier loop&lt;/td&gt;&lt;td&gt;9&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;AlphaProof standalone (tree search, ~64 TPU-hours/problem)&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt; &lt;/details&gt; &lt;/figure&gt; 
&lt;h2 id=&quot;four-tools-one-claim&quot;&gt;Four tools, one claim&lt;a class=&quot;heading-anchor&quot; href=&quot;#four-tools-one-claim&quot; aria-label=&quot;Link to this section&quot;&gt;¶&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;No single tool checks my papers. Lean 4 + Mathlib carries the probabilistic core — the Azuma–Hoeffding martingale envelope behind the stochastic-rounding bound, plus the matching lower bounds. Coq + Flocq carries the bit-level facts: the round-to-nearest stall from &lt;a href=&quot;https://thepragmaticquant.com/the-accumulator-that-never-moved/&quot;&gt;the lower-bound article&lt;/a&gt; and the deterministic recurrence composition, compiled with zero &lt;code&gt;Admitted&lt;/code&gt;. Gappa certifies the per-step interval round-off bounds. sympy and mpmath discharge the symbolic operand-count and rate-match obligations. Five of the six headline results carry machine-checked proof obligations; the sixth is the round-to-nearest conjecture, left open with a stated target: pass/fail criteria can be pre-registered against a bound before the experiments that test it run, the way trials pre-register endpoints. That habit comes from empirical work and is separate from what the published papers claim.&lt;/p&gt;








































&lt;div class=&quot;table-scroll&quot;&gt;&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Result&lt;/th&gt;&lt;th&gt;Substrate&lt;/th&gt;&lt;th&gt;Axiom surface&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;deterministic envelope, uniform in N&lt;/td&gt;&lt;td&gt;Lean + Coq/Flocq + Gappa&lt;/td&gt;&lt;td&gt;classical triple&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;unconditional SR Azuma envelope&lt;/td&gt;&lt;td&gt;Lean + sympy&lt;/td&gt;&lt;td&gt;classical triple&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;carry-chain matching lower bound (p ≤ w)&lt;/td&gt;&lt;td&gt;Lean + Coq/Flocq&lt;/td&gt;&lt;td&gt;classical triple&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;magnitude-factor necessity stall&lt;/td&gt;&lt;td&gt;Lean + Coq/Flocq&lt;/td&gt;&lt;td&gt;classical triple&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;SR removes adversarial coherence&lt;/td&gt;&lt;td&gt;Lean&lt;/td&gt;&lt;td&gt;classical triple&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;round-to-nearest refinement, conditional on the open L1 hypothesis&lt;/td&gt;&lt;td&gt;—&lt;/td&gt;&lt;td&gt;open conjecture&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;Transcribed from the per-result machine-verification coverage table printed in the preprint (doi:10.5281/zenodo.20599315).&lt;/p&gt;
&lt;figure class=&quot;full&quot; data-astro-cid-bj3fsypb&gt; &lt;div class=&quot;svgfig svgfig-diagram&quot; role=&quot;img&quot; aria-label=&quot;Defense-in-depth verification architecture: Gappa per-step interval bounds feed Coq + Flocq recurrence composition (zero Admitted); Coq-proven facts enter the Lean 4 + Mathlib probabilistic envelope (classical triple only) as explicit named hypotheses across a disclosed seam; sympy/mpmath cross-checks and the empirical capsule sit alongside as independent lanes.&quot; data-astro-cid-bj3fsypb&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; width=&quot;900&quot; id=&quot;fig-01-defense-in-depth&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot; viewBox=&quot;0 0 900 360&quot; style=&quot;background:transparent;&quot; role=&quot;img&quot; aria-label=&quot;Defense-in-depth verification architecture: four lanes, one disclosed seam&quot;&gt;&lt;style&gt;#fig-01-defense-in-depth [fill=&quot;#1a1d23&quot; i]{fill:var(--bg)}#fig-01-defense-in-depth [stroke=&quot;#1a1d23&quot; i]{stroke:var(--bg)}#fig-01-defense-in-depth [fill=&quot;#18181b&quot; i]{fill:var(--bg-panel)}#fig-01-defense-in-depth [stroke=&quot;#18181b&quot; i]{stroke:var(--bg-panel)}#fig-01-defense-in-depth [fill=&quot;#2c2f37&quot; i]{fill:var(--current-line)}#fig-01-defense-in-depth [stroke=&quot;#2c2f37&quot; i]{stroke:var(--current-line)}#fig-01-defense-in-depth [fill=&quot;#f4f5f7&quot; i]{fill:var(--fg)}#fig-01-defense-in-depth [stroke=&quot;#f4f5f7&quot; i]{stroke:var(--fg)}#fig-01-defense-in-depth [fill=&quot;#8a8f98&quot; i]{fill:var(--comment)}#fig-01-defense-in-depth [stroke=&quot;#8a8f98&quot; i]{stroke:var(--comment)}&lt;/style&gt;
  &lt;!--
    DESIGN RATIONALE
    Four verification lanes (Gappa -&gt; Coq+Flocq =seam=&gt; Lean -&gt; sympy) feeding one
    empirical capsule. Landscape single-row pipeline so the figure fills the 928px
    blog column without side dead-bands; each of the four lane boxes is sized to its
    16px title + 14px sublabels with compact padding, and the edge labels sit centred
    in the inter-box gaps. The disclosed seam rides on the Coq-&gt;Lean edge as an accent
    chip below that gap. The capsule is a full-width sink below the row. Surface hexes
    are rewritten to CSS vars at inline time by Figure.astro; Okabe-Ito accents kept.
  --&gt;
  &lt;defs&gt;
    &lt;marker id=&quot;arr&quot; markerWidth=&quot;9&quot; markerHeight=&quot;9&quot; refX=&quot;6&quot; refY=&quot;3&quot; orient=&quot;auto&quot;&gt;
      &lt;path d=&quot;M0,0 L0,6 L8,3 z&quot; fill=&quot;#8A8F98&quot;/&gt;
    &lt;/marker&gt;
    &lt;marker id=&quot;arr-blue&quot; markerWidth=&quot;9&quot; markerHeight=&quot;9&quot; refX=&quot;6&quot; refY=&quot;3&quot; orient=&quot;auto&quot;&gt;
      &lt;path d=&quot;M0,0 L0,6 L8,3 z&quot; fill=&quot;#56B4E9&quot;/&gt;
    &lt;/marker&gt;
    &lt;marker id=&quot;arr-up&quot; markerWidth=&quot;9&quot; markerHeight=&quot;9&quot; refX=&quot;6&quot; refY=&quot;3&quot; orient=&quot;auto&quot;&gt;
      &lt;path d=&quot;M0,0 L0,6 L8,3 z&quot; fill=&quot;#8A8F98&quot;/&gt;
    &lt;/marker&gt;
  &lt;/defs&gt;
  &lt;style&gt;
    text { font-family: var(--mono); fill: var(--fg); }
    .box { fill: var(--bg-panel); stroke: var(--comment); stroke-width: 1.5; }
    .box-accent { fill: var(--bg-panel); stroke: #56B4E9; stroke-width: 1.5; }
    .t1 { font-size: 16px; text-anchor: middle; dominant-baseline: middle; font-weight: bold; }
    .t2 { font-size: 14px; text-anchor: middle; dominant-baseline: middle; fill: #c0c3c8; }
    .edge { stroke: var(--comment); stroke-width: 1.5; fill: none; marker-end: url(#arr); }
    .edge-dash { stroke: #56B4E9; stroke-width: 1.5; fill: none; stroke-dasharray: 6 3; marker-end: url(#arr-blue); }
    .elbl { font-size: 14px; text-anchor: middle; fill: var(--comment); dominant-baseline: middle; }
    .seam { font-size: 14px; text-anchor: middle; fill: #56B4E9; dominant-baseline: middle; font-weight: bold; }
  &lt;/style&gt;

  &lt;!-- Lane 1: Gappa --&gt;
  &lt;rect class=&quot;box&quot; x=&quot;14&quot; y=&quot;40&quot; width=&quot;190&quot; height=&quot;96&quot; rx=&quot;6&quot;/&gt;
  &lt;text text-anchor=&quot;middle&quot; class=&quot;t1&quot; x=&quot;109&quot; y=&quot;68&quot;&gt;Gappa&lt;/text&gt;
  &lt;text text-anchor=&quot;middle&quot; class=&quot;t2&quot; x=&quot;109&quot; y=&quot;94&quot;&gt;per-step&lt;/text&gt;
  &lt;text text-anchor=&quot;middle&quot; class=&quot;t2&quot; x=&quot;109&quot; y=&quot;116&quot;&gt;round-off bounds&lt;/text&gt;

  &lt;!-- edge 1-&gt;2 --&gt;
  &lt;line class=&quot;edge&quot; x1=&quot;204&quot; y1=&quot;88&quot; x2=&quot;234&quot; y2=&quot;88&quot;/&gt;
  &lt;text text-anchor=&quot;middle&quot; class=&quot;elbl&quot; x=&quot;219&quot; y=&quot;26&quot;&gt;numeric&lt;/text&gt;

  &lt;!-- Lane 2: Coq + Flocq --&gt;
  &lt;rect class=&quot;box-accent&quot; x=&quot;236&quot; y=&quot;32&quot; width=&quot;220&quot; height=&quot;112&quot; rx=&quot;6&quot;/&gt;
  &lt;text text-anchor=&quot;middle&quot; class=&quot;t1&quot; x=&quot;346&quot; y=&quot;58&quot;&gt;Coq + Flocq&lt;/text&gt;
  &lt;text text-anchor=&quot;middle&quot; class=&quot;t2&quot; x=&quot;346&quot; y=&quot;84&quot;&gt;stall lemma +&lt;/text&gt;
  &lt;text text-anchor=&quot;middle&quot; class=&quot;t2&quot; x=&quot;346&quot; y=&quot;104&quot;&gt;recurrence comp.&lt;/text&gt;
  &lt;text text-anchor=&quot;middle&quot; class=&quot;t2&quot; x=&quot;346&quot; y=&quot;126&quot;&gt;zero Admitted&lt;/text&gt;

  &lt;!-- edge 2-&gt;3 (dashed seam) --&gt;
  &lt;line class=&quot;edge-dash&quot; x1=&quot;456&quot; y1=&quot;88&quot; x2=&quot;486&quot; y2=&quot;88&quot;/&gt;

  &lt;!-- Lane 3: Lean 4 + Mathlib --&gt;
  &lt;rect class=&quot;box-accent&quot; x=&quot;488&quot; y=&quot;32&quot; width=&quot;220&quot; height=&quot;112&quot; rx=&quot;6&quot;/&gt;
  &lt;text text-anchor=&quot;middle&quot; class=&quot;t1&quot; x=&quot;598&quot; y=&quot;58&quot;&gt;Lean 4 + Mathlib&lt;/text&gt;
  &lt;text text-anchor=&quot;middle&quot; class=&quot;t2&quot; x=&quot;598&quot; y=&quot;84&quot;&gt;Azuma-Hoeffding&lt;/text&gt;
  &lt;text text-anchor=&quot;middle&quot; class=&quot;t2&quot; x=&quot;598&quot; y=&quot;104&quot;&gt;prob. envelope&lt;/text&gt;
  &lt;text text-anchor=&quot;middle&quot; class=&quot;t2&quot; x=&quot;598&quot; y=&quot;126&quot;&gt;classical triple&lt;/text&gt;

  &lt;!-- edge 3-&gt;4 --&gt;
  &lt;line class=&quot;edge&quot; x1=&quot;708&quot; y1=&quot;88&quot; x2=&quot;738&quot; y2=&quot;88&quot;/&gt;
  &lt;text text-anchor=&quot;middle&quot; class=&quot;elbl&quot; x=&quot;723&quot; y=&quot;26&quot;&gt;symbolic&lt;/text&gt;

  &lt;!-- Lane 4: sympy / mpmath --&gt;
  &lt;rect class=&quot;box&quot; x=&quot;740&quot; y=&quot;40&quot; width=&quot;150&quot; height=&quot;96&quot; rx=&quot;6&quot;/&gt;
  &lt;text text-anchor=&quot;middle&quot; class=&quot;t1&quot; x=&quot;815&quot; y=&quot;68&quot;&gt;sympy&lt;/text&gt;
  &lt;text text-anchor=&quot;middle&quot; class=&quot;t2&quot; x=&quot;815&quot; y=&quot;94&quot;&gt;operand-count +&lt;/text&gt;
  &lt;text text-anchor=&quot;middle&quot; class=&quot;t2&quot; x=&quot;815&quot; y=&quot;116&quot;&gt;rate-match&lt;/text&gt;

  &lt;!-- disclosed seam chip on the Coq-&gt;Lean edge --&gt;
  &lt;rect fill=&quot;#1a1d23&quot; stroke=&quot;#56B4E9&quot; stroke-width=&quot;1&quot; x=&quot;396&quot; y=&quot;166&quot; width=&quot;152&quot; height=&quot;34&quot; rx=&quot;4&quot;/&gt;
  &lt;text text-anchor=&quot;middle&quot; class=&quot;seam&quot; x=&quot;472&quot; y=&quot;184&quot;&gt;DISCLOSED SEAM&lt;/text&gt;
  &lt;line class=&quot;edge-dash&quot; x1=&quot;472&quot; y1=&quot;166&quot; x2=&quot;472&quot; y2=&quot;146&quot;/&gt;

  &lt;!-- lanes drop into the capsule --&gt;
  &lt;path class=&quot;edge&quot; d=&quot;M 109 136 L 109 250&quot;/&gt;
  &lt;path class=&quot;edge&quot; d=&quot;M 815 136 L 815 250&quot;/&gt;
  &lt;path stroke=&quot;#8A8F98&quot; stroke-width=&quot;1&quot; stroke-opacity=&quot;0.5&quot; fill=&quot;none&quot; d=&quot;M 346 200 L 346 250&quot;/&gt;
  &lt;path stroke=&quot;#8A8F98&quot; stroke-width=&quot;1&quot; stroke-opacity=&quot;0.5&quot; fill=&quot;none&quot; d=&quot;M 598 200 L 598 250&quot;/&gt;

  &lt;!-- Capsule full-width sink --&gt;
  &lt;rect class=&quot;box&quot; x=&quot;230&quot; y=&quot;252&quot; width=&quot;440&quot; height=&quot;92&quot; rx=&quot;6&quot;/&gt;
  &lt;text text-anchor=&quot;middle&quot; class=&quot;t1&quot; x=&quot;450&quot; y=&quot;280&quot;&gt;empirical capsule&lt;/text&gt;
  &lt;text text-anchor=&quot;middle&quot; class=&quot;t2&quot; x=&quot;450&quot; y=&quot;306&quot;&gt;every figure re-run from data&lt;/text&gt;
  &lt;text text-anchor=&quot;middle&quot; class=&quot;t2&quot; x=&quot;450&quot; y=&quot;328&quot;&gt;all four lanes converge here&lt;/text&gt;
&lt;/svg&gt;
&lt;/div&gt; &lt;figcaption data-astro-cid-bj3fsypb&gt;A schematic informed by the preprints&apos; coverage sections (doi:10.5281/zenodo.20599315, doi:10.5281/zenodo.20599478): four lanes, a per-result substrate map, and the cross-prover boundary drawn as an explicit labeled seam. Not measured data.&lt;/figcaption&gt;  &lt;/figure&gt; &lt;script type=&quot;module&quot; src=&quot;https://thepragmaticquant.com/vercel/path0/src/components/Figure.astro?astro&amp;type=script&amp;index=0&amp;lang.ts&quot;&gt;&lt;/script&gt;
&lt;h2 id=&quot;three-axioms-every-theorem&quot;&gt;Three axioms, every theorem&lt;a class=&quot;heading-anchor&quot; href=&quot;#three-axioms-every-theorem&quot; aria-label=&quot;Link to this section&quot;&gt;¶&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;A Lean proof is not trusted because the proof script looks right. The script is an untrusted program; a small kernel re-derives every step. What the kernel will not volunteer on its own is the axiom inventory — so for each public bridge theorem, the development byte-pins the &lt;code&gt;#print axioms&lt;/code&gt; output behind a &lt;code&gt;#guard_msgs&lt;/code&gt; gate: any new axiom, or a &lt;code&gt;sorry&lt;/code&gt; buried ten imports deep surfacing as &lt;code&gt;sorryAx&lt;/code&gt;, changes the pinned message and breaks the build. The papers state that this gate is itself the machine proof that the development is sorry-free and classical-axioms-only on every theorem. The pinned transcript ships with the paper, verifiable without the library source:&lt;/p&gt;
&lt;div class=&quot;codeblock&quot;&gt;&lt;div class=&quot;codeblock-head&quot;&gt;&lt;span class=&quot;lang&quot;&gt;text&lt;/span&gt;&lt;button type=&quot;button&quot; class=&quot;copy-btn&quot; data-copy aria-label=&quot;Copy code&quot;&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot; aria-hidden=&quot;true&quot;&gt;&lt;rect width=&quot;14&quot; height=&quot;14&quot; x=&quot;8&quot; y=&quot;8&quot; rx=&quot;2&quot; ry=&quot;2&quot;&gt;&lt;/rect&gt;&lt;path d=&quot;M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;span class=&quot;copy-label&quot;&gt;Copy&lt;/span&gt;&lt;/button&gt;&lt;/div&gt;&lt;pre class=&quot;astro-code astro-code-themes github-light github-dark-default&quot; style=&quot;--shiki-light:#24292e;--shiki-dark:#e6edf3;--shiki-light-bg:#fff;--shiki-dark-bg:#0d1117;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;text&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;&amp;#39;MpAnchor.mp_qt_forward_error&amp;#39; depends on axioms: [propext, Classical.choice, Quot.sound]&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;That one line is the certificate. No project-specific axiom, no unfinished proof, three axioms classical mathematics already runs on.&lt;/p&gt;
&lt;h2 id=&quot;verified-has-gradations&quot;&gt;Verified has gradations&lt;a class=&quot;heading-anchor&quot; href=&quot;#verified-has-gradations&quot; aria-label=&quot;Link to this section&quot;&gt;¶&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Even inside a prover, some paths bypass the kernel. Lean’s &lt;code&gt;native_decide&lt;/code&gt; compiles the goal to native code and admits the answer through an extra axiom — fast, and exactly the kind of shortcut a trusted-base audit deny-lists. And a proof can pass every axiom check while certifying nothing: define rounding as the identity function and the whole development green-builds, vacuously. So certificates are labeled by strength: an &lt;em&gt;implication&lt;/em&gt; certificate carries a weaker guarantee than a &lt;em&gt;model&lt;/em&gt; certificate — the inference is kernel-checked but a premise crosses a disclosed boundary, versus the claim holding end-to-end inside one kernel’s model — and the label says which one you are holding.&lt;span class=&quot;marginnote&quot; role=&quot;note&quot;&gt;The distinction that motivates this label system: a crossed premise described as fully discharged is an overclaim, even if every formal gate is green. The label forces that distinction into the surface of the theorem statement itself, where it cannot be elided by documentation alone.&lt;/span&gt;&lt;/p&gt;
&lt;h2 id=&quot;the-seam-you-cannot-compile-away&quot;&gt;The seam you cannot compile away&lt;a class=&quot;heading-anchor&quot; href=&quot;#the-seam-you-cannot-compile-away&quot; aria-label=&quot;Link to this section&quot;&gt;¶&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;In 2026 there is no production tool that transports a Coq proof into Lean. The bit-level facts live in Coq because Flocq is where floating-point theory exists; the probability lives in Lean because Mathlib is where martingales exist. So the boundary between them is disclosed, not hidden: where a fact proved in Coq matters to a Lean theorem, the Lean statement binds it as an explicit named hypothesis, visible in the theorem statement itself, and the load-bearing shared fact is certified independently on both substrates — the round-to-nearest stall is constructed in Lean while the Coq/Flocq lane independently certifies the same stall. That is why every public bridge can print the classical triple with no project-specific axiom. If a binder were ever dropped — a Coq fact entering Lean as an axiom instead of a hypothesis — the right design is one disclosed bridge axiom that verbatim-mirrors the Qed-closed Coq theorem, content-pinned and independently re-checked by Coq’s own &lt;code&gt;coqchk&lt;/code&gt;, with a firewall restricting which theorems may touch it and a canary proving the firewall admits the allowed consumers and fires on everyone else. That is a design sketch for the failure case, not a description of the shipped development. Pin everything: a floating reference is an attack surface whether it points at a package or at an axiom — the supply-chain lesson, &lt;a href=&quot;https://thepragmaticquant.com/green-is-not-evidence/&quot;&gt;one layer down&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;why-this-does-not-generalize-for-free&quot;&gt;Why this does not generalize for free&lt;a class=&quot;heading-anchor&quot; href=&quot;#why-this-does-not-generalize-for-free&quot; aria-label=&quot;Link to this section&quot;&gt;¶&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Mainstream Lean libraries carry essentially no floating-point theory, so the deterministic lane had to be human-authored in Coq — no LLM loop, however good, can retrieve lemmas that do not exist. The DeepMind result worked because Mathlib is a deep substrate for the mathematics it targeted; “AI can prove things” is substrate-dependent, and the narrowness of my domain is what made the faithfulness checks mechanizable.&lt;span class=&quot;marginnote&quot; role=&quot;note&quot;&gt;What this does not claim: nothing here is an alignment result — these proofs verify theorems about floating-point arithmetic, not agent behavior — and the attention analogy stays an analogy. The narrow domain is the enabling condition, not a limitation to apologize for.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;A certificate, though, is only as good as the data thrown at it. The next article takes the proven envelope to &lt;a href=&quot;https://thepragmaticquant.com/one-earthquake-pinned-my-bound/&quot;&gt;a real earthquake record&lt;/a&gt;.&lt;/p&gt;</content:encoded><category>formal-methods</category><category>lean</category><category>floating-point</category><category>evals</category></item><item><title>One earthquake pinned my error bound forever</title><link>https://thepragmaticquant.com/one-earthquake-pinned-my-bound/</link><guid isPermaLink="true">https://thepragmaticquant.com/one-earthquake-pinned-my-bound/</guid><description>A seismic stream, a global magnitude bound wrecked by a single mainshock, a windowed bound that heals — and a scoreboard where the headline empirical legs of two papers report zero violations.</description><pubDate>Fri, 12 Jun 2026 00:00:00 GMT</pubDate><content:encoded>&lt;div class=&quot;tldr&quot;&gt;&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt; — The deterministic error bound carries a global magnitude factor &lt;code&gt;T★&lt;/code&gt; — a single worst-case constant over the entire stream. One large spike pins it at a uselessly large value for every tick that follows, even though the actual error stays tiny. The fix is a windowed factor that &lt;em&gt;heals&lt;/em&gt; once the spike ages out: on the printed synthetic run the post-exit ratio between the two envelopes averages ~3.2×10⁵. The capstone scoreboard covers the main empirical legs of both papers: zero violations.&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href=&quot;https://thepragmaticquant.com/three-axioms-and-one-disclosed-seam/&quot;&gt;The last article&lt;/a&gt; ended on a warning: a certificate is only as good as the data you throw at it. So here is the data. The bound’s magnitude factor &lt;code&gt;T★&lt;/code&gt; is a single global constant — the largest product magnitude anywhere in the entire stream. One large spike anywhere fixes it for the whole bound. Feed the kernel that spike early, and &lt;code&gt;T★&lt;/code&gt; sits at the spike’s scale for every remaining tick. The error itself stays tiny; the envelope around it stays enormous. The theorem is true, and on exactly the high-dynamic-range data that motivates streaming in the first place — seismic data — its global form tells you almost nothing.&lt;/p&gt;
&lt;h2 id=&quot;global-pins-local-heals&quot;&gt;Global pins, local heals&lt;a class=&quot;heading-anchor&quot; href=&quot;#global-pins-local-heals&quot; aria-label=&quot;Link to this section&quot;&gt;¶&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;My answer is locality. The first patch I reached for — a prefix maximum &lt;code&gt;T_t&lt;/code&gt; that grows as the stream does — repaired nothing: it is non-decreasing, so after the spike it equals &lt;code&gt;T★&lt;/code&gt; at every later tick.&lt;span class=&quot;marginnote&quot; role=&quot;note&quot;&gt;The prefix-max patch also forfeits the bound’s defining property — uniformity in stream length — which is the whole point of the re-anchoring topology.&lt;/span&gt; The patch that works: window the magnitude factor on the re-anchoring topology itself. Under a &lt;code&gt;Periodic{k}&lt;/code&gt; reseed, only a bounded window of recent ticks can still influence the carry, so the magnitude factor can be taken over that window alone. Call it &lt;code&gt;T_local(t)&lt;/code&gt;. Once the spike exits the window, &lt;code&gt;T_local&lt;/code&gt; collapses back to the pre-spike level — on the printed run, the global-only envelope I would otherwise have shipped runs five orders of magnitude looser for the entire post-exit stream. The global bound remembers forever; the local one is allowed to forget.&lt;/p&gt;
&lt;p&gt;The printed synthetic run makes the gap concrete. Stream of 20,000 ticks, window 50, reseed every 200, fp32, worst-case carry lag 199. A spike of scale 10³ enters at tick 300 and leaves the data 21 ticks later. The global envelope jumps from about 0.23 to about 8.1×10⁴ and never returns. The local envelope rides at the same inflated level only while the spike sits inside its window — then, at tick ≈621, it heals back to roughly where it started. (In the chart below the drop lands at the t = 600 re-anchor boundary, where the envelope is next re-evaluated, just ahead of the printed window-exit tick of ≈621.) Post-exit ratio between the two: a mean of ~3.2×10⁵. Same theorem, same stream, five orders of magnitude of difference in what the bound is worth.&lt;/p&gt;
&lt;figure class=&quot;full&quot; data-astro-cid-bj3fsypb&gt; &lt;div class=&quot;svgfig svgfig-chart&quot; role=&quot;img&quot; aria-label=&quot;Log-scale forward error and bounds versus stream tick for the printed synthetic healing run (N=20,000, w=50, k=200, fp32): a spike of scale 1e3 at ticks [300,321) pins the global T-star envelope at ~8.1e4 for the rest of the stream, while the windowed local envelope drops back to ~0.2-0.35 at the t=600 re-anchor boundary, just before the printed window-exit tick of ~621; the measured error stays between ~4.5e-11 and ~5.5e-4 throughout, below both envelopes at every tick.&quot; data-astro-cid-bj3fsypb&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; id=&quot;fig-01-global-vs-local-envelope&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot; xmlns:xlink=&quot;http://www.w3.org/1999/xlink&quot; version=&quot;1.1&quot; class=&quot;marks&quot; width=&quot;748&quot; height=&quot;414&quot; viewBox=&quot;0 0 748 414&quot;&gt;&lt;style&gt;#fig-01-global-vs-local-envelope [fill=&quot;#1a1d23&quot; i]{fill:var(--bg)}#fig-01-global-vs-local-envelope [stroke=&quot;#1a1d23&quot; i]{stroke:var(--bg)}#fig-01-global-vs-local-envelope [fill=&quot;#18181b&quot; i]{fill:var(--bg-panel)}#fig-01-global-vs-local-envelope [stroke=&quot;#18181b&quot; i]{stroke:var(--bg-panel)}#fig-01-global-vs-local-envelope [fill=&quot;#2c2f37&quot; i]{fill:var(--current-line)}#fig-01-global-vs-local-envelope [stroke=&quot;#2c2f37&quot; i]{stroke:var(--current-line)}#fig-01-global-vs-local-envelope [fill=&quot;#f4f5f7&quot; i]{fill:var(--fg)}#fig-01-global-vs-local-envelope [stroke=&quot;#f4f5f7&quot; i]{stroke:var(--fg)}#fig-01-global-vs-local-envelope [fill=&quot;#8a8f98&quot; i]{fill:var(--comment)}#fig-01-global-vs-local-envelope [stroke=&quot;#8a8f98&quot; i]{stroke:var(--comment)}&lt;/style&gt;&lt;rect width=&quot;748&quot; height=&quot;414&quot; fill=&quot;#1a1d23&quot;/&gt;&lt;g fill=&quot;none&quot; stroke-miterlimit=&quot;10&quot; transform=&quot;translate(101,11)&quot;&gt;&lt;g class=&quot;mark-group role-frame root&quot; role=&quot;graphics-object&quot; aria-roledescription=&quot;group mark container&quot;&gt;&lt;g transform=&quot;translate(0,0)&quot;&gt;&lt;path class=&quot;background&quot; aria-hidden=&quot;true&quot; d=&quot;M0.5,0.5h640v360h-640Z&quot;/&gt;&lt;g&gt;&lt;g class=&quot;mark-group role-axis&quot; aria-hidden=&quot;true&quot;&gt;&lt;g transform=&quot;translate(0.5,360.5)&quot;&gt;&lt;path class=&quot;background&quot; aria-hidden=&quot;true&quot; d=&quot;M0,0h0v0h0Z&quot; pointer-events=&quot;none&quot;/&gt;&lt;g&gt;&lt;g class=&quot;mark-rule role-axis-grid&quot; pointer-events=&quot;none&quot;&gt;&lt;line transform=&quot;translate(0,-360)&quot; x2=&quot;0&quot; y2=&quot;360&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(160,-360)&quot; x2=&quot;0&quot; y2=&quot;360&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(320,-360)&quot; x2=&quot;0&quot; y2=&quot;360&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(480,-360)&quot; x2=&quot;0&quot; y2=&quot;360&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(640,-360)&quot; x2=&quot;0&quot; y2=&quot;360&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;/g&gt;&lt;/g&gt;&lt;path class=&quot;foreground&quot; aria-hidden=&quot;true&quot; d=&quot;&quot; pointer-events=&quot;none&quot; display=&quot;none&quot;/&gt;&lt;/g&gt;&lt;/g&gt;&lt;g class=&quot;mark-group role-axis&quot; aria-hidden=&quot;true&quot;&gt;&lt;g transform=&quot;translate(0.5,0.5)&quot;&gt;&lt;path class=&quot;background&quot; aria-hidden=&quot;true&quot; d=&quot;M0,0h0v0h0Z&quot; pointer-events=&quot;none&quot;/&gt;&lt;g&gt;&lt;g class=&quot;mark-rule role-axis-grid&quot; pointer-events=&quot;none&quot;&gt;&lt;line transform=&quot;translate(0,360)&quot; x2=&quot;640&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,334)&quot; x2=&quot;640&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,309)&quot; x2=&quot;640&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,283)&quot; x2=&quot;640&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,257)&quot; x2=&quot;640&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,231)&quot; x2=&quot;640&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,206)&quot; x2=&quot;640&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,180)&quot; x2=&quot;640&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,154)&quot; x2=&quot;640&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,129)&quot; x2=&quot;640&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,103)&quot; x2=&quot;640&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,77)&quot; x2=&quot;640&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,51)&quot; x2=&quot;640&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,26)&quot; x2=&quot;640&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,0)&quot; x2=&quot;640&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;/g&gt;&lt;/g&gt;&lt;path class=&quot;foreground&quot; aria-hidden=&quot;true&quot; d=&quot;&quot; pointer-events=&quot;none&quot; display=&quot;none&quot;/&gt;&lt;/g&gt;&lt;/g&gt;&lt;g class=&quot;mark-group role-axis&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;axis&quot; aria-label=&quot;X-axis titled &apos;stream tick t&apos; for a linear scale with values from 0 to 20,000&quot;&gt;&lt;g transform=&quot;translate(0.5,360.5)&quot;&gt;&lt;path class=&quot;background&quot; aria-hidden=&quot;true&quot; d=&quot;M0,0h0v0h0Z&quot; pointer-events=&quot;none&quot;/&gt;&lt;g&gt;&lt;g class=&quot;mark-rule role-axis-tick&quot; pointer-events=&quot;none&quot;&gt;&lt;line transform=&quot;translate(0,0)&quot; x2=&quot;0&quot; y2=&quot;5&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(160,0)&quot; x2=&quot;0&quot; y2=&quot;5&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(320,0)&quot; x2=&quot;0&quot; y2=&quot;5&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(480,0)&quot; x2=&quot;0&quot; y2=&quot;5&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(640,0)&quot; x2=&quot;0&quot; y2=&quot;5&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;/g&gt;&lt;g class=&quot;mark-text role-axis-label&quot; pointer-events=&quot;none&quot;&gt;&lt;text text-anchor=&quot;start&quot; transform=&quot;translate(0,17)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;13px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;0&lt;/text&gt;&lt;text text-anchor=&quot;middle&quot; transform=&quot;translate(160,17)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;13px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;5,000&lt;/text&gt;&lt;text text-anchor=&quot;middle&quot; transform=&quot;translate(320,17)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;13px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;10,000&lt;/text&gt;&lt;text text-anchor=&quot;middle&quot; transform=&quot;translate(480,17)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;13px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;15,000&lt;/text&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(640,17)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;13px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;20,000&lt;/text&gt;&lt;/g&gt;&lt;g class=&quot;mark-rule role-axis-domain&quot; pointer-events=&quot;none&quot;&gt;&lt;line transform=&quot;translate(0,0)&quot; x2=&quot;640&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;/g&gt;&lt;g class=&quot;mark-text role-axis-title&quot; pointer-events=&quot;none&quot;&gt;&lt;text text-anchor=&quot;middle&quot; transform=&quot;translate(320,35)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;14px&quot; font-weight=&quot;bold&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;stream tick t&lt;/text&gt;&lt;/g&gt;&lt;/g&gt;&lt;path class=&quot;foreground&quot; aria-hidden=&quot;true&quot; d=&quot;&quot; pointer-events=&quot;none&quot; display=&quot;none&quot;/&gt;&lt;/g&gt;&lt;/g&gt;&lt;g class=&quot;mark-group role-axis&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;axis&quot; aria-label=&quot;Y-axis titled &apos;absolute forward error / bound&apos; for a log scale with values from 1e-8 to 1,000,000&quot;&gt;&lt;g transform=&quot;translate(0.5,0.5)&quot;&gt;&lt;path class=&quot;background&quot; aria-hidden=&quot;true&quot; d=&quot;M0,0h0v0h0Z&quot; pointer-events=&quot;none&quot;/&gt;&lt;g&gt;&lt;g class=&quot;mark-rule role-axis-tick&quot; pointer-events=&quot;none&quot;&gt;&lt;line transform=&quot;translate(0,360)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,334)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,309)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,283)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,257)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,231)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,206)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,180)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,154)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,129)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,103)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,77)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,51)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,26)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,0)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;/g&gt;&lt;g class=&quot;mark-text role-axis-label&quot; pointer-events=&quot;none&quot;&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,364)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;13px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;1e-8&lt;/text&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,338.2857142857143)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;13px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;1e-7&lt;/text&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,312.57142857142856)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;13px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;0.000001&lt;/text&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,286.85714285714283)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;13px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;0.00001&lt;/text&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,261.1428571428571)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;13px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;0.0001&lt;/text&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,235.42857142857142)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;13px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;0.001&lt;/text&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,209.7142857142857)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;13px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;0.01&lt;/text&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,184)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;13px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;0.1&lt;/text&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,158.28571428571425)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;13px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;1&lt;/text&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,132.57142857142856)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;13px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;10&lt;/text&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,106.8571428571428)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;13px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;100&lt;/text&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,81.14285714285715)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;13px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;1,000&lt;/text&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,55.4285714285714)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;13px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;10,000&lt;/text&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,29.7142857142857)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;13px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;100,000&lt;/text&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,4)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;13px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;1,000,000&lt;/text&gt;&lt;/g&gt;&lt;g class=&quot;mark-rule role-axis-domain&quot; pointer-events=&quot;none&quot;&gt;&lt;line transform=&quot;translate(0,360)&quot; x2=&quot;0&quot; y2=&quot;-360&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;/g&gt;&lt;g class=&quot;mark-text role-axis-title&quot; pointer-events=&quot;none&quot;&gt;&lt;text text-anchor=&quot;middle&quot; transform=&quot;translate(-81.19999694824219,180) rotate(-90) translate(0,-3)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;14px&quot; font-weight=&quot;bold&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;absolute forward error / bound&lt;/text&gt;&lt;/g&gt;&lt;/g&gt;&lt;path class=&quot;foreground&quot; aria-hidden=&quot;true&quot; d=&quot;&quot; pointer-events=&quot;none&quot; display=&quot;none&quot;/&gt;&lt;/g&gt;&lt;/g&gt;&lt;g class=&quot;mark-rect role-mark layer_0_marks&quot; role=&quot;graphics-object&quot; aria-roledescription=&quot;rect mark container&quot;&gt;&lt;path aria-label=&quot;x0: 300; x1: 321&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;rect mark&quot; d=&quot;M9.6,0h0.6719999999999988v360h-0.6719999999999988Z&quot; fill=&quot;#d55e00&quot; opacity=&quot;0.12&quot;/&gt;&lt;/g&gt;&lt;g class=&quot;mark-group role-scope layer_1_pathgroup&quot; role=&quot;graphics-object&quot; aria-roledescription=&quot;group mark container&quot;&gt;&lt;g transform=&quot;translate(0,0)&quot;&gt;&lt;path class=&quot;background&quot; aria-hidden=&quot;true&quot; d=&quot;M0,0h640v360h-640Z&quot;/&gt;&lt;g&gt;&lt;g class=&quot;mark-line role-mark layer_1_marks&quot; role=&quot;graphics-object&quot; aria-roledescription=&quot;line mark container&quot;&gt;&lt;path aria-label=&quot;stream tick t: 200; absolute forward error / bound: 0.2258298; series: global T★ envelope&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;line mark&quot; d=&quot;M6.4,170.903L8,170.903L8.032,28.296L9.6,28.082L19.872,28.082L32,28.082L160,28.082L320,28.082L639.968,28.082&quot; stroke=&quot;#e69f00&quot; stroke-width=&quot;2&quot; stroke-dasharray=&quot;1,0&quot;/&gt;&lt;/g&gt;&lt;/g&gt;&lt;path class=&quot;foreground&quot; aria-hidden=&quot;true&quot; d=&quot;&quot; display=&quot;none&quot;/&gt;&lt;/g&gt;&lt;g transform=&quot;translate(0,0)&quot;&gt;&lt;path class=&quot;background&quot; aria-hidden=&quot;true&quot; d=&quot;M0,0h640v360h-640Z&quot;/&gt;&lt;g&gt;&lt;g class=&quot;mark-line role-mark layer_1_marks&quot; role=&quot;graphics-object&quot; aria-roledescription=&quot;line mark container&quot;&gt;&lt;path aria-label=&quot;stream tick t: 200; absolute forward error / bound: 0.2258298; series: local T_local envelope&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;line mark&quot; d=&quot;M6.4,170.903L8,170.903L8.032,28.296L9.6,28.082L19.168,28.082L19.2,170.518L19.84,170.518L32,165.882L64,169.9L160,172.287L320,169.775L480,171.407L639.968,166.452&quot; stroke=&quot;#56b4e9&quot; stroke-width=&quot;2&quot; stroke-dasharray=&quot;6,3&quot;/&gt;&lt;/g&gt;&lt;/g&gt;&lt;path class=&quot;foreground&quot; aria-hidden=&quot;true&quot; d=&quot;&quot; display=&quot;none&quot;/&gt;&lt;/g&gt;&lt;g transform=&quot;translate(0,0)&quot;&gt;&lt;path class=&quot;background&quot; aria-hidden=&quot;true&quot; d=&quot;M0,0h640v360h-640Z&quot;/&gt;&lt;g&gt;&lt;g class=&quot;mark-line role-mark layer_1_marks&quot; role=&quot;graphics-object&quot; aria-roledescription=&quot;line mark container&quot;&gt;&lt;path aria-label=&quot;stream tick t: 200; absolute forward error / bound: 0.000001095667; series: measured error&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;line mark&quot; d=&quot;M6.4,307.551L8,312.045L9.6,241.193L10.24,249.689L10.88,249.271L12.8,324.286L14.72,257.06L16.64,247.939L18.56,248.02L19.2,334.358L19.84,325.66L32,334.698L64,316.673L160,319.824L320,339.636L480,317.655L639.968,304.649&quot; stroke=&quot;#6272a4&quot; stroke-width=&quot;2&quot; stroke-dasharray=&quot;2,2&quot;/&gt;&lt;/g&gt;&lt;/g&gt;&lt;path class=&quot;foreground&quot; aria-hidden=&quot;true&quot; d=&quot;&quot; display=&quot;none&quot;/&gt;&lt;/g&gt;&lt;/g&gt;&lt;g class=&quot;mark-rule role-mark layer_2_marks&quot; role=&quot;graphics-object&quot; aria-roledescription=&quot;rule mark container&quot;&gt;&lt;line aria-label=&quot;t: 300&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;rule mark&quot; transform=&quot;translate(9.6,0)&quot; x2=&quot;0&quot; y2=&quot;360&quot; stroke=&quot;#888888&quot; stroke-dasharray=&quot;3,3&quot;/&gt;&lt;line aria-label=&quot;t: 621&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;rule mark&quot; transform=&quot;translate(19.872,0)&quot; x2=&quot;0&quot; y2=&quot;360&quot; stroke=&quot;#888888&quot; stroke-dasharray=&quot;3,3&quot;/&gt;&lt;/g&gt;&lt;/g&gt;&lt;path class=&quot;foreground&quot; aria-hidden=&quot;true&quot; d=&quot;&quot; display=&quot;none&quot;/&gt;&lt;/g&gt;&lt;/g&gt;&lt;/g&gt;&lt;/svg&gt;&lt;/div&gt; &lt;figcaption data-astro-cid-bj3fsypb&gt;Global versus windowed envelope on the synthetic healing run: one spike pins the global bound forever; the local bound heals at tick ≈621, post-exit ratio mean ≈3.2×10⁵. Measured error never exceeds either. Rebuilt from the data behind Figure 3 of the preprint (doi:10.5281/zenodo.20599315).&lt;/figcaption&gt; &lt;details class=&quot;data-table&quot; data-astro-cid-bj3fsypb&gt; &lt;summary data-astro-cid-bj3fsypb&gt;data table&lt;/summary&gt;  &lt;div class=&quot;data-table-scroll&quot; data-astro-cid-bj3fsypb&gt;&lt;table&gt;&lt;tr&gt;&lt;th&gt;tick&lt;/th&gt;&lt;th&gt;global envelope&lt;/th&gt;&lt;th&gt;local envelope&lt;/th&gt;&lt;th&gt;measured error&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;250 (pre-spike)&lt;/td&gt;&lt;td&gt;0.226&lt;/td&gt;&lt;td&gt;0.226&lt;/td&gt;&lt;td&gt;7.3e-7&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;320 (in spike)&lt;/td&gt;&lt;td&gt;8.09e4&lt;/td&gt;&lt;td&gt;8.09e4&lt;/td&gt;&lt;td&gt;1.9e-4&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;620 (post-heal)&lt;/td&gt;&lt;td&gt;8.09e4&lt;/td&gt;&lt;td&gt;0.234&lt;/td&gt;&lt;td&gt;2.2e-7&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;19,999 (end)&lt;/td&gt;&lt;td&gt;8.09e4&lt;/td&gt;&lt;td&gt;0.336&lt;/td&gt;&lt;td&gt;1.4e-6&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt; &lt;/details&gt; &lt;/figure&gt; 
&lt;h2 id=&quot;the-earthquake&quot;&gt;The earthquake&lt;a class=&quot;heading-anchor&quot; href=&quot;#the-earthquake&quot; aria-label=&quot;Link to this section&quot;&gt;¶&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The synthetic spike is a planted toy, so I ran the same comparison on the real Parkfield broadband seismogram. The toy’s pathology reproduced exactly: the global factor stays pinned at the quake’s peak for the entire post-event stream, while &lt;code&gt;T_local&lt;/code&gt; recovers to four to five orders of magnitude smaller across the benign tail. The measured drift never exceeded either envelope at any point of the post-event stream. The bound held on data that was designed, by nature rather than by me, to embarrass it.&lt;/p&gt;
&lt;p&gt;The figure below traces the whole record — every series across the full stream, not a window around the event. The mainshock arrives partway through. The global envelope steps up to the quake’s peak and stays there flat to the end. The local envelope rides up with it through the event, then bleeds back down across the long benign tail that follows. The measured drift sits a dozen-plus orders of magnitude below both the whole way across, with no excursion toward either line at the mainshock or anywhere after it.&lt;/p&gt;
&lt;figure class=&quot;full&quot; data-astro-cid-bj3fsypb&gt; &lt;div class=&quot;svgfig svgfig-chart&quot; role=&quot;img&quot; aria-label=&quot;Log-scale magnitude factor and measured drift across the full Parkfield long-record stream, plotted against stream position from 0 to roughly 156 million samples. The global T-star envelope steps up early and, after the mainshock partway through the record, pins flat at about 4e14 for the rest of the stream. The local windowed envelope tracks it up through the mainshock, then heals downward across the long benign tail, ending orders of magnitude below the pinned global line. The measured drift stays between about 1e-10 and 1e-1 across the entire record, more than a dozen orders of magnitude below either envelope at every point, with no excursion toward either line at the mainshock or after it.&quot; data-astro-cid-bj3fsypb&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; id=&quot;fig-02-seismic-full-record&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot; xmlns:xlink=&quot;http://www.w3.org/1999/xlink&quot; version=&quot;1.1&quot; class=&quot;marks&quot; width=&quot;794&quot; height=&quot;417&quot; viewBox=&quot;0 0 794 417&quot;&gt;&lt;style&gt;#fig-02-seismic-full-record [fill=&quot;#1a1d23&quot; i]{fill:var(--bg)}#fig-02-seismic-full-record [stroke=&quot;#1a1d23&quot; i]{stroke:var(--bg)}#fig-02-seismic-full-record [fill=&quot;#18181b&quot; i]{fill:var(--bg-panel)}#fig-02-seismic-full-record [stroke=&quot;#18181b&quot; i]{stroke:var(--bg-panel)}#fig-02-seismic-full-record [fill=&quot;#2c2f37&quot; i]{fill:var(--current-line)}#fig-02-seismic-full-record [stroke=&quot;#2c2f37&quot; i]{stroke:var(--current-line)}#fig-02-seismic-full-record [fill=&quot;#f4f5f7&quot; i]{fill:var(--fg)}#fig-02-seismic-full-record [stroke=&quot;#f4f5f7&quot; i]{stroke:var(--fg)}#fig-02-seismic-full-record [fill=&quot;#8a8f98&quot; i]{fill:var(--comment)}#fig-02-seismic-full-record [stroke=&quot;#8a8f98&quot; i]{stroke:var(--comment)}&lt;/style&gt;&lt;rect width=&quot;794&quot; height=&quot;417&quot; fill=&quot;#1a1d23&quot;/&gt;&lt;g fill=&quot;none&quot; stroke-miterlimit=&quot;10&quot; transform=&quot;translate(149,12)&quot;&gt;&lt;g class=&quot;mark-group role-frame root&quot; role=&quot;graphics-object&quot; aria-roledescription=&quot;group mark container&quot;&gt;&lt;g transform=&quot;translate(0,0)&quot;&gt;&lt;path class=&quot;background&quot; aria-hidden=&quot;true&quot; d=&quot;M0.5,0.5h640v360h-640Z&quot;/&gt;&lt;g&gt;&lt;g class=&quot;mark-group role-axis&quot; aria-hidden=&quot;true&quot;&gt;&lt;g transform=&quot;translate(0.5,360.5)&quot;&gt;&lt;path class=&quot;background&quot; aria-hidden=&quot;true&quot; d=&quot;M0,0h0v0h0Z&quot; pointer-events=&quot;none&quot;/&gt;&lt;g&gt;&lt;g class=&quot;mark-rule role-axis-grid&quot; pointer-events=&quot;none&quot;&gt;&lt;line transform=&quot;translate(0,-360)&quot; x2=&quot;0&quot; y2=&quot;360&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(160,-360)&quot; x2=&quot;0&quot; y2=&quot;360&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(320,-360)&quot; x2=&quot;0&quot; y2=&quot;360&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(480,-360)&quot; x2=&quot;0&quot; y2=&quot;360&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(622,-360)&quot; x2=&quot;0&quot; y2=&quot;360&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;/g&gt;&lt;/g&gt;&lt;path class=&quot;foreground&quot; aria-hidden=&quot;true&quot; d=&quot;&quot; pointer-events=&quot;none&quot; display=&quot;none&quot;/&gt;&lt;/g&gt;&lt;/g&gt;&lt;g class=&quot;mark-group role-axis&quot; aria-hidden=&quot;true&quot;&gt;&lt;g transform=&quot;translate(0.5,0.5)&quot;&gt;&lt;path class=&quot;background&quot; aria-hidden=&quot;true&quot; d=&quot;M0,0h0v0h0Z&quot; pointer-events=&quot;none&quot;/&gt;&lt;g&gt;&lt;g class=&quot;mark-rule role-axis-grid&quot; pointer-events=&quot;none&quot;&gt;&lt;line transform=&quot;translate(0,360)&quot; x2=&quot;640&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,334)&quot; x2=&quot;640&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,309)&quot; x2=&quot;640&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,283)&quot; x2=&quot;640&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,257)&quot; x2=&quot;640&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,231)&quot; x2=&quot;640&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,206)&quot; x2=&quot;640&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,180)&quot; x2=&quot;640&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,154)&quot; x2=&quot;640&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,129)&quot; x2=&quot;640&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,103)&quot; x2=&quot;640&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,77)&quot; x2=&quot;640&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,51)&quot; x2=&quot;640&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,26)&quot; x2=&quot;640&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,0)&quot; x2=&quot;640&quot; y2=&quot;0&quot; stroke=&quot;#2c2f37&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;/g&gt;&lt;/g&gt;&lt;path class=&quot;foreground&quot; aria-hidden=&quot;true&quot; d=&quot;&quot; pointer-events=&quot;none&quot; display=&quot;none&quot;/&gt;&lt;/g&gt;&lt;/g&gt;&lt;g class=&quot;mark-group role-axis&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;axis&quot; aria-label=&quot;X-axis titled &apos;stream position (millions of samples)&apos; for a linear scale with values from 0 to 160&quot;&gt;&lt;g transform=&quot;translate(0.5,360.5)&quot;&gt;&lt;path class=&quot;background&quot; aria-hidden=&quot;true&quot; d=&quot;M0,0h0v0h0Z&quot; pointer-events=&quot;none&quot;/&gt;&lt;g&gt;&lt;g class=&quot;mark-rule role-axis-tick&quot; pointer-events=&quot;none&quot;&gt;&lt;line transform=&quot;translate(0,0)&quot; x2=&quot;0&quot; y2=&quot;5&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(160,0)&quot; x2=&quot;0&quot; y2=&quot;5&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(320,0)&quot; x2=&quot;0&quot; y2=&quot;5&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(480,0)&quot; x2=&quot;0&quot; y2=&quot;5&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(622,0)&quot; x2=&quot;0&quot; y2=&quot;5&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;/g&gt;&lt;g class=&quot;mark-text role-axis-label&quot; pointer-events=&quot;none&quot;&gt;&lt;text text-anchor=&quot;start&quot; transform=&quot;translate(0,18)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;14px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;0&lt;/text&gt;&lt;text text-anchor=&quot;middle&quot; transform=&quot;translate(160,18)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;14px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;40&lt;/text&gt;&lt;text text-anchor=&quot;middle&quot; transform=&quot;translate(320,18)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;14px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;80&lt;/text&gt;&lt;text text-anchor=&quot;middle&quot; transform=&quot;translate(480,18)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;14px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;120&lt;/text&gt;&lt;text text-anchor=&quot;middle&quot; transform=&quot;translate(622.08,18)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;14px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;156&lt;/text&gt;&lt;/g&gt;&lt;g class=&quot;mark-rule role-axis-domain&quot; pointer-events=&quot;none&quot;&gt;&lt;line transform=&quot;translate(0,0)&quot; x2=&quot;640&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;/g&gt;&lt;g class=&quot;mark-text role-axis-title&quot; pointer-events=&quot;none&quot;&gt;&lt;text text-anchor=&quot;middle&quot; transform=&quot;translate(320,37)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;15px&quot; font-weight=&quot;bold&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;stream position (millions of samples)&lt;/text&gt;&lt;/g&gt;&lt;/g&gt;&lt;path class=&quot;foreground&quot; aria-hidden=&quot;true&quot; d=&quot;&quot; pointer-events=&quot;none&quot; display=&quot;none&quot;/&gt;&lt;/g&gt;&lt;/g&gt;&lt;g class=&quot;mark-group role-axis&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;axis&quot; aria-label=&quot;Y-axis titled &apos;magnitude factor / measured drift&apos; for a log scale with values from 1e-12 to 1e+16&quot;&gt;&lt;g transform=&quot;translate(0.5,0.5)&quot;&gt;&lt;path class=&quot;background&quot; aria-hidden=&quot;true&quot; d=&quot;M0,0h0v0h0Z&quot; pointer-events=&quot;none&quot;/&gt;&lt;g&gt;&lt;g class=&quot;mark-rule role-axis-tick&quot; pointer-events=&quot;none&quot;&gt;&lt;line transform=&quot;translate(0,360)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,334)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,309)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,283)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,257)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,231)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,206)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,180)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,154)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,129)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,103)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,77)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,51)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,26)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;line transform=&quot;translate(0,0)&quot; x2=&quot;-5&quot; y2=&quot;0&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;/g&gt;&lt;g class=&quot;mark-text role-axis-label&quot; pointer-events=&quot;none&quot;&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,364)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;14px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;1e-12&lt;/text&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,338.2857142857143)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;14px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;1e-10&lt;/text&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,312.5714285714286)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;14px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;1e-8&lt;/text&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,286.85714285714283)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;14px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;0.000001&lt;/text&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,261.1428571428571)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;14px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;0.0001&lt;/text&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,235.42857142857142)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;14px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;0.01&lt;/text&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,209.7142857142857)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;14px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;1&lt;/text&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,184)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;14px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;100&lt;/text&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,158.28571428571425)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;14px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;10,000&lt;/text&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,132.57142857142858)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;14px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;1,000,000&lt;/text&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,106.85714285714285)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;14px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;100,000,000&lt;/text&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,81.14285714285715)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;14px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;10,000,000,000&lt;/text&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,55.428571428571445)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;14px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;1e+12&lt;/text&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,29.714285714285744)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;14px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;1e+14&lt;/text&gt;&lt;text text-anchor=&quot;end&quot; transform=&quot;translate(-7,4)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;14px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;1e+16&lt;/text&gt;&lt;/g&gt;&lt;g class=&quot;mark-rule role-axis-domain&quot; pointer-events=&quot;none&quot;&gt;&lt;line transform=&quot;translate(0,360)&quot; x2=&quot;0&quot; y2=&quot;-360&quot; stroke=&quot;#8a8f98&quot; stroke-width=&quot;1&quot; opacity=&quot;1&quot;/&gt;&lt;/g&gt;&lt;g class=&quot;mark-text role-axis-title&quot; pointer-events=&quot;none&quot;&gt;&lt;text text-anchor=&quot;middle&quot; transform=&quot;translate(-128.60000610351562,180) rotate(-90) translate(0,-3)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;15px&quot; font-weight=&quot;bold&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;magnitude factor / measured drift&lt;/text&gt;&lt;/g&gt;&lt;/g&gt;&lt;path class=&quot;foreground&quot; aria-hidden=&quot;true&quot; d=&quot;&quot; pointer-events=&quot;none&quot; display=&quot;none&quot;/&gt;&lt;/g&gt;&lt;/g&gt;&lt;g class=&quot;mark-rect role-mark layer_0_marks&quot; role=&quot;graphics-object&quot; aria-roledescription=&quot;rect mark container&quot;&gt;&lt;path aria-label=&quot;x0: 60; x1: 63.6&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;rect mark&quot; d=&quot;M240,0h14.400000000000006v360h-14.400000000000006Z&quot; fill=&quot;#d55e00&quot; opacity=&quot;0.12&quot;/&gt;&lt;/g&gt;&lt;g class=&quot;mark-group role-scope layer_1_pathgroup&quot; role=&quot;graphics-object&quot; aria-roledescription=&quot;group mark container&quot;&gt;&lt;g transform=&quot;translate(0,0)&quot;&gt;&lt;path class=&quot;background&quot; aria-hidden=&quot;true&quot; d=&quot;M0,0h640v360h-640Z&quot;/&gt;&lt;g&gt;&lt;g class=&quot;mark-line role-mark layer_1_marks&quot; role=&quot;graphics-object&quot; aria-roledescription=&quot;line mark container&quot;&gt;&lt;path aria-label=&quot;stream position (millions of samples): 0.032; magnitude factor / measured drift: 69262300; series: global T★ envelope&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;line mark&quot; d=&quot;M0.128,104.908L1.048,104.908L2.088,104.908L3.12,104.908L4.16,104.908L5.192,104.908L6.312,92.558L7.272,92.558L8.304,92.558L9.344,92.558L10.376,92.558L11.416,92.558L13.44,85.07L13.488,85.07L14.528,85.07L15.56,85.07L16.6,85.07L17.64,85.07L19.432,76.382L19.712,76.382L20.744,76.382L21.784,76.382L22.824,76.382L23.856,76.382L24.896,76.382L25.928,76.382L26.968,76.382L28.008,76.382L29.04,76.382L30.08,76.382L31.112,76.382L32.152,76.382L33.192,76.382L34.224,76.382L35.864,51.486L36.296,51.486L37.336,51.486L38.376,51.486L39.408,51.486L40.448,51.486L41.48,51.486L42.52,51.486L43.56,51.486L44.592,51.486L45.632,51.486L46.664,51.486L47.704,51.486L48.744,51.486L49.776,51.486L50.816,51.486L51.848,51.486L52.888,51.486L53.928,51.486L54.96,51.486L56,51.486L57.032,51.486L58.072,51.486L59.112,51.486L60.144,51.486L61.184,51.486L62.216,51.486L63.256,51.486L64.288,51.486L65.328,51.486L66.368,51.486L67.4,51.486L68.44,51.486L69.472,51.486L70.512,51.486L71.552,51.486L72.584,51.486L73.624,51.486L74.656,51.486L75.696,51.486L76.736,51.486L77.768,51.486L78.808,51.486L79.84,51.486L80.88,51.486L81.92,51.486L82.952,51.486L83.992,51.486L85.024,51.486L86.064,51.486L87.104,51.486L88.136,51.486L89.176,51.486L90.208,51.486L91.248,51.486L92.288,51.486L93.32,51.486L94.36,51.486L95.392,51.486L96.432,51.486L97.472,51.486L98.504,51.486L99.544,51.486L100.576,51.486L101.616,51.486L102.656,51.486L103.688,51.486L104.728,51.486L105.76,51.486L106.8,51.486L107.84,51.486L108.872,51.486L109.912,51.486L110.944,51.486L111.984,51.486L113.024,51.486L114.056,51.486L115.096,51.486L116.128,51.486L117.168,51.486L118.208,51.486L119.336,49.937L120.28,49.937L121.312,49.937L122.352,49.937L123.392,49.937L124.424,49.937L125.464,49.937L126.496,49.937L127.536,49.937L128.568,49.937L129.608,49.937L130.648,49.937L131.68,49.937L132.72,49.937L133.752,49.937L134.792,49.937L135.832,49.937L136.864,49.937L137.904,49.937L138.936,49.937L139.976,49.937L141.016,49.937L142.048,49.937L143.088,49.937L144.12,49.937L145.16,49.937L146.2,49.937L147.232,49.937L148.272,49.937L149.304,49.937L150.344,49.937L151.384,49.937L152.416,49.937L153.456,49.937L154.488,49.937L155.528,49.937L156.568,49.937L157.6,49.937L158.64,49.937L159.672,49.937L160.712,49.937L161.752,49.937L162.784,49.937L163.824,49.937L164.856,49.937L165.896,49.937L166.936,49.937L167.968,49.937L169.008,49.937L170.04,49.937L171.08,49.937L172.12,49.937L173.152,49.937L174.192,49.937L175.224,49.937L176.264,49.937L177.304,49.937L178.336,49.937L179.376,49.937L180.408,49.937L181.448,49.937L182.488,49.937L183.52,49.937L184.56,49.937L185.592,49.937L186.632,49.937L187.664,49.937L188.704,49.937L189.744,49.937L190.776,49.937L191.816,49.937L192.848,49.937L193.888,49.937L194.928,49.937L195.96,49.937L197,49.937L198.032,49.937L199.072,49.937L200.112,49.937L201.144,49.937L202.184,49.937L203.216,49.937L204.256,49.937L205.296,49.937L206.328,49.937L207.368,49.937L208.4,49.937L209.44,49.937L210.48,49.937L211.512,49.937L212.552,49.937L213.584,49.937L214.624,49.937L215.664,49.937L216.696,49.937L217.736,49.937L218.768,49.937L219.808,49.937L220.848,49.937L221.88,49.937L222.92,49.937L223.952,49.937L225.768,46.7L226.032,46.7L227.064,46.7L228.104,46.7L229.136,46.7L230.176,46.7L231.216,46.7L232.248,46.7L233.288,46.7L234.32,46.7L235.36,46.7L236.4,46.7L237.432,46.7L238.472,46.7L239.984,18.477L240.544,18.477L241.584,18.477L242.616,18.477L243.656,18.477L244.688,18.477L245.728,18.477L246.872,18L247.8,18L248.84,18L249.872,18L250.912,18L251.944,18L252.984,18L254.024,18L255.056,18L256.096,18L257.128,18L258.168,18L259.208,18L260.24,18L261.28,18L262.312,18L263.352,18L264.392,18L265.424,18L266.464,18L267.496,18L268.536,18L269.576,18L270.608,18L271.648,18L272.68,18L273.72,18L274.76,18L275.792,18L276.832,18L277.864,18L278.904,18L279.944,18L280.976,18L282.016,18L283.048,18L284.088,18L285.128,18L286.16,18L287.2,18L288.232,18L289.272,18L290.312,18L291.344,18L292.384,18L293.416,18L294.456,18L295.496,18L296.528,18L297.568,18L298.6,18L299.64,18L300.68,18L301.712,18L302.752,18L303.784,18L304.824,18L305.864,18L306.896,18L307.936,18L308.968,18L310.008,18L311.04,18L312.08,18L313.12,18L314.152,18L315.192,18L316.224,18L317.264,18L318.304,18L319.336,18L320.376,18L321.408,18L322.448,18L323.488,18L324.52,18L325.56,18L326.592,18L327.632,18L328.672,18L329.704,18L330.744,18L331.776,18L332.816,18L333.856,18L334.888,18L335.928,18L336.96,18L338,18L339.04,18L340.072,18L341.112,18L342.144,18L343.184,18L344.224,18L345.256,18L346.296,18L347.328,18L348.368,18L349.408,18L350.44,18L351.48,18L352.512,18L353.552,18L354.592,18L355.624,18L356.664,18L357.696,18L358.736,18L359.776,18L360.808,18L361.848,18L362.88,18L363.92,18L364.96,18L365.992,18L367.032,18L368.064,18L369.104,18L370.144,18L371.176,18L372.216,18L373.248,18L374.288,18L375.32,18L376.36,18L377.4,18L378.432,18L379.472,18L380.504,18L381.544,18L382.584,18L383.616,18L384.656,18L385.688,18L386.728,18L387.768,18L388.8,18L389.84,18L390.872,18L391.912,18L392.952,18L393.984,18L395.024,18L396.056,18L397.096,18L398.136,18L399.168,18L400.208,18L401.24,18L402.28,18L403.32,18L404.352,18L405.392,18L406.424,18L407.464,18L408.504,18L409.536,18L410.576,18L411.608,18L412.648,18L413.688,18L414.72,18L415.76,18L416.792,18L417.832,18L418.872,18L419.904,18L420.944,18L421.976,18L423.016,18L424.056,18L425.088,18L426.128,18L427.16,18L428.2,18L429.24,18L430.272,18L431.312,18L432.344,18L433.384,18L434.424,18L435.456,18L436.496,18L437.528,18L438.568,18L439.6,18L440.64,18L441.68,18L442.712,18L443.752,18L444.784,18L445.824,18L446.864,18L447.896,18L448.936,18L449.968,18L451.008,18L452.048,18L453.08,18L454.12,18L455.152,18L456.192,18L457.232,18L458.264,18L459.304,18L460.336,18L461.376,18L462.416,18L463.448,18L464.488,18L465.52,18L466.56,18L467.6,18L468.632,18L469.672,18L470.704,18L471.744,18L472.784,18L473.816,18L474.856,18L475.888,18L476.928,18L477.968,18L479,18L480.04,18L481.072,18L482.112,18L483.152,18L484.184,18L485.224,18L486.256,18L487.296,18L488.336,18L489.368,18L490.408,18L491.44,18L492.48,18L493.52,18L494.552,18L495.592,18L496.624,18L497.664,18L498.696,18L499.736,18L500.776,18L501.808,18L502.848,18L503.88,18L504.92,18L505.96,18L506.992,18L508.032,18L509.064,18L510.104,18L511.144,18L512.176,18L513.216,18L514.248,18L515.288,18L516.328,18L517.36,18L518.4,18L519.432,18L520.472,18L521.512,18L522.544,18L523.584,18L524.616,18L525.656,18L526.696,18L527.728,18L528.768,18L529.8,18L530.84,18L531.88,18L532.912,18L533.952,18L534.984,18L536.024,18L537.064,18L538.096,18L539.136,18L540.168,18L541.208,18L542.248,18L543.28,18L544.32,18L545.352,18L546.392,18L547.432,18L548.464,18L549.504,18L550.536,18L551.576,18L552.616,18L553.648,18L554.688,18L555.72,18L556.76,18L557.8,18L558.832,18L559.872,18L560.904,18L561.944,18L562.976,18L564.016,18L565.056,18L566.088,18L567.128,18L568.16,18L569.2,18L570.24,18L571.272,18L572.312,18L573.344,18L574.384,18L575.424,18L576.456,18L577.496,18L578.528,18L579.568,18L580.608,18L581.64,18L582.68,18L583.712,18L584.752,18L585.792,18L586.824,18L587.864,18L588.896,18L589.936,18L590.976,18L592.008,18L593.048,18L594.08,18L595.12,18L596.16,18L597.192,18L598.232,18L599.264,18L600.304,18L601.344,18L602.376,18L603.416,18L604.448,18L605.488,18L606.528,18L607.56,18L608.6,18L609.632,18L610.672,18L611.712,18L612.744,18L613.784,18L614.816,18L615.856,18L616.896,18L617.928,18L618.968,18L620,18L621.04,18&quot; stroke=&quot;#e69f00&quot; stroke-width=&quot;2&quot; stroke-dasharray=&quot;1,0&quot;/&gt;&lt;/g&gt;&lt;/g&gt;&lt;path class=&quot;foreground&quot; aria-hidden=&quot;true&quot; d=&quot;&quot; display=&quot;none&quot;/&gt;&lt;/g&gt;&lt;g transform=&quot;translate(0,0)&quot;&gt;&lt;path class=&quot;background&quot; aria-hidden=&quot;true&quot; d=&quot;M0,0h640v360h-640Z&quot;/&gt;&lt;g&gt;&lt;g class=&quot;mark-line role-mark layer_1_marks&quot; role=&quot;graphics-object&quot; aria-roledescription=&quot;line mark container&quot;&gt;&lt;path aria-label=&quot;stream position (millions of samples): 0.032; magnitude factor / measured drift: 39986900; series: local T_local envelope&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;line mark&quot; d=&quot;M0.128,107.975L1.344,105.318L2.48,126.659L3.936,113.582L4.736,119.631L6.048,122.674L6.312,92.558L8.016,125.291L8.968,118.291L9.712,117.44L11.08,117.265L12.216,132.707L13.432,88.38L14.144,106.56L15.552,120.298L15.664,113.635L16.96,118.521L18.072,104.34L19.432,76.382L19.72,120.851L21.2,111.256L22.808,112.644L23.368,102.053L24.544,119.299L25.304,121.18L26.272,125.218L27.976,117.465L28.952,132.707L29.64,134.305L30.368,124.793L31.736,113.497L32.968,119.456L33.512,87.389L35.176,121.807L35.864,51.486L36.824,102.838L38.152,88.561L38.832,127.09L39.68,100.496L41.056,103.495L41.672,65.987L42.848,122.284L44.128,60.266L45.248,109.974L46.08,115.013L47.608,110.28L47.968,118.359L49.456,126.57L50.776,81.393L51.368,106.346L51.888,98.367L53.544,122.568L54.136,61.806L55.072,105.046L56.312,128.194L57.216,86.876L58.144,131.73L60,71.056L60.984,98.167L61.2,90.877L62.312,127.554L63.84,101.383L65.28,120.84L66.288,132.678L67.296,76.259L67.808,109.29L69.216,103.226L70.216,117.515L70.512,134.509L72.536,121.134L72.936,129.414L73.672,66.418L74.808,124.134L76.36,121.512L77.184,123.02L78.296,117.867L79.32,92.048L80.6,122.669L81.576,123.55L82.12,95.695L83.552,110.893L84.016,73.092L85.744,94.09L86.288,94.664L87.68,84.082L88.296,108.053L89.208,117.703L90.536,109.443L92.032,115.962L92.4,81.01L94.232,122.271L94.736,100.379L95.896,132.52L97.344,112.488L98.096,109.384L98.944,122.72L99.944,105.957L101.168,96.054L102.512,106.592L103.664,72.946L103.72,53.054L105.184,113.638L106.72,99.23L107.744,113.784L108.152,101.218L109.792,94.71L110.016,119.875L111.68,101.081L112.192,96.912L113.968,80.813L114.872,76.025L116,117.421L116.224,91.726L117.536,101.788L118.288,85.055L119.336,49.937L121.024,117.132L121.688,123.571L122.688,97.778L123.392,127.859L125.248,115.523L126.28,87.491L126.856,111.214L127.672,124.086L129.368,125.596L130.608,104.846L130.904,106.791L131.88,99.123L133.272,128.262L134.176,110.215L135.472,96.505L136.536,79.465L137.024,112.648L138.16,125.369L139.2,133.513L140.568,132.395L141.464,117.562L142.48,99.181L144.056,114.971L144.496,121.125L145.672,111.145L146.448,108.972L147.84,112.837L149.16,118.941L150.072,117.133L150.984,118.801L151.48,110.075L152.496,97.153L153.496,100.35L154.52,125.188L155.96,120.562L156.744,122.799L157.76,123.58L159.304,109.433L160.696,81.184L161.288,111.169L162.352,115.647L163.72,118.029L164.584,111.285L165.608,88L166.128,129.396L167.952,90.059L167.968,114.616L169.544,104.942L170.816,109.343L171.896,110.839L172.528,66.292L173.752,103.868L174.816,94.635L175.992,123.032L176.696,106.73L178.208,112.064L178.864,109.883L180.4,110.813L181.344,127.869L182.296,108.515L182.56,99.157L184.368,103.144L184.576,73.623L186.608,106.942L186.984,122.128L188.624,75.904L189.056,93.938L190.2,117.532L190.808,83.547L192.448,129.278L192.952,127.16L194.4,108.002L195.568,77.879L196.696,69.142L197.28,98.109L198.88,87.45L199.832,123.184L200.312,101.321L201.872,116.607L202.232,94.032L203.728,112.471L204.504,111.123L206.144,123.301L207.344,119.933L207.4,103.023L209.32,113.317L209.808,113.345L211.496,100.774L212.392,103.462L212.832,113.828L214.28,102.337L215.64,114.119L216.344,94.223L217.088,105.656L218.016,101.442L219.48,112.868L219.944,124.879L221.496,111.694L222.88,100.519L223.256,108.964L223.968,127.075L225.768,46.7L226.576,82.132L227.256,109.198L228.68,88.431L229.248,99.652L230.656,70.219L232.048,83L232.752,118.828L233.424,111.379L234.544,122.349L235.416,107.448L236.688,87.624L238.408,106.724L238.936,116.276L240.024,20.242L240.632,23.237L242.344,46.626L242.704,44.555L244.536,38.225L245.664,51.537L246.752,61.851L247.472,46.663L248.528,46.987L249,68.508L250.288,23.808L251.48,53.11L252.616,62.266L253.208,72.959L254.28,18.326L255.952,54.613L256.592,46.382L257.52,74.761L258.776,64.752L259.616,54.39L260.936,54.085L261.792,53.331L263.256,61.364L264.072,70.626L264.696,38.815L266.224,40.719L266.632,75.539L267.92,86.701L269.056,26.715L270.2,73.055L270.776,52.395L272.304,65.553L273.656,57.666L273.76,66.832L275.688,34.441L275.816,49.018L277.832,57.01L278.504,83.516L279.464,50.257L280.104,99.803L281.328,77.111L282.568,58.458L283.824,61.974L284.864,67.851L285.44,65.808L286.824,75.192L287.808,72.529L289,79.25L289.312,65.055L290.76,76.339L291.784,73.184L293.064,78.295L293.992,65.048L294.968,87.997L295.792,61.969L297.32,69.496L298.072,62.187L298.736,71.844L300.336,67.693L301.6,53.558L301.768,40.915L302.776,92.872L304.696,81.394L304.952,83.877L306.816,83.137L307.224,44.173L308.152,73.146L309.84,72.983L310.864,56.967L311.24,58.588L312.784,64.003L313.152,90.727L314.632,96.222L315.936,66.984L316.832,54.272L317.48,77.989L319,74.93L320.144,77.275L320.728,59.735L321.752,56.623L322.872,63.765L323.72,52.74L324.768,57.791L325.848,71.821L327.296,74.078L327.992,43.003L329.008,79.277L330.264,84.209L331.04,65.521L332.296,74.804L333.448,73.375L333.872,94.445L335.336,83.754L336.824,75.965L337.136,73.834L339,66.001L339.872,70.423L341.056,93.323L341.672,59.135L342.504,49.336L343.24,86.419L344.704,71.127L345.44,95.166L346.392,95.372L348.04,83.509L348.672,90.496L349.416,82.057L351.16,75.958L351.656,82.119L352.88,59.477L353.848,95.411L355.464,74.729L356.216,91.229L357.52,73.275L358.344,107.774L359.024,86.944L359.816,61.66L360.976,93.269L362.112,66.228L363.528,70.673L364.856,99.111L365.6,93.03L366.36,89.648L368.056,81.817L368.2,62.749L369.848,78.945L370.52,86.885L371.952,82.822L372.552,93.075L374.088,74.772L375.088,79.426L376.168,82.275L376.376,76.01L378.12,77.541L378.792,73.756L379.736,49.483L381.208,93.712L381.696,78.533L382.712,82.363L384.192,57.456L384.864,73.195L386.528,69.149L387.16,82.678L388,50.715L389.472,62.509L390.416,88.453L391.64,72.205L392.032,51.706L393.432,92.634L394.52,52.773L395.52,82.788L396.368,73.235L397.712,100.438L398.184,70.711L400.104,81.698L400.36,95.191L402.056,77.84L402.288,74.648L403.832,85.879L405,106.844L405.824,96.915L406.448,120.758L407.576,83.747L408.888,42.569L410.184,87.987L410.864,75.031L412.472,60.672L413.256,109.702L414.264,94.069L415.064,77.794L415.784,31.794L417.28,65.839L418.024,86.594L419.312,65.701L419.936,80.618L421.6,101.981L422.648,96.939L423.76,88.638L424.816,65.711L425.952,78.984L426.528,100.126L427.376,72.569L429.2,95.779L429.328,80.418L430.64,82.446L432.32,89.754L432.384,88.971L434.168,104.47L435.344,100.866L435.456,98.133L436.552,87.783L438.272,95.641L439.336,85.834L440.232,86.196L441.608,88.517L442.48,73.199L442.752,68.184L444.616,55.711L444.92,77.89L446.328,64.119L447.128,94.7L448.056,103.037L449.92,101.62L450.304,33.683L451.664,68.808L452.384,92.821L453.456,89.131L454.416,98.568L455.512,88.805L456.384,93.776L457.632,94.915L458.28,77.586L459.616,59.904L460.416,73.499L462.12,107.979L462.776,76.33L463.528,110.545L464.504,87.156L466.392,87.216L467.44,101.059L468.576,105.781L468.944,107.341L470.56,52.364L471.392,74.976L472.584,101.794L472.864,97.339L474.056,92.283L475.456,61L476.368,89.711L477.376,95.373L478.744,104.6L479.936,82.486L480.672,82.183L481.912,124.129L483.008,84.925L483.48,98.524L484.272,107.75L485.424,82.893L486.704,90.825L487.344,74.773L488.336,79.356L489.88,87.779L490.56,99.283L492.016,91.036L493.152,92.908L493.6,46.347L495.2,101.387L495.952,113.228L497.384,93.74L497.84,101.642L499.112,86.151L499.984,84.179L500.848,107.023L501.976,77.519L503.56,112.786L504.232,116.466L505.264,90.345L506.456,81.741L507.44,87.013L508.048,110.467L510.08,75.669L510.52,86.748L511.888,91.327L512.672,48.216L513.4,79.853L514.76,92.913L515.4,85.216L517.2,88.394L518.336,87.396L518.736,92.646L519.792,106.249L521.248,76.498L521.672,92.543L523.424,46.027L524.52,102.655L525.096,108.453L526.112,64.248L527.368,86.676L528.232,72.484L528.912,91.823L530.712,88.818L531.272,79.387L532.904,96.108L533.216,71.32L534.176,103.27L535.088,88.208L536.024,109.812L537.528,95.583L538.376,82.835L539.72,118.283L541.168,66L541.472,89.881L543.08,93.113L543.912,80.398L545.168,91.207L545.84,71.052L547.176,79.156L548.24,93.885L549.104,97.138L550.328,55.437L551.04,94.985L552.496,93.696L552.88,99.447L554.608,87.032L555.384,100.69L555.72,97.942L557.48,94.438L558.056,101.481L559.656,26.25L559.944,70.47L561.216,67.379L562.024,80.085L563.296,90.008L564.88,93.382L565.072,82.481L566.12,53.213L567.8,106.635L569.072,98.621L569.824,80.638L570.552,81.05L571.976,72.077L572.912,88.791L573.472,79.134L574.88,92.953L575.872,88.401L576.456,43.367L577.696,63.3L579.016,69.497L580.352,109.989L581.24,89.409L582.336,82.504L583.496,85.052L584.504,93.75L585.096,83.675L585.808,101.619L587.248,81.626L587.896,82.723L589.792,105.42L590.496,93.423L591.576,92.703L592.168,89.959L594.008,81.717L594.272,99.541L595.28,19.195L596.448,113.231L597.592,104.224L598.392,66.269L599.8,83.857L601.072,68.949L601.52,102.28L603.056,93.396L604.432,105.428L605.16,60.261L605.68,115.249L606.8,98.446L608.152,116.211L608.952,77.274L610.424,117.394L611.656,78.03L612.04,95.914L613.656,73.844L613.784,90.058L615.76,92.27L616.88,102.287L616.992,90.284L618.2,84.554L619.256,37.694L620.672,105.024L621.728,78.934&quot; stroke=&quot;#56b4e9&quot; stroke-width=&quot;2&quot; stroke-dasharray=&quot;6,3&quot;/&gt;&lt;/g&gt;&lt;/g&gt;&lt;path class=&quot;foreground&quot; aria-hidden=&quot;true&quot; d=&quot;&quot; display=&quot;none&quot;/&gt;&lt;/g&gt;&lt;g transform=&quot;translate(0,0)&quot;&gt;&lt;path class=&quot;background&quot; aria-hidden=&quot;true&quot; d=&quot;M0,0h640v360h-640Z&quot;/&gt;&lt;g&gt;&lt;g class=&quot;mark-line role-mark layer_1_marks&quot; role=&quot;graphics-object&quot; aria-roledescription=&quot;line mark container&quot;&gt;&lt;path aria-label=&quot;stream position (millions of samples): 0.048; magnitude factor / measured drift: 1.22236e-9; series: measured drift&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;line mark&quot; d=&quot;M0.192,320.307L1.464,314.831L2.664,316.177L3.736,310.215L4.48,319.562L5.896,309.876L6.312,296.34L7.864,316.709L8.968,302.044L9.496,322.571L10.768,315.691L12.32,317.298L13.432,295.479L13.616,302.474L15.112,317.617L16.392,320.866L17.376,316.437L18.072,290.863L19.432,267.64L19.72,314.085L21.4,311.821L21.952,315.691L23.368,301.228L24.544,310.215L25.304,301.228L26.488,309.557L27.232,312.839L28.184,315.869L29.72,316.177L30.496,322.985L31.128,306.344L32.968,305.61L33.512,307.09L34.48,317.955L35.864,233.653L36.824,314.262L38.152,301.816L39.096,314.635L40.208,311.821L40.576,298.432L42.304,290.863L43.448,312.181L44.128,251.348L45.432,310.215L46.224,309.557L47.28,301.228L47.992,305.385L49.456,306.344L50.776,281.344L51.368,294.733L51.888,308.437L53.88,311.593L54.136,251.82L55.136,307.293L56.216,324.45L57.216,279.165L58.4,323.432L60,291.942L60.984,297.358L61.2,273.117L62.312,312.98L63.84,310.96L64.88,320.58L65.896,324.45L67.296,299.763L67.72,306.705L69.216,291.223L70.216,307.951L70.952,318.701L72.536,307.332L72.92,316.996L74.16,316.437L74.8,310.96L75.72,320.307L77.448,300.21L78.696,316.437L79.008,304.08L80.816,314.445L81.344,307.09L82.12,276.127L83.552,306.344L84.016,256.775L85.712,309.255L86.288,306.834L87.68,274.961L88.608,303.852L89.432,309.876L91.056,298.872L92.024,307.09L92.688,277.473L94.16,312.839L95.16,311.268L96.176,311.821L96.72,312.839L98.04,306.344L98.784,310.215L99.944,300.21L101.552,308.969L101.72,306.006L103.632,276.701L103.824,254.254L105.184,300.21L106.72,290.863L107.128,312.435L108.152,288.836L109.464,305.098L110.32,307.09L111.376,322.775L112.192,302.474L113.496,307.178L114.872,281.218L116.072,304.08L116.912,294.866L117.552,308.188L118.256,304.08L119.336,270.406L121.024,306.344L121.688,304.318L122.456,298.781L124.024,311.374L124.608,312.059L125.752,294.733L126.992,325.696L127.672,310.215L129.368,306.366L130.608,288.599L130.904,293.719L131.88,299.982L133.272,307.504L134.176,298.964L135.472,286.992L136.536,281.096L136.896,295.786L138,315.691L139.2,317.617L140.72,319.562L141.24,321.168L142.264,311.374L143.536,310.764L144.344,314.831L145.672,312.059L146.36,303.423L148.152,311.821L148.584,314.831L149.952,312.307L150.52,308.969L152,306.705L152.496,302.387L153.512,310.215L154.648,315.929L155.96,304.08L157.272,311.163L157.88,307.723L158.656,309.557L160.696,270.407L161.496,314.445L161.816,311.374L162.936,310.215L164.808,302.928L165.472,298.604L165.928,312.059L167.952,284.728L167.968,296.34L169.24,302.474L170.16,313.427L171.896,295.479L172.528,256.029L173.8,296.34L174.816,292.469L176,311.538L176.672,296.825L177.344,296.825L178.616,306.846L180.4,297.985L181.192,313.427L182.296,291.608L182.56,283.868L183.944,301.663L184.768,298.083L186.456,296.34L186.632,319.115L188.32,284.728L189.056,279.252L190.672,311.821L190.808,266.291L192.448,315.576L193.576,320.58L194.704,317.955L195.728,288.152L196.696,259.9L197.28,281.876L198.88,305.687L200.048,313.427L200.504,304.826L201.872,305.098L202.232,279.252L203.832,317.617L204.688,319.562L206.144,302.834L206.872,312.059L207.4,294.733L208.4,323.432L209.48,310.215L210.552,315.464L212.392,290.863L212.832,296.001L214.408,296.34L215.64,303.245L216.344,292.768L217.624,321.826L218.016,311.821L219.48,298.204L220.264,312.839L221.496,302.474L222.88,288.599L223.256,298.604L224.352,318.701L225.768,268.001L226.328,306.894L227.928,308.831L228.68,298.604L229.752,322.775L230.936,312.028L232.048,275.381L232.64,313.913L234.104,311.163L234.544,310.215L235.704,300.648L237.104,314.085L238.408,310.215L238.936,306.466L240.048,219.719L240.632,223.82L242.504,243.172L242.704,251.56L243.896,231.921L244.968,249.667L245.936,270.059L247.264,243.928L248.528,251.501L249.456,270.7L250.288,261.278L251.592,251.659L252.616,252.076L253.048,275.475L254.28,232.807L255.664,263.727L256.216,264.417L257.736,278.285L258.776,250.255L259.616,248.289L260.448,267.218L261.784,256.029L263.256,253.615L264.2,275.141L264.472,265.991L266.024,236.298L266.512,285.035L267.872,290.261L269.144,293.173L270.056,268.065L270.776,239.89L271.704,271.9L272.928,276.095L274.72,279.78L275.688,238.461L275.816,243.459L277.64,281.05L278.792,280.228L279.32,274.724L280.664,289.871L281.944,280.8L282.632,263.067L283.344,252.806L284.864,265.464L285.552,263.514L286.568,265.717L287.736,275.381L288.976,281.328L289.312,263.947L290.76,278.592L291.52,292.469L293.064,282.877L293.992,251.526L294.56,294.733L295.792,259.9L297.32,258.921L297.848,293.375L299.624,273.888L300.672,271.247L301.6,244.059L301.752,281.876L302.776,289.867L304.136,298.941L305.08,278.905L306.64,269.378L307.224,242.154L308.144,293.81L309.84,284.728L310.176,292.469L311.24,250.674L312.128,275.381L314.12,300.696L314.808,290.071L315.256,303.742L316.344,270.317L317.968,293.967L318.576,279.612L320.36,288.512L321.2,282.941L321.752,242.487L322.872,250.913L323.72,248.289L324.768,252.159L326.352,279.273L326.864,306.006L327.992,252.03L329.008,283.436L330.256,289.687L331.376,289.617L332.808,282.738L333.448,263.77L334.176,295.806L335.624,296.34L336.824,273.909L337.168,273.603L338.592,286.992L339.352,309.876L340.104,294.535L341.368,288.045L342.504,240.548L343.84,310.764L344.704,277.733L345.44,283.122L347.32,289.812L347.752,292.707L348.616,308.249L350.16,288.179L351.16,265.376L352.128,289.361L352.88,251.501L354.576,280.903L355.384,290.863L356.272,309.557L357.048,289.617L357.984,308.696L359.024,276.127L359.864,269.078L360.976,283.132L362.112,258.075L363.528,289.445L364.4,297.644L365.36,312.059L366.192,286.492L367.112,270.621L369.088,274.394L369.248,272.511L370.52,273.898L371.432,274.205L372.68,291.811L374.088,302.135L375.088,279.165L376.184,283.968L376.376,284.281L378.12,293.758L378.464,285.746L379.736,292.383L380.512,289.453L382.048,292.363L382.712,275.381L384.192,250.02L384.864,258.739L386.528,296.34L387.16,272.672L387.784,298.918L389.472,248.289L390.416,271.511L391.64,258.09L392.68,279.117L393.136,281.964L394.52,281.472L395.984,290.691L396.824,264.426L397.712,283.672L399.008,278.832L400.144,273.93L401.12,285.391L401.344,298.604L402.288,296.873L403.832,275.084L405,300.268L406.344,313.747L406.544,306.344L407.944,289.617L409.2,251.487L409.72,287.353L411.48,286.234L411.832,290.382L413.584,310.107L414.264,292.707L415.064,271.688L415.784,255.857L416.864,299.462L418.024,277.651L419.544,292.022L420.752,306.344L421.896,304.826L423,310.764L423.256,301.588L424.816,254.714L426.072,295.688L426.528,301.228L427.376,257.521L429.064,314.539L429.672,301.663L431.232,290.863L432.32,283.122L433.16,290.352L434.264,303.66L434.992,305.648L435.48,317.298L437.192,286.992L438.336,306.344L439.4,283.311L440.512,296.224L441.672,283.968L442.48,262.039L442.752,261.521L444.616,268.97L445.12,302.474L446.328,263.77L447.128,293.487L448.056,292.283L449.464,294.733L450.584,300.21L451.672,263.598L452.36,285.886L453.904,310.392L454.416,285.073L455.512,280.858L456.384,298.224L457.992,300.696L458.28,266.598L459.616,256.029L461.072,270.059L462.384,314.085L462.776,263.77L463.528,298.604L465.144,304.08L465.544,302.26L467.416,319.562L467.728,301.124L469.576,307.09L470.032,301.396L471.392,285.712L472.384,295.479L472.808,298.56L474.048,310.215L475.728,294.733L476.368,268.386L477.376,285.381L478.568,292.498L479.936,271.361L481.016,286.992L481.432,317.955L483.104,286.992L483.48,289.085L484.272,308.031L485.424,308.696L486.704,278.006L487.344,265.048L488.336,303.633L490.368,287.142L490.856,310.764L492.016,274.762L492.84,310.437L493.6,239.372L495.2,294.733L496.392,309.557L496.84,297.358L498.048,300.059L499.088,312.435L500.744,308.437L501.424,304.826L501.976,269.484L503.56,301.316L504.48,312.839L505.264,287.353L506.456,269.271L507.44,291.608L508.856,311.163L509.464,286.992L510.52,279.252L511.24,305.098L512.672,281.876L513.952,314.085L514.76,289.617L515.432,290.731L516.448,283.482L517.52,310.96L518.544,298.517L519.912,309.557L521.024,314.085L521.768,283.809L523.424,307.951L524.52,312.567L525.616,300.357L526.112,254.544L527.368,272.256L527.88,308.437L528.84,290.863L529.936,317.298L531.272,267.64L531.952,298.604L533.176,306.399L534.688,295.479L535.304,306.477L536.192,298.103L537.528,286.344L538.496,270.451L539.4,312.839L541.168,259.9L541.472,293.774L543.08,283.39L543.528,316.996L544.544,297.463L545.84,256.775L547.176,280.329L548.24,317.955L548.824,307.951L550.328,244.719L551.04,277.473L552.496,283.122L553.376,295.479L554.608,276.788L554.776,318.316L556.68,297.358L557.584,291.728L558.056,302.474L559.656,278.292L559.944,261.565L561.744,267.64L562.696,280.729L563.296,312.839L565.04,279.252L565.072,300.21L566.12,249.157L567.392,304.08L569.072,290.863L569.824,273.603L570.656,300.547L571.96,323.432L572.888,302.474L573.472,290.787L574.88,283.299L576.048,299.3L577.048,267.64L577.728,301.974L579.016,271.22L580.032,300.21L580.976,294.978L582.232,289.069L583.352,317.259L583.856,309.11L585.096,283.299L586.184,302.562L587.128,304.198L588.584,279.252L589.8,304.08L590.472,285.375L591.472,300.486L592.168,295.766L594.008,275.454L595.048,306.41L595.28,259.9L596.448,306.894L597.608,308.969L598.392,261.278L599.4,273.176L601.04,288.013L601.52,296.34L602.672,284.728L604.432,292.036L605.16,264.417L605.512,313.747L606.648,303.22L607.84,301.228L608.952,264.516L609.912,318.316L610.992,290.443L612.04,283.122L612.792,303.647L614.76,292.939L615.568,299.501L616.776,298.517L617.096,306.109L618.2,279.08L619.824,276.67L620.672,300.21L621.728,275.381&quot; stroke=&quot;#6272a4&quot; stroke-width=&quot;2&quot; stroke-dasharray=&quot;2,2&quot;/&gt;&lt;/g&gt;&lt;/g&gt;&lt;path class=&quot;foreground&quot; aria-hidden=&quot;true&quot; d=&quot;&quot; display=&quot;none&quot;/&gt;&lt;/g&gt;&lt;/g&gt;&lt;g class=&quot;mark-rule role-mark layer_2_marks&quot; role=&quot;graphics-object&quot; aria-roledescription=&quot;rule mark container&quot;&gt;&lt;line aria-label=&quot;tm: 61.718&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;rule mark&quot; transform=&quot;translate(246.872,0)&quot; x2=&quot;0&quot; y2=&quot;360&quot; stroke=&quot;#888888&quot; stroke-dasharray=&quot;3,3&quot;/&gt;&lt;/g&gt;&lt;g class=&quot;mark-group role-legend&quot; role=&quot;graphics-symbol&quot; aria-roledescription=&quot;legend&quot; aria-label=&quot;Symbol legend for stroke color and strokeDash with 3 values: global T★ envelope, local T_local envelope, measured drift&quot;&gt;&lt;g transform=&quot;translate(70,150)&quot;&gt;&lt;path class=&quot;background&quot; aria-hidden=&quot;true&quot; d=&quot;M0,0h215v58h-215Z&quot; pointer-events=&quot;none&quot; fill=&quot;#1a1d23&quot;/&gt;&lt;g&gt;&lt;g class=&quot;mark-group role-legend-entry&quot;&gt;&lt;g transform=&quot;translate(6,6)&quot;&gt;&lt;path class=&quot;background&quot; aria-hidden=&quot;true&quot; d=&quot;M0,0h0v0h0Z&quot; pointer-events=&quot;none&quot;/&gt;&lt;g&gt;&lt;g class=&quot;mark-group role-scope&quot; role=&quot;graphics-object&quot; aria-roledescription=&quot;group mark container&quot;&gt;&lt;g transform=&quot;translate(0,0)&quot;&gt;&lt;path class=&quot;background&quot; aria-hidden=&quot;true&quot; d=&quot;M0,0h202.7999725341797v14h-202.7999725341797Z&quot; pointer-events=&quot;none&quot; opacity=&quot;1&quot;/&gt;&lt;g&gt;&lt;g class=&quot;mark-symbol role-legend-symbol&quot; pointer-events=&quot;none&quot;&gt;&lt;path transform=&quot;translate(7,7)&quot; d=&quot;M-5,0L5,0&quot; stroke=&quot;#e69f00&quot; stroke-width=&quot;1.5&quot; stroke-dasharray=&quot;1,0&quot; opacity=&quot;1&quot;/&gt;&lt;/g&gt;&lt;g class=&quot;mark-text role-legend-label&quot; pointer-events=&quot;none&quot;&gt;&lt;text text-anchor=&quot;start&quot; transform=&quot;translate(18,11)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;14px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;global T★ envelope&lt;/text&gt;&lt;/g&gt;&lt;/g&gt;&lt;path class=&quot;foreground&quot; aria-hidden=&quot;true&quot; d=&quot;&quot; pointer-events=&quot;none&quot; display=&quot;none&quot;/&gt;&lt;/g&gt;&lt;g transform=&quot;translate(0,16)&quot;&gt;&lt;path class=&quot;background&quot; aria-hidden=&quot;true&quot; d=&quot;M0,0h202.7999725341797v14h-202.7999725341797Z&quot; pointer-events=&quot;none&quot; opacity=&quot;1&quot;/&gt;&lt;g&gt;&lt;g class=&quot;mark-symbol role-legend-symbol&quot; pointer-events=&quot;none&quot;&gt;&lt;path transform=&quot;translate(7,7)&quot; d=&quot;M-5,0L5,0&quot; stroke=&quot;#56b4e9&quot; stroke-width=&quot;1.5&quot; stroke-dasharray=&quot;6,3&quot; opacity=&quot;1&quot;/&gt;&lt;/g&gt;&lt;g class=&quot;mark-text role-legend-label&quot; pointer-events=&quot;none&quot;&gt;&lt;text text-anchor=&quot;start&quot; transform=&quot;translate(18,11)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;14px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;local T_local envelope&lt;/text&gt;&lt;/g&gt;&lt;/g&gt;&lt;path class=&quot;foreground&quot; aria-hidden=&quot;true&quot; d=&quot;&quot; pointer-events=&quot;none&quot; display=&quot;none&quot;/&gt;&lt;/g&gt;&lt;g transform=&quot;translate(0,32)&quot;&gt;&lt;path class=&quot;background&quot; aria-hidden=&quot;true&quot; d=&quot;M0,0h202.7999725341797v14h-202.7999725341797Z&quot; pointer-events=&quot;none&quot; opacity=&quot;1&quot;/&gt;&lt;g&gt;&lt;g class=&quot;mark-symbol role-legend-symbol&quot; pointer-events=&quot;none&quot;&gt;&lt;path transform=&quot;translate(7,7)&quot; d=&quot;M-5,0L5,0&quot; stroke=&quot;#6272a4&quot; stroke-width=&quot;1.5&quot; stroke-dasharray=&quot;2,2&quot; opacity=&quot;1&quot;/&gt;&lt;/g&gt;&lt;g class=&quot;mark-text role-legend-label&quot; pointer-events=&quot;none&quot;&gt;&lt;text text-anchor=&quot;start&quot; transform=&quot;translate(18,11)&quot; font-family=&quot;var(--mono)&quot; font-size=&quot;14px&quot; fill=&quot;#f4f5f7&quot; opacity=&quot;1&quot;&gt;measured drift&lt;/text&gt;&lt;/g&gt;&lt;/g&gt;&lt;path class=&quot;foreground&quot; aria-hidden=&quot;true&quot; d=&quot;&quot; pointer-events=&quot;none&quot; display=&quot;none&quot;/&gt;&lt;/g&gt;&lt;/g&gt;&lt;/g&gt;&lt;path class=&quot;foreground&quot; aria-hidden=&quot;true&quot; d=&quot;&quot; pointer-events=&quot;none&quot; display=&quot;none&quot;/&gt;&lt;/g&gt;&lt;/g&gt;&lt;/g&gt;&lt;path class=&quot;foreground&quot; aria-hidden=&quot;true&quot; d=&quot;&quot; pointer-events=&quot;none&quot; display=&quot;none&quot;/&gt;&lt;/g&gt;&lt;/g&gt;&lt;/g&gt;&lt;path class=&quot;foreground&quot; aria-hidden=&quot;true&quot; d=&quot;&quot; display=&quot;none&quot;/&gt;&lt;/g&gt;&lt;/g&gt;&lt;/g&gt;&lt;/svg&gt;&lt;/div&gt; &lt;figcaption data-astro-cid-bj3fsypb&gt;The full long-record run: the global envelope pins at the mainshock&apos;s peak and never recovers, while the windowed local envelope heals down across the benign tail that follows; the measured drift stays a dozen-plus orders of magnitude below both, with zero violations across the whole stream. Per-bucket max downsample (600 buckets, peaks preserved). Drawn from the data behind the earthquake section of the preprint (doi:10.5281/zenodo.20599315).&lt;/figcaption&gt;  &lt;/figure&gt; &lt;script type=&quot;module&quot; src=&quot;https://thepragmaticquant.com/vercel/path0/src/components/Figure.astro?astro&amp;type=script&amp;index=0&amp;lang.ts&quot;&gt;&lt;/script&gt;
&lt;span class=&quot;marginnote&quot; role=&quot;note&quot;&gt;Every number in this article matches the public preprint text; nothing here is quoted from private runs.&lt;/span&gt;
&lt;h2 id=&quot;what-holds-means&quot;&gt;What “holds” means&lt;a class=&quot;heading-anchor&quot; href=&quot;#what-holds-means&quot; aria-label=&quot;Link to this section&quot;&gt;¶&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Here is the empirical record of both papers, with the failure count printed. This table doubles as the series index.&lt;/p&gt;















































&lt;div class=&quot;table-scroll&quot;&gt;&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;empirical leg&lt;/th&gt;&lt;th&gt;scale&lt;/th&gt;&lt;th&gt;result&lt;/th&gt;&lt;th&gt;owner&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;unbroken-chain drift sweep&lt;/td&gt;&lt;td&gt;N = 2¹³…2²⁴, 7 corpora × 30 seeds, f64 + f32&lt;/td&gt;&lt;td&gt;traces the predicted carry-chain growth (numbers in Part 1)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://thepragmaticquant.com/thirty-one-papers-zero-error-analyses/&quot;&gt;Part 1&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;anchored &lt;code&gt;Periodic{k}&lt;/code&gt; grid&lt;/td&gt;&lt;td&gt;18 (precision, accumulator, k) cells&lt;/td&gt;&lt;td&gt;0 envelope violations&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://thepragmaticquant.com/thirty-one-papers-zero-error-analyses/&quot;&gt;Part 1&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;regime-boundary sweep&lt;/td&gt;&lt;td&gt;full regime-boundary grid&lt;/td&gt;&lt;td&gt;0 failures; every in-regime cell contained&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://thepragmaticquant.com/thirty-one-papers-zero-error-analyses/&quot;&gt;Part 1&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;stochastic-rounding ensemble&lt;/td&gt;&lt;td&gt;20,000 seeds × 4 precision tiers&lt;/td&gt;&lt;td&gt;coverage held at every tested failure probability&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://thepragmaticquant.com/the-accumulator-that-never-moved/&quot;&gt;Part 2&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;centred cross-covariance grid&lt;/td&gt;&lt;td&gt;100 (precision, window, distance, band) cells&lt;/td&gt;&lt;td&gt;0 envelope violations&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://thepragmaticquant.com/the-kernel-nobody-analyzed/&quot;&gt;Part 3&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Parkfield seismic record&lt;/td&gt;&lt;td&gt;mainshock broadband record&lt;/td&gt;&lt;td&gt;measured drift never exceeded either envelope&lt;/td&gt;&lt;td&gt;this article&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;A worst-case bound that survives all of this is a falsifiable prediction that was given every chance to fail — planted adversaries, 20,000 random seeds, a real earthquake — and did not. That is the standard the &lt;a href=&quot;https://thepragmaticquant.com/green-is-not-evidence/&quot;&gt;gate-design article&lt;/a&gt; argues for: these checks could have failed, visibly, in any of those cells.&lt;/p&gt;
&lt;h2 id=&quot;one-narrow-family-of-kernels&quot;&gt;One narrow family of kernels&lt;a class=&quot;heading-anchor&quot; href=&quot;#one-narrow-family-of-kernels&quot; aria-label=&quot;Link to this section&quot;&gt;¶&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;These are theorems about one family of streaming inner-product kernels under IEEE-754 arithmetic, machine-checked because the domain is narrow enough that the spec-faithfulness question can be mechanized — &lt;a href=&quot;https://thepragmaticquant.com/three-axioms-and-one-disclosed-seam/&quot;&gt;the trust stack&lt;/a&gt; works &lt;em&gt;because&lt;/em&gt; the territory is small. Both manuscripts are public preprints (doi:&lt;a href=&quot;https://doi.org/10.5281/zenodo.20599315&quot;&gt;10.5281/zenodo.20599315&lt;/a&gt;, doi:&lt;a href=&quot;https://doi.org/10.5281/zenodo.20599478&quot;&gt;10.5281/zenodo.20599478&lt;/a&gt;) and currently under review. The work is part of an ongoing research program, and that is all this series will say about what comes next.&lt;/p&gt;</content:encoded><category>floating-point</category><category>time-series</category><category>evals</category></item></channel></rss>