# Ancillary files for "Memory back-reaction in black-hole scattering at fifth post-Minkowskian order" (M. D. Schwartz)

This package contains the machine-readable data behind the tables of the paper: the integral-family definitions and the
Kira setup of the first-stage reductions (Table 2), the first-stage master-integral lists, the response matrices of the
auxiliary-mass flow and their left null vectors (Tables 3 and 5), the boundary master integrals of the crossed family PX2
with the values of those we computed (Table 4), the Picard-Fuchs operators and the full Frobenius matrices of the four
period geometries that occur through 5PM, continued to the bound arc (Table 6), and the assembly data for the constant c_M of Sec. 7 (Table 7).
Section, table and equation numbers refer to the paper.  The supplementary material (a separate PDF) describes the same
objects in prose; this package gives the numbers to full precision.

Not included: the full reduction tables of the four families and the auxiliary-mass-flow solver itself.  The response
matrices are the solver's output at the reference kinematic point; the boundary values of Table 4 were computed directly,
outside the flow, by the frequency-space reductions described in Sec. 5.3 and in the supplementary material.

## Conventions common to all files

- Integral families: four loop momenta k_1..k_4; u_1^2 = u_2^2 = 1, u_1.u_2 = y = gamma, u_i.q = 0, q^2 = -1.  Propagators
  D_1..D_22 in the order of `families_dissipative.json` and `kira/integralfamilies.yaml`; D_1..D_4 are cut, 2 pi delta(2 k_i.u).
  An index vector (n_1,...,n_22) gives the exponents; negative entries are numerators.  A sector label is the sum of
  2^(i-1) over the D_i with positive exponent (S_1 = 1077759, S_2 = 1091071, S_3 = 599551).
- Measure prod_i d^D k_i/(i pi^(D/2)), D = 4 - 2 eps, no exp(gamma_E eps) factor.  Boundary values at gamma = 5/4, q^2 = -1.
- No i0 assignment is part of a family definition.  All boundary values in this package are computed with Feynman
  propagators on the graviton lines (keys `fey`; `conj` and `pv` are the conjugate assignment and the average); integrals
  with an uncut linearized worldline propagator are given at sigma = +1 in 1/(D_j + i sigma 0).  No in-in (retarded)
  boundary values are given.
- Decimal strings are reproduced as computed.  Where a field `correct_digits` (or a digits statement in the file header)
  is present, digits beyond it are not significant.  Exact values are given as closed forms in pi, ln 2 and Euler's
  constant gamma_E.

## Files

| file | content | paper |
|---|---|---|
| `boundary_constants_PX2.json` | definitions (exponent vectors) of the 31 master integrals supporting the flow-free directions of S_1, S_2, S_3; values of the 12 computed ones to full precision with exact forms; the ten left null vectors with their weights | Sec. 5.2-5.4; Tables 3, 4, 5; Eqs. (31), (35), (36) |
| `boundary_ibp_identities_PX2.m` | Kira reduction rules, symbolic in d and y, for the 42 boundary target integrals of S_1, S_2, S_3 (reduction identities of the undeformed family: integration-by-parts and Lorentz-invariance identities with the automatic sector symmetries, numerator integrals seeded) | Sec. 5.4 (the flow-free relations as reduction identities); Table 5; Eq. (36) |
| `cM_laurent.json` | assembly data for c_M: sector integrals, cores, prefactor and identity-coefficient Laurent series, I_1, I_3 through eps^1 and I_2 through eps^-2 from two implementations; leading terms with Feynman propagators on the memory gravitons including the eps^-4 coefficient 1/(6144 pi^6) | Sec. 7.1-7.2; Table 7; Eqs. (51)-(54), (59)-(61) |
| `families_dissipative.json` | definitions of the four dissipative 5PM-2SF integral families P, PX1, PX2, NP: loop momenta, kinematics, the 22 propagators, which are cut, the leading top sectors as propagator subsets, the sector-label convention | Sec. 3.1, Eq. (6); Table 2; Table 3 (sector labels 1077759, 1091071, 599551) |
| `operators.txt` | the four Picard-Fuchs operators in theta and d/dz form, variables, singular points and local exponents, Frobenius convention, continuation paths | Eqs. (8)-(11), (44)-(45); Table 1; Sec. 6 |
| `priority_search.md` | dated literature searches behind the "to our knowledge" priority statements of Sec. 1 and Sec. 6 (the "new, to our knowledge" statement of Sec. 4.1 is relative to the works cited there) | Sec. 1; Sec. 6 |
| `bound_frobenius/README_bound.md` | format, precision and per-point enclosure table of the value files | Sec. 6.2, Table 6 |
| `bound_frobenius/values_F43_1_6.txt` | CY3 (4F3) 4x4 Frobenius matrices, energies 1-6 | Table 6, column CY3; Eq. (50) |
| `bound_frobenius/values_F43_7_12.txt` | CY3 (4F3) 4x4 Frobenius matrices, energies 7-12 | Table 6, column CY3; Eq. (50) |
| `bound_frobenius/values_HAD_1_12.txt` | CY3' (Hadamard) 4x4 Frobenius matrices at the twelve bound energies | Table 6, column CY3' |
| `bound_frobenius/values_K30_1_12.txt` | K3 (Legendre) 3x3 Frobenius matrices at the twelve bound energies | Table 6, column K3 |
| `bound_frobenius/values_K3P_1_12.txt` | K3' (Apery) 3x3 Frobenius matrices at the twelve bound energies | Table 6, column K3'; Eq. (49) |
| `kira/integralfamilies.yaml` | Kira integral-family file for PX2 (propagators D_1..D_22, cut D_1..D_4) | Sec. 3.1; Table 2 |
| `kira/jobs_PX2_first_stage.yaml` | Kira job file of the PX2 first-stage reduction (seeds r = 14, s = 1; sector symmetries on) | Table 2, PX2 row |
| `kira/kinematics.yaml` | Kira kinematics file (u_1, u_2, q; y = gamma; q^2 = -1) | Sec. 3.1 |
| `kira/preferred` | preferred master integrals passed to that job | Table 2, PX2 row |
| `masters/NP_first_stage_243.txt` | the 243 NP first-stage master integrals | Table 2 |
| `masters/PX1_first_stage_256.txt` | the 256 PX1 first-stage master integrals | Table 2 |
| `masters/PX2_first_stage_37.txt` | the 37 PX2 first-stage master integrals with parity and uncut linearized propagators | Table 2 (PX2: 37 = 12 + 25) |
| `masters/P_first_stage_195.txt` | the 195 P first-stage master integrals | Table 2 |
| `masters/t40_even_44_eleven.txt` | the eleven master integrals of the even topology-40 (Apery) sector returned at seeding (4,4), with the propagator list of that sector | Sec. 5.5 |
| `response_matrices/A_S1.json` | response matrix A(eps) of S_1 (14 x 27) at twelve eps, 60-digit midpoints, with rank check | Eq. (27); Table 3 |
| `response_matrices/A_S2.json` | response matrix A(eps) of S_2 (27 x 68) | Eq. (27); Table 3 |
| `response_matrices/A_S3.json` | response matrix A(eps) of S_3 (44 x 101) | Eq. (27); Table 3 |
| `response_matrices/null_vectors_S1.json` | left null vector of A_S1 (exact weights) | Table 5; Eq. (36) |
| `response_matrices/null_vectors_S2.json` | the four left null vectors of A_S2 at each eps | Tables 3, 5 |
| `response_matrices/null_vectors_S3.json` | the five left null vectors of A_S3 at each eps | Tables 3, 5 |
| `tools/build_bound_readme.py` | writes bound_frobenius/README_bound.md from the continuation run logs |  |
| `tools/build_boundary_constants.py` | assembles boundary_constants_PX2.json and the null-vector files from the computation outputs |  |
| `tools/build_cM.py` | assembles cM_laurent.json from the run logs |  |
| `tools/build_ibp_identities.py` | writes boundary_ibp_identities_PX2.m (header + Kira rules) |  |
| `tools/build_masters.py` | writes the first-stage master lists with headers from the Kira outputs and logs |  |
| `tools/build_operators.py` | writes operators.txt (exact theta -> d/dz conversion, series checks, local exponents) |  |
| `tools/build_response_matrices.py` | writes the response-matrix files (60-digit truncation, rank check) |  |
| `tools/build_t40_masters.py` | decodes and writes masters/t40_even_44_eleven.txt |  |
| `tools/check_package.py` | consistency checks a reader can run on this package (manifest, v^T A = 0, Eq. (36), static-slice closed forms, c_M reassembly, Feynman eps^-4 coefficient, value-file format) |  |
| `tools/common.py` | helpers shared by the scripts |  |
| `tools/make_manifest.py` | writes this README |  |
| `tools/scrub_header.py` | rewrites the comment header of the Kira files, with a byte-identity check of all non-comment lines |  |
| `tools/scrub_values.py` | rewrites the comment header and gamma labels of the value files, with a byte-identity check of all data lines |  |

## Notes per object

**Family definitions and Kira setup.**  `families_dissipative.json` is the family file distributed with the first version
of the paper, with internal bookkeeping fields removed; the family data are unchanged.  The three `kira/*.yaml` files are
the configuration of the PX2 first-stage run with their comment headers rewritten; all non-comment lines are identical to
the run configuration.  With Kira and these files the job reproduces the count 37 of Table 2 (Kira's automatic sector
relations and sector symmetries are enabled, as they were in all four first-stage runs; the logs report 48 sector
relations and 4 sector symmetries for PX2).  The P, PX1 and NP families differ from PX2 only in the propagator lists given
in `families_dissipative.json`; their seeds are stated in the headers of the master lists.  These are counts at fixed
seeding, not minimal bases.

**Topology 40.**  `masters/t40_even_44_eleven.txt` lists the eleven master integrals our reduction of the even Apery sector
returns at seeding (4,4), in that sector's own momentum routing (propagators P_1..P_22 in the file header).  The
worldline-exchange symmetry of the sector (u1<->u2 with k1->k2+k4, k3->k2-k3-q, k4->k1-k2) is not imposed in that list;
adding the relations it generates to the same system and reducing again leaves nine master integrals, entries 1, 2, 3, 4,
6, 7, 8, 9 and 11 of the list (Sec. 5.5 and the supplementary material), the number Duhr et al. (arXiv:2503.20655) give on
the maximal cut in their ancillary files.

**Response matrices and flow-free directions.**  `response_matrices/A_S*.json` give A(eps) of Eq. (27) at the twelve
sampled eps (near 3e-4) with midpoints truncated to 60 significant digits; the source enclosure radii (below 1e-97) are
recorded per eps.  Rows are the master integrals of the eta-deformed system (exponent vectors over D_1..D_22); columns are
the boundary integrals of the large-eta region in the solver's own labeling, which we do not translate (ranks and left null
vectors do not depend on it).  Each file records the rank recomputed from the truncated data (13, 23, 39, with a gap of
more than 55 orders of magnitude in the singular values at every eps).  `null_vectors_S*.json` give the left null vectors:
exact rational weights where they are eps-independent (S_1, and the corner relation in S_2), otherwise the weights at each
eps to at least 45 digits.  `tools/check_package.py` verifies v^T A = 0 on the distributed files.

**Boundary master integrals.**  `boundary_constants_PX2.json` defines all 31 master integrals on which the ten null vectors
are supported (at most 25 distinct integrals, since the S_1 corner triple recurs in S_2 and S_3) and gives the 12 we
computed: I_0, I_2, I_3 (pole exactly, finite part to 26-28 digits, on the three graviton assignments), I_r1 = Itilde_1 = 0,
I_r4 (pole and finite part in closed form, finite part to 38 digits), and the static-slice integrals I_r5, I_r6, I_r7 and
their S_3 images (orders eps^0 and eps^1 in closed form with numerical values printed to 40 digits, order eps^2 numerically).
`boundary_ibp_identities_PX2.m` gives, symbolically in d and y, the integration-by-parts reduction of the 42 boundary
target integrals once numerator integrals are seeded; at d = 4 - 2 eps, y = 5/4 the flow-free relations of Table 5 and
Eq. (36) are among these identities (the first rule is Eq. (36) itself, with coefficients independent of d and y).

**Bound-arc Frobenius matrices.**  See `bound_frobenius/README_bound.md` and `operators.txt`.  48 points, 600 real numbers
as (re, im) pairs of about 180 digits; every entry is a ball midpoint correct to at least 167 digits relative to the largest
entry of its matrix, and two homotopic paths agree to at least 176 digits.

**The constant c_M (Sec. 7).**  `cM_laurent.json` gives, for the retarded routing, the sixteen two-dimensional sector integrals and the
six cores j_a^(k) to 25 digits, the Laurent series of N_1, N_3, r_1, r_2, and the assembled I_1^(M), I_3^(M) through eps^1
and I_2^(M) through eps^-2 from two independently coded implementations of the same expansion-and-quadrature method
(agreement 17-25 digits; c_M - 1 = -2e-31 in the first), and,
for Feynman propagators on the two memory gravitons, the quadrant moments in closed form, the leading cores
j_1F^(0) = -1/90 - 1/(3 pi^2), j_3F^(0) = 8/315 + 4/(9 pi^2), the eps^-1 coefficient of I_1^(M) and the uncanceled eps^-4
coefficient of I_2^(M), 1/(6144 pi^6), from three evaluations agreeing to 17 digits.

**Checks.**  `python3 tools/check_package.py` (Python 3 with mpmath) verifies the manifest below, v^T A = 0 for all null
vectors at all eps, Eq. (36) on the distributed values, the static-slice closed forms against the numerical values, the
reassembly of c_M = 1 with the eps^-4 and eps^-3 cancellation, the Feynman eps^-4 coefficient, and the format of the value
files.  The other scripts in `tools/` are the ones that wrote the files of this package from the computation outputs; they
take the input paths on the command line and record the sha256 of every input inside the file they write.

## Manifest

sha256 and size of every file, computed when this README was written (2026-09-29T19:09:22Z).

| file | bytes | sha256 |
|---|---|---|
| `boundary_constants_PX2.json` | 140687 | 95325159ea60b732be0764de1a51bba6271d681b3c4b8ee0aa21f7452c6436aa |
| `boundary_ibp_identities_PX2.m` | 17561 | 2b08ae1d6b0ed743ac9127d2aaf2dd7012e6cef48b412700b0480be75385f96f |
| `cM_laurent.json` | 13359 | e954ac44724e6e62f82dd438aa0cc5a65352126490ba45182dfed4270137d5a0 |
| `families_dissipative.json` | 24119 | 9c1b07e246b5b15fbee7d5e0180fa353e9f8c88ad1dcb5c1bfcbb15c335a3250 |
| `operators.txt` | 8814 | 2f83588f76bcf2a3515869c4b34c16ff90cd0322f5e4325f279e5383eb9102b5 |
| `priority_search.md` | 11095 | 1d21c775b89274923aec32a3369c2a12292ba4723b0b0c5696ee390eb972d282 |
| `bound_frobenius/README_bound.md` | 6025 | 1501b2a4a6f1c12b620ad69d10062f11081cd81fe4ce27d0bff16d50d42a7a49 |
| `bound_frobenius/values_F43_1_6.txt` | 40010 | 769eeb2b2a82c55d0fd94c2602bf6764df6d2cefaa8f95b7b6d06d71cdaa7b4f |
| `bound_frobenius/values_F43_7_12.txt` | 39624 | 219c1fe65aba8b409e1c3a44b8f19ece6efa95cd781513d09610c29f436ba994 |
| `bound_frobenius/values_HAD_1_12.txt` | 41696 | c23a90ad45b7edb0c3cbff8cfc0cc4b6ca42874a5d65fef665a8552b3290d36a |
| `bound_frobenius/values_K30_1_12.txt` | 46622 | 6fccb7552c449c7cc62fd06b4a660d7a5f4a05e5d54e478209fcd82df4aa3c09 |
| `bound_frobenius/values_K3P_1_12.txt` | 46622 | 8fd01ccd00e33c4510b1b03c2958b6093cbda898fdddaa6fa37eaf581bd066b2 |
| `kira/integralfamilies.yaml` | 1307 | 952c498ac7abf44229f807e1060c4fe033dc395c604fb01d9d492d81629b70a1 |
| `kira/jobs_PX2_first_stage.yaml` | 801 | 0396af26436992219c00986961453484e712b49a8a95f5d01a8e59441e464ad8 |
| `kira/kinematics.yaml` | 434 | 27246e1402e492a6d525c194d26eee5393692aafc5b6f503b147444498b6286e |
| `kira/preferred` | 496 | d706aee95999ea273027efaf206db61702d48beb5e00af6388c417191c9d3dca |
| `masters/NP_first_stage_243.txt` | 18111 | e037d0d68d009a13809900d9a9176a7a6f8eee7af31e2f570e11b6ba9cfe37aa |
| `masters/PX1_first_stage_256.txt` | 19477 | 000c5cf9129e5bfe46ee807db6468b8c854ccccb9ade164c58993e9640ae63ca |
| `masters/PX2_first_stage_37.txt` | 4880 | 060ea9064ef48a79dea68ca223dcffbb16e3180dcbf4ed9d236317c28832dad7 |
| `masters/P_first_stage_195.txt` | 14633 | 039e8963e44b1795fb65f4019c8c2e5a94f43a8b80a555f539f6df3d307ce202 |
| `masters/t40_even_44_eleven.txt` | 2543 | 14a9c949032be61c6ca98ab0c11ccbd8cd8c07cf1321e0f1500374d78b57cba1 |
| `response_matrices/A_S1.json` | 346435 | 804e6e45caec91ad797fc015cb6ebe5839278739426e5fd656af373aee3a868f |
| `response_matrices/A_S2.json` | 899649 | f6343a5cb37018063e48208198f435ef47a3ba386f598bcbdeab8d6f5956e560 |
| `response_matrices/A_S3.json` | 1785383 | f1b263dd96845dc1390d6ec8ef3b2139654e33b65c5e9f1cc3df816cef5ac9e2 |
| `response_matrices/null_vectors_S1.json` | 1095 | 8c42dc546e6c8de1008851288cdf1fa86ce6d67438de2fb3ace104124c09b0b5 |
| `response_matrices/null_vectors_S2.json` | 31853 | 4f6d4abe75be8782d57caaccda78a8297cd4de0ce2dd420924af633703bb8140 |
| `response_matrices/null_vectors_S3.json` | 69373 | afa99daa8ccae883e476f8f001e6f3c928080f36edc717b1a4ccdf2a8116a22a |
| `tools/build_bound_readme.py` | 5243 | 9aaa9499f7458034833b6dc1437ee0b15d41a5dbbd3c35573f46d3e6aab7590a |
| `tools/build_boundary_constants.py` | 20511 | 9362c4443bb057d365eacfb0d21236dcb2480fe0c9d3a6f7c6f660c6cf77faab |
| `tools/build_cM.py` | 14649 | 7cee45bc1328571e133cee7d534a1803654fe576f8c1979493aa51f9f93224d5 |
| `tools/build_ibp_identities.py` | 2592 | 1c870af69b7223a6af2de083713243eb5b00e7cf983deeeed92fad1dc47a8615 |
| `tools/build_masters.py` | 3197 | 2ea306dd940b91c1061ca1f5926fe2ed050ba6f2307db1e644bc61475f44efde |
| `tools/build_operators.py` | 12780 | 7e31db8fbcd33008bb4fc13a5411fe9ccf554a605fd90cbd4dd95498a0a7d794 |
| `tools/build_response_matrices.py` | 4735 | e3108981a33168b4651a648416459f3512987c56de87cb1a9f2d15922b5f53f8 |
| `tools/build_t40_masters.py` | 3044 | bc2011d36063e03ac49f5d7c6edec3d781f0b5b18f293db1da91aa1806cf065c |
| `tools/check_package.py` | 7485 | 51af856e15414cdcd4946045ead7e3eb2963f54636e52326445efcfe818d557c |
| `tools/common.py` | 821 | ed78e59c8025d4ba9bd704409f1b2e8cbbe96954058854ad4042f77d891378cc |
| `tools/make_manifest.py` | 16012 | edcc36fa862d5f93868741bd8f0c3e9ba39a99880ab0e351e109a54a41a41223 |
| `tools/scrub_header.py` | 1113 | 28bf6666cfab10d24a06479c655ae1553ef2ecf42c2c2d146c8c8d8d1b9433a2 |
| `tools/scrub_values.py` | 4232 | 4736a8008b7320d698222831672a84cebbf1ab9a681e7ed563e97211349cf8f8 |

40 files, 3729118 bytes in total (this README excluded).
