A numerical-analysis paper ends with a table: the scheme's error against an exact solution, at four meshes, to two digits. The exact solution is a formula with π and e in it, evaluated in floating point; the error is a float minus a float; the digits are trusted because the authors are. This page takes the two tables of Ashrafyan and Gomes's semi-Lagrangian scheme for the price-formation game and does the other thing: the exact solutions are enclosed in interval arithmetic, the scheme is written again from the paper's own description with its inner minimisation solved exactly, and every printed cell is met by an interval and given a verdict. Most cells survive. Where they do not, the page says which choice the paper left open. And two things the tables could not show are found: the printed tolerance is a large part of the finest printed number, and the printed initial density, read as printed, is not a density.
Both tests share a supply that solves Q̇ = 5 sin 3πt − 4Q from Q(0) = −½: a sinusoid with a decaying start, in closed form with π and e. Test 1 is the linear-quadratic game with a set-point potential (x − ¼)²/2, and its price is the paper's semi-explicit formula, which with a symmetric initial density reads ϖ₁ = −Q + (1 − t)/4 − ∫ₜ¹∫₀ˢQ — the same closed form as the clearing-price page with γ = 0, η = 1. Test 2 has the cost 3|α|^{4/3}/4 and a linear potential, and its price is ϖ₂ = −Q^{1/3} − (1 − t). Everything the tables measure against is one of these two prices, the value function at t = 0, or the density at t = 1.
Every one of them is evaluated as an interval. The prices need π, e, sines, cosines and a cube root (verified by cubing). The value function of test 1 is a₀ + a₁x + a₂x² with a₂ = ½ tanh(1 − t) and a₁ read off the clearing identity, but a₀(0) is an integral of a squared combination of Q, K and tanh, and the density of test 2 needs ∫|Q|^{4/3}, which has a cusp at every zero of Q. Those integrals are done by the midpoint rule with its remainder w³/24 · sup|f″| — and sup|f″| comes from a second-order interval jet, a value with its first two derivatives carried through every operation, so nobody differentiates by hand and the bound is rigorous on each cell. At the cusps a plain Riemann bound takes over. The densities are the initial bump carried by an affine flow (test 1: contracted by cosh(1)⁻¹ and shifted by the day's energy; test 2: shifted only), with the bump's mass enclosed the same way.
| quantity | enclosure | width | how |
|---|---|---|---|
| Q(1) | [0.448617853670, 0.448617853670] | 5.8e-15 | closed form with π, e enclosed |
| K(1) = ∫₀¹Q, the day's energy | [0.028103775069, 0.028103775069] | 1.4e-15 | closed form |
| a₀(0), test 1 | [-0.029123124, -0.029123055] | 6.9e-8 | midpoint rule, 4096 cells, the remainder from an interval f″ |
| a₁(0), a₂(0), test 1 | -0.2494, 0.3808 | 6.7e-15 | closed: a₂ = ½ tanh(1 − t), a₁ = Π − 2a₂K |
| ∫m̂, the bump's mass (λ = 1.1; 1.2) | 0.4036; 0.3700 | 2.4e-7 | midpoint rule with f″ on the core, a sliver bound at the edges |
| ∫₀¹|Q|^{4/3}/4, test 2 | [0.055882988, 0.055883364] | 3.8e-7 | midpoint with f″ off the zeros of Q, a Riemann bound on the cells through them |
| ϖ₁ on the finest grid | 201 values | 1.5e-14 | closed form |
| ϖ₂ on the finest grid | 201 values | 1.2e-13 | a cube root near a zero of Q is where the width lives |
One identity is decided outright: the exact price of test 1 must clear the exact market, ϖ + a₁ + 2a₂K = −Q. Evaluated as intervals at 21 times, the residual encloses zero every time, to a half-width of 2.5e-14. Shift the price by 0.1 — the size the paper's ∫x m̄ term would have if the bump were not symmetric — and the identity fails at every time. That is the red control on the formula.
The scheme is the paper's: P1 interpolation of the value function, the backward step u_{i,k} = inf_α { I[u_{k+1}](x_i + hα) + h(l₀(α) + ϖ_k α + V_i) }, the forward push of the density by the minimising feet, the price corrected by the imbalance (explicitly for test 1, through an implicit cubic for test 2), stop when the price moves by less than ε. Two things the paper leaves to the reader are fixed here and said: the infimum is taken exactly — on each interpolation cell the objective is a convex function of α with a closed-form stationary point, so the least of the cell minima and the node values is the infimum, with no inner tolerance — and a foot that would leave [−1, 1] is held at the wall rather than given a shorter time step. The relative errors are sup norms on the grid: the price over the time grid, u at t = 0 and m at t = T over the space grid, each divided by the sup norm of the exact quantity. Because the exact quantity is an interval, so is each error; the tables print the interval, and a cell is REPRODUCED when the printed number's two-digit rounding box meets it.
Table 1 of the paper (test 1, ε = 0.004).
| mesh | quantity | printed (ε = 0.004) | this port at that ε, as an interval | at ε = 1e−8 | verdict |
|---|---|---|---|---|---|
| ρ = 0.02, h = 0.04 | ϖ, the price | 1.2e-2 | [1.23e-2, 1.23e-2] | 1.23e-2 | REPRODUCED |
| ρ = 0.02, h = 0.04 | u at t = 0 | 2.5e-2 | [2.67e-2, 2.67e-2] | 2.72e-2 | NEAR ×1.07 |
| ρ = 0.02, h = 0.04 | m at t = T | 8.8e-2 | [9.31e-2, 9.31e-2] | 9.49e-2 | NEAR ×1.06 |
| ρ = 0.01, h = 0.02 | ϖ, the price | 6.0e-3 | [6.04e-3, 6.04e-3] | 6.04e-3 | REPRODUCED |
| ρ = 0.01, h = 0.02 | u at t = 0 | 1.1e-2 | [1.32e-2, 1.32e-2] | 1.38e-2 | DIFFERS ×1.20 |
| ρ = 0.01, h = 0.02 | m at t = T | 4.2e-2 | [4.69e-2, 4.69e-2] | 4.88e-2 | NEAR ×1.12 |
| ρ = 0.005, h = 0.01 | ϖ, the price | 3.3e-3 | [3.27e-3, 3.27e-3] | 2.99e-3 | REPRODUCED |
| ρ = 0.005, h = 0.01 | u at t = 0 | 4.7e-3 | [6.31e-3, 6.31e-3] | 6.96e-3 | DIFFERS ×1.34 |
| ρ = 0.005, h = 0.01 | m at t = T | 1.8e-2 | [2.28e-2, 2.28e-2] | 2.48e-2 | DIFFERS ×1.27 |
| ρ = 0.0025, h = 0.005 | ϖ, the price | 2.1e-3 | [2.07e-3, 2.07e-3] | 1.49e-3 | REPRODUCED |
| ρ = 0.0025, h = 0.005 | u at t = 0 | 1.2e-3 | [2.83e-3, 2.83e-3] | 3.49e-3 | DIFFERS ×2.36 |
| ρ = 0.0025, h = 0.005 | m at t = T | 6.7e-3 | [1.06e-2, 1.06e-2] | 1.25e-2 | DIFFERS ×1.58 |
Table 2 of the paper (test 2, ε = 0.0002).
| mesh | quantity | printed (ε = 0.0002) | this port at that ε, as an interval | at ε = 1e−8 | verdict |
|---|---|---|---|---|---|
| ρ = 0.02, h = 0.04 | ϖ, the price | 2.6e-2 | [2.66e-2, 2.66e-2] | 2.66e-2 | NEAR ×1.02 |
| ρ = 0.02, h = 0.04 | u at t = 0 | 8.5e-3 | [8.53e-3, 8.53e-3] | 8.53e-3 | REPRODUCED |
| ρ = 0.02, h = 0.04 | m at t = T | 5.3e-2 | [5.27e-2, 5.27e-2] | 5.27e-2 | REPRODUCED |
| ρ = 0.01, h = 0.02 | ϖ, the price | 1.3e-2 | [1.33e-2, 1.33e-2] | 1.33e-2 | REPRODUCED |
| ρ = 0.01, h = 0.02 | u at t = 0 | 7.4e-3 | [7.38e-3, 7.38e-3] | 7.38e-3 | REPRODUCED |
| ρ = 0.01, h = 0.02 | m at t = T | 2.6e-2 | [2.64e-2, 2.64e-2] | 2.64e-2 | REPRODUCED |
| ρ = 0.005, h = 0.01 | ϖ, the price | 6.7e-3 | [6.63e-3, 6.63e-3] | 6.63e-3 | NEAR ×0.99 |
| ρ = 0.005, h = 0.01 | u at t = 0 | 6.8e-3 | [6.78e-3, 6.78e-3] | 6.78e-3 | REPRODUCED |
| ρ = 0.005, h = 0.01 | m at t = T | 1.3e-2 | [1.32e-2, 1.32e-2] | 1.32e-2 | REPRODUCED |
| ρ = 0.0025, h = 0.005 | ϖ, the price | 3.9e-3 | [3.32e-3, 3.32e-3] | 3.32e-3 | DIFFERS ×0.85 |
| ρ = 0.0025, h = 0.005 | u at t = 0 | 6.5e-3 | [6.45e-3, 6.45e-3] | 6.45e-3 | REPRODUCED |
| ρ = 0.0025, h = 0.005 | m at t = T | 6.6e-3 | [6.62e-3, 6.62e-3] | 6.62e-3 | REPRODUCED |
The tolerance is inside the finest number. The paper stops when the price moves by less than ε = 0.004 and reports that every case converges in four iterations. Run the same four meshes to ε = 1e−8 (fourteen or fifteen iterations) and the coarse errors do not move, but at the finest mesh the price error of test 1 falls from 2.07e-3 to 1.49e-3: the printed 2.1e−3 is 39 % tolerance and the rest mesh. The convergence order the table suggests for the price (ratios 2.00, 1.82, 1.57 between printed rows) is therefore blunted at the end by ε, and is 2.04, 2.02, 2.01 — clean first order — once ε is out of the way. Test 2 is immune: its implicit price update reaches 1e−12 in three iterations at every mesh, and its errors at ε = 0.0002 and 1e−8 coincide.
The density as printed is not one. Both tests start from m̂(x) = exp(−1/(1 − (λx)²)) "for |x| < 1, 0 otherwise", λ = 1.1 and 1.2. For 1/λ < |x| < 1 the exponent −1/(1 − (λx)²) is positive and unbounded as |x| ↓ 1/λ, so the printed function has no finite integral: on the sliver 1/λ + 0.001 ≤ x ≤ 1/λ + 0.002 alone its mass is at least 3.9e+95 (λ = 1.1) and 2.3e+87 (λ = 1.2), decided by a one-cell Riemann bound. The only integrable reading is the standard bump with support |x| < 1/λ, which is what the paper's figures show and what this page encloses. A typo, almost certainly; but a table of digits rests on it, and the digits survived, which says the authors' code used the bump and not the sentence.
node instruments/agtable/battery.js # 24 checks, 5 red controls: enclosures vs float routes, the clearing identity, the scheme, the verdicts node instruments/agtable/run.js --check # the record, re-derived and compared byte for byte
The instrument is instruments/agtable/exact.js (the enclosures) with sl.js (the scheme) and derive.js; the interval jet is instruments/interval/taylor2.js; the printed numbers are pinned in corpus/ashrafyan-gomes-2403.02785/tables.json; the record is certs/agtable-redecided.json.