nDot.io physics
05-ilang-free-fall / 13-pair-fall
13pair fallverified

Determines how a bound pair of two bodies of different types falls in a sharp stationary field: its drift acceleration, the comparison with the free parts, and the tie to the clocks of the parts.

Code of version 2

pair_fall_check.py34 KB · raw
"""Numerical check for 13-pair-fall, derivation v2 (role: check).

The script of v1 with the paths changed and one table added (clock_ratio_table,
for (13.21), (13.22)); the evolution and its parameters are unchanged.

A packet of a bound pair of two Model D bodies is built from the numerical bound
level of the fibre contract H(P) (11.1), put on a finite chain |x_i| <= L and
evolved by C_bod (13.2) with small gradients (Chebyshev expansion of
exp(-i C_bod lambda)). The first order in the gradients is a symmetric
difference of two evolutions (+eps, -eps).

Compared with the derivation:
  (13.7)  slope of the first-order velocities of both parts = <alpha>_g, with
          alpha(P) of (13.8) computed from the numerical bound level;
  (13.10) first-order change of the mean label separation = lambda <beta>_g + bounded;
  (13.13) closed form of the drift acceleration from rest in the regime R;
  (13.22) derivative of the clock ratio Gamma_i = dE_b(0)/dM_i in the data M_1, M_2
          (second derivatives of the level), from the numerical bound level at P = 0,
          and with it the term of order eps^2 of (13.18).

Sets: S1-S3 in the regime R (tau_i/M_i <= 0.2; S2 with tau_1 != tau_2, M_1 != M_2;
S3 with w_11 > 0), S4 with tau_i/M_i of order one, S5 a control (binding of range 1
without symmetry, moving packet). Each with the common gradient, with g_1 only,
and with a plain gradient in the place of kappa<X>.

Run from the project root:
  .venv/Scripts/python.exe 05-ilang-free-fall/13-pair-fall/code/v2/pair_fall_check.py
Optional arguments: names of sets or variants (default: all).
Outputs: output/results.json, output/summary.txt, output/first_order_motion.png
"""
import os
for _v in ("OMP_NUM_THREADS", "MKL_NUM_THREADS", "OPENBLAS_NUM_THREADS"):
    os.environ.setdefault(_v, "1")
import json
import sys
import time
from multiprocessing import Pool
from pathlib import Path

import numpy as np
import scipy.sparse as sp
from scipy.special import jv

try:                                    # in-place Y += A X; the public product is the fallback
    from scipy.sparse._sparsetools import csr_matvecs
except ImportError:
    csr_matvecs = None

OUT = Path(__file__).parent / "output"
ETA = 0.5                      # phase convention of (11.1); results do not depend on it
S1 = np.array([[0, 1], [1, 0]], dtype=complex)
S3 = np.diag([1.0, -1.0]).astype(complex)
I2 = np.eye(2, dtype=complex)
S1A, S1B = np.kron(S1, I2), np.kron(I2, S1)      # branch index = 2*s1 + s2
S3A, S3B = np.kron(S3, I2).real.diagonal(), np.kron(I2, S3).real.diagonal()


def diag_w(w11, w12, w21, w22):
    return {0: np.diag([w11, w12, w21, w22]).astype(complex)}


def control_w():
    """Binding of the class W with range 1: not diagonal, no symmetry r -> -r or P -> -P."""
    w = diag_w(-0.5, 0.3, -0.2, 0.4)
    w1 = np.zeros((4, 4), dtype=complex)
    w1[0, 0] = -0.6
    w1[0, 1], w1[1, 0] = 0.3j, -0.3j
    w1[0, 3], w1[3, 0] = 0.2 + 0.15j, 0.2 - 0.15j
    w[1] = w1
    return w


# tau_i, M_i, binding, packet (P0, half support Pc, centre label xc), chain L, fibre range rmax,
# range of lambda, sampling step (a number, or an interval from which the step with the largest
# alias margin is taken), gradient eps (g); the plain gradient is eps*(M1+M2)/2;
# cfgs: 0 common gradient, 1 g1 only, 2 plain gradient
BASE = {
    "S1": dict(t1=0.20, M1=1.0, t2=0.20, M2=1.0, W=diag_w(-0.020, 0.012, 0.012, 0.016), R=True, lam_max=3000.0, dlam=(32.0, 44.0), eps=5e-7),
    "S2": dict(t1=0.20, M1=1.0, t2=0.18, M2=1.25, W=diag_w(-0.020, 0.010, -0.006, 0.020), R=True, lam_max=3000.0, dlam=(32.0, 44.0), eps=5e-7),
    "S3": dict(t1=0.20, M1=1.0, t2=0.17, M2=0.9, W=diag_w(0.022, -0.010, 0.007, -0.015), R=True, lam_max=3000.0, dlam=(32.0, 44.0), eps=5e-7),
    "S4": dict(t1=1.00, M1=1.0, t2=0.80, M2=1.2, W=diag_w(-0.9, 0.3, -0.2, 0.4), R=False, lam_max=200.0, dlam=1.0, eps=2e-6),
    "S5": dict(t1=1.00, M1=1.0, t2=0.80, M2=1.2, W=control_w(), R=False, lam_max=400.0, dlam=1.0, eps=2e-6,
               P0=0.2, Pc=0.4, xc=-12),
}
DEFAULT = dict(P0=0.0, Pc=0.5, xc=0, L=60, rmax=48, cfgs=(0, 1, 2))
# convergence variants: one numerical parameter changed, only the configuration "g1 only"
VARIANTS = {
    "S1_L45": ("S1", dict(L=45)),
    "S1_eps2": ("S1", dict(eps=1e-6)),
    "S1_Pc035": ("S1", dict(Pc=0.35)),
    "S1_dlam": ("S1", dict(dlam=(20.0, 28.0))),
    "S4_L45": ("S4", dict(L=45)),
    "S5_L75": ("S5", dict(L=75)),
    "S5_long": ("S5", dict(L=75, lam_max=600.0, xc=-15)),
}
LABELS = ("common gradient g1=g2", "g1 only (g2=0)", "plain gradient")


# ---------------------------------------------------------------- fibre H(P)
def bands(P, p):
    q = np.linspace(-np.pi, np.pi, 4001)
    o1 = np.sqrt(p["M1"] ** 2 + p["t1"] ** 2 * np.sin(q) ** 2)
    o2 = np.sqrt(p["M2"] ** 2 + p["t2"] ** 2 * np.sin(P - q) ** 2)
    out = []
    for s1 in (1, -1):
        for s2 in (1, -1):
            e = s1 * o1 + s2 * o2
            out.append((e.min(), e.max()))
    return out


def fibre_ops(P, p, rmax):
    nr = 2 * rmax + 1
    S = np.eye(nr, k=-1).astype(complex)            # (S psi)(r) = psi(r-1)
    Sd = S.T
    e1, e2 = np.exp(1j * ETA * P), np.exp(1j * (1 - ETA) * P)
    A1 = 0.5j * p["t1"] * np.kron(e1 * Sd - np.conj(e1) * S, S1A)
    A2 = 0.5j * p["t2"] * np.kron(e2 * S - np.conj(e2) * Sd, S1B)
    V1 = -0.5 * p["t1"] * np.kron(e1 * Sd + np.conj(e1) * S, S1A)
    V2 = -0.5 * p["t2"] * np.kron(e2 * S + np.conj(e2) * Sd, S1B)
    H = A1 + A2 + np.diag(np.kron(np.ones(nr), p["M1"] * S3A + p["M2"] * S3B))
    for r, Wr in p["W"].items():
        i = (r + rmax) * 4
        H[i:i + 4, i:i + 4] += Wr
    d2H = -ETA ** 2 * A1 - (1 - ETA) ** 2 * A2
    return H, V1, V2, d2H


def level(P, p, rmax):
    """Bound level of H(P) attached to the band B_++ and the functions of item 2."""
    nr = 2 * rmax + 1
    H, V1, V2, d2H = fibre_ops(P, p, rmax)
    vals, vecs = np.linalg.eigh(H)
    b = int(np.argmax(np.abs(vecs[rmax * 4, :]) ** 2))     # weight on r = 0, branch |11>
    psi = vecs[:, b] * np.exp(-1j * np.angle(vecs[rmax * 4, b]))
    Eb = vals[b]
    dE = vals - Eb
    gap = np.min(np.abs(np.delete(dE, b)))
    dE[b] = np.inf

    def Rap(x):                                           # Q (H - Eb)^-1 Q x
        return vecs @ ((vecs.conj().T @ x) / dE)

    rvec = np.kron(np.arange(-rmax, rmax + 1), np.ones(4))
    s3 = [np.kron(np.ones(nr), S3A), np.kron(np.ones(nr), S3B)]
    Mi = [p["M1"], p["M2"]]
    vpsi = (ETA * V1 + (1 - ETA) * V2) @ psi
    Rv = Rap(vpsi)
    E1 = np.vdot(psi, vpsi).real
    E2 = np.vdot(psi, d2H @ psi).real - 2 * np.vdot(vpsi, Rv).real

    def ev(d):
        return np.vdot(psi, d * psi).real

    dPr = -2 * np.vdot(rvec * psi, Rv).real
    alpha, beta, s3m = [], [], []
    for i in range(2):
        s3m.append(ev(s3[i]))
        dPs3 = -2 * np.vdot(s3[i] * psi, Rv).real
        rRs3 = 2 * np.vdot(rvec * psi, Rap(s3[i] * psi)).real
        alpha.append(-Mi[i] * (E2 * s3m[i] - E1 * dPs3))          # coefficient of g_i  (13.8)
        beta.append(-Mi[i] * (s3m[i] * dPr + E1 * rRs3))          # coefficient of g_i  (13.10)
    alpha.append(-2 * E2)                                         # coefficient of kappa<X>
    beta.append(-2 * dPr)
    bd = bands(P, p)
    dist_band = min(min(abs(Eb - lo), abs(Eb - hi)) for lo, hi in bd)
    inside = any(lo <= Eb <= hi for lo, hi in bd)
    return dict(Eb=Eb, psi=psi, E1=E1, E2=E2, s3=s3m, alpha=alpha, beta=beta, gap=gap,
                freqs=np.abs(np.delete(vals - Eb, b)),
                v1=np.vdot(psi, V1 @ psi).real, v2=np.vdot(psi, V2 @ psi).real,
                rmean=ev(rvec), dist_band=dist_band, inside=inside,
                tail=float(np.abs(psi[:4]).max() + np.abs(psi[-4:]).max()))


def closed_form(p):
    """Leading order in R, (13.13): coefficients of g_1, g_2, kappa<X> at P0 = 0."""
    t1, t2, w = p["t1"], p["t2"], p["W"][0][0, 0].real
    a1, a2 = t1 ** 2 / (4 * p["M1"]), t2 ** 2 / (4 * p["M2"])
    u = abs(w) / (a1 + a2)
    pref = np.sign(w) / np.sqrt(1 + u * u) / (p["M1"] / t1 ** 2 + p["M2"] / t2 ** 2)
    return [pref * p["M1"], pref * p["M2"], 2 * pref], u


def closed_form_packet(p, Pg, wg2):
    """(11.12) averaged over |g|^2: -<E_b''> (g1 M1 + g2 M2 + 2 kappa<X>)."""
    w = p["W"][0][0, 0].real
    a1, a2 = p["t1"] ** 2 / (4 * p["M1"]), p["t2"] ** 2 / (4 * p["M2"])
    j2 = a1 * a1 + a2 * a2 + 2 * a1 * a2 * np.cos(2 * Pg)
    s = np.sqrt(w * w + j2)
    E2 = np.sign(w) * (-8 * a1 * a2 * np.cos(2 * Pg) / (2 * s) - (4 * a1 * a2 * np.sin(2 * Pg)) ** 2 / (4 * s ** 3))
    m = -np.sum(wg2 * E2)
    return [m * p["M1"], m * p["M2"], 2 * m]


# ---------------------------------------------------------------- real chain
def real_ops(p, L):
    n = 2 * L + 1
    x = np.arange(-L, L + 1).astype(float)
    T = sp.eye(n, k=-1, format="csr", dtype=complex)        # |x+1><x|
    Xs = sp.diags(np.kron(x, np.ones(2))).tocsr()
    Id = sp.identity(2 * n, format="csr", dtype=complex)

    def body(t, M):
        h = 0.5 * t * (sp.kron(T, -1j * S1) + sp.kron(T.T, 1j * S1)) + M * sp.kron(sp.identity(n), S3)
        h = h.tocsr()
        return h, (1j * (h @ Xs - Xs @ h)).tocsr()          # V = i [C, x]

    h1, v1 = body(p["t1"], p["M1"])
    h2, v2 = body(p["t2"], p["M2"])
    rows, cols, data = [], [], []
    for r, Wr in p["W"].items():
        i2 = np.arange(n)
        i1 = i2 + r
        ok = (i1 >= 0) & (i1 < n)
        i1, i2 = i1[ok], i2[ok]
        for a in range(4):
            for b in range(4):
                if Wr[a, b] != 0:
                    rows.append((i1 * 2 + a // 2) * 2 * n + i2 * 2 + a % 2)
                    cols.append((i1 * 2 + b // 2) * 2 * n + i2 * 2 + b % 2)
                    data.append(np.full(len(i1), Wr[a, b]))
    dim = 4 * n * n
    U = sp.csr_matrix((np.concatenate(data), (np.concatenate(rows), np.concatenate(cols))), shape=(dim, dim))
    H0 = (sp.kron(h1, Id) + sp.kron(Id, h2) + U).tocsr()
    one = np.ones(2 * n)
    x1 = np.kron(np.kron(x, np.ones(2)), one)
    x2 = np.kron(one, np.kron(x, np.ones(2)))
    s31 = np.kron(np.kron(np.ones(n), [1.0, -1.0]), one)
    s32 = np.kron(one, np.kron(np.ones(n), [1.0, -1.0]))
    # gauge with real hopping: psi'(x1, x2) = (-i)^(x1 + x2) psi(x1, x2)
    ph = np.array([1, -1j, -1, 1j])[np.rint(x1 + x2).astype(int) % 4]
    G = sp.diags(ph)

    def gauged(A):
        B = (G @ A @ G.conj()).tocsr()
        Br, Bi = B.real.tocsr(), B.imag.tocsr()
        Br.eliminate_zeros()
        Bi.eliminate_zeros()
        return Br, Bi

    Hr, Hi = gauged(H0)
    K = []
    for V in (sp.kron(v1, Id), sp.kron(Id, v2)):
        Vr, Vi = gauged(V)
        assert Vr.nnz == 0                                  # V' = i K with K real, antisymmetric
        K.append(Vi)
    return dict(H0=H0, Hr=Hr, Hi=Hi, K=K, ph=ph, x1=x1, x2=x2,
                D=[p["M1"] * x1 * s31, p["M2"] * x2 * s32, x1 + x2], n=n, x=x)


def packet(p, L, rmax, Pg, coef, psis):
    """Phi(x1,s1,x2,s2) = sum_j coef_j (2 pi)^-1/2 e^{i P_j (eta x1 + (1-eta) x2)} psi_j(x1-x2)."""
    n = 2 * L + 1
    x = np.arange(-L, L + 1)
    ridx = x[:, None] - x[None, :] + 2 * L
    Phi = np.zeros((n, n, 4), dtype=complex)
    pad = np.zeros((4 * L + 1, 4), dtype=complex)
    lo = 2 * L - rmax
    for Pj, cj, psi in zip(Pg, coef, psis):
        if cj == 0:
            continue
        pad[:] = 0
        ps = psi.reshape(2 * rmax + 1, 4)
        if lo >= 0:
            pad[lo:lo + 2 * rmax + 1] = ps
        else:
            pad[:] = ps[-lo:-lo + 4 * L + 1]
        ph = np.exp(1j * Pj * ETA * x)[:, None] * np.exp(1j * Pj * (1 - ETA) * x)[None, :]
        Phi += cj * ph[:, :, None] * pad[ridx]
    Phi /= np.sqrt(2 * np.pi)
    return Phi.reshape(n, n, 2, 2).transpose(0, 2, 1, 3).reshape(-1)


def cheb_coef(z):
    """exp(-i z h) = sum_k c_k T_k(h) with c_k = (2 - delta_k0) (-i)^k J_k(z)."""
    kmax = int(z + 12 * z ** (1 / 3) + 30)
    k = np.arange(kmax + 1)
    c = jv(k, z) * np.array([1, -1j, -1, 1j])[k % 4]
    c[1:] *= 2
    keep = np.nonzero(np.abs(c) > 1e-16)[0].max() + 1
    return c[:keep]


def slope(lam, v, lo, hi):
    """Smooth-window average of dv/dlambda: -int W' v with W = 8/(3T) sin^4 on [lo, hi]."""
    T = hi - lo
    m = (lam >= lo - 1e-9) & (lam <= hi + 1e-9)
    th = np.pi * (lam[m] - lo) / T
    dW = 8 / (3 * T) * 4 * np.sin(th) ** 3 * np.cos(th) * np.pi / T
    return float(-np.sum(dW * v[m]) * (lam[1] - lam[0]))


# ---------------------------------------------------------------- one task
def run(task):
    name, p = task
    t0 = time.time()
    L, rmax, eps = p["L"], p["rmax"], p["eps"]
    epsf = eps * 0.5 * (p["M1"] + p["M2"])
    # packet weight g(P) = c cos^4(pi (P-P0) / (2 Pc)), class G(P_0)
    nP = 161
    Pg = np.linspace(p["P0"] - p["Pc"], p["P0"] + p["Pc"], nP)
    dP = Pg[1] - Pg[0]
    g = np.cos(np.pi * (Pg - p["P0"]) / (2 * p["Pc"])) ** 4
    g /= np.sqrt(np.sum(g * g) * dP)
    wg2 = g * g * dP
    gc = g * np.exp(-1j * Pg * p["xc"])                       # joint shift of the packet by xc labels
    lev = [level(P, p, rmax) for P in Pg]
    Eb = np.array([l["Eb"] for l in lev])
    E1 = np.array([l["E1"] for l in lev])
    E2 = np.array([l["E2"] for l in lev])

    def avg(f):
        return float(np.sum(wg2 * np.array(f)))

    Pm = avg(Pg)
    dPsp = np.sqrt(avg((Pg - Pm) ** 2))
    alpha_g = [avg([l["alpha"][i] for l in lev]) for i in range(3)]
    beta_g = [avg([l["beta"][i] for l in lev]) for i in range(3)]
    l0 = level(p["P0"], p, rmax)
    fd1 = np.gradient(Eb, dP)
    fd2 = np.gradient(fd1, dP)
    core = slice(8, nP - 8)
    info = dict(
        Eb_P0=l0["Eb"], dEb_P0=l0["E1"], d2Eb_P0=l0["E2"], s3_P0=l0["s3"], rmean_P0=l0["rmean"],
        gap_min=float(min(l["gap"] for l in lev)), dist_band_min=float(min(l["dist_band"] for l in lev)),
        inside_band=bool(any(l["inside"] for l in lev)), tail_max=float(max(l["tail"] for l in lev)),
        V1_minus_V2_max=float(max(abs(l["v1"] - l["v2"]) for l in lev)),
        fd_check_dE=float(np.max(np.abs(fd1 - E1)[core])), fd_check_d2E=float(np.max(np.abs(fd2 - E2)[core])),
        P_mean=Pm, delta_P=dPsp, alpha_g=alpha_g, beta_g=beta_g, alpha_P0=l0["alpha"], beta_P0=l0["beta"],
        mean_dE_packet=avg(E1))
    # sampling step: the rest of the first-order motion oscillates with the frequencies |E_n(P) - E_b(P)|;
    # a sum over samples at the step dlam aliases the multiples of 2 pi / dlam onto zero frequency
    freqs = np.concatenate([l["freqs"] for l in lev])

    def margin(dl):
        fs = 2 * np.pi / dl
        return float(np.min(np.abs(freqs - np.maximum(1, np.rint(freqs / fs)) * fs)))

    if isinstance(p["dlam"], tuple):
        cand = np.arange(p["dlam"][0], p["dlam"][1] + 1e-9, 0.25)
        dlam = float(cand[int(np.argmax([margin(c) for c in cand]))])
    else:
        dlam = float(p["dlam"])
    info["alias_margin"] = margin(dlam)
    # start on the chain
    ops = real_ops(p, L)
    psis = [l["psi"] for l in lev]
    Phi = packet(p, L, rmax, Pg, gc * dP, psis)
    res = ops["H0"] @ Phi - packet(p, L, rmax, Pg, gc * Eb * dP, psis)
    info["packet_norm"] = float(np.linalg.norm(Phi))
    info["packet_residual"] = float(np.linalg.norm(res))
    Phi /= np.linalg.norm(Phi)
    # runs: common gradient, g1 only, plain gradient; each with + and -
    sel = list(p["cfgs"])
    nc = 2 * len(sel)
    cfg = [(eps, eps, 0.0), (eps, 0.0, 0.0), (0.0, 0.0, epsf)]
    par = [eps, eps, epsf]
    pred = [alpha_g[0] + alpha_g[1], alpha_g[0], alpha_g[2]]
    pred_b = [beta_g[0] + beta_g[1], beta_g[0], beta_g[2]]
    pred0 = [l0["alpha"][0] + l0["alpha"][1], l0["alpha"][0], l0["alpha"][2]]
    Dg = np.zeros((Phi.size, nc))
    for c, ci in enumerate(sel):
        g1, g2, f = cfg[ci]
        d = g1 * ops["D"][0] + g2 * ops["D"][1] + f * ops["D"][2]
        Dg[:, 2 * c], Dg[:, 2 * c + 1] = d, -d
    wn = sum(np.linalg.norm(Wr, 2) for Wr in p["W"].values())
    scale = 1.03 * (np.hypot(p["M1"], p["t1"]) + np.hypot(p["M2"], p["t2"]) + wn + np.abs(Dg).max())
    # real arithmetic: Psi[0] real parts, Psi[1] imaginary parts of the runs
    H2 = ((2 / scale) * ops["Hr"]).tocsr()
    dim = H2.shape[0]
    D2 = (2 / scale) * Dg
    tmp = np.empty_like(D2)
    rows = np.unique(ops["Hi"].nonzero()[0])                  # complex entries of the binding only
    Hi2 = (2 / scale) * ops["Hi"][rows] if len(rows) else None

    def step2(F, Y):                                          # Y <- 2 h F - Y, h = C_bod / scale
        np.negative(Y, out=Y)
        for a in range(2):
            if csr_matvecs is None:
                Y[a] += H2 @ F[a]
            else:
                csr_matvecs(dim, dim, nc, H2.indptr, H2.indices, H2.data, F[a].ravel(), Y[a].ravel())
            np.multiply(D2, F[a], out=tmp)
            Y[a] += tmp
        if Hi2 is not None:
            Y[0][rows] -= Hi2 @ F[1]
            Y[1][rows] += Hi2 @ F[0]
        return Y

    coef = cheb_coef(scale * dlam)
    nst = int(round(p["lam_max"] / dlam))
    lam = dlam * np.arange(nst + 1)
    Phig = ops["ph"] * Phi
    Psi = np.stack([np.repeat(Phig.real[:, None], nc, axis=1), np.repeat(Phig.imag[:, None], nc, axis=1)])
    obs = np.zeros((nst + 1, 4, nc))

    def measure(k):
        w2 = Psi[0] ** 2 + Psi[1] ** 2
        for i in range(2):                                    # <V_i> = -2 Re^T K_i Im
            obs[k, i] = -2 * np.einsum("ij,ij->j", Psi[0], ops["K"][i] @ Psi[1])
        obs[k, 2] = ops["x1"] @ w2
        obs[k, 3] = ops["x2"] @ w2
        return w2

    measure(0)
    for k in range(1, nst + 1):
        f0 = Psi
        f1 = step2(Psi, np.zeros_like(Psi))
        f1 *= 0.5
        acc = coef[0].real * f0
        for j in range(1, len(coef)):
            if j > 1:
                f0, f1 = f1, step2(f1, f0)                    # T_j = 2 h T_{j-1} - T_{j-2}
            if j % 2 == 0:
                for a in range(2):
                    np.multiply(f1[a], coef[j].real, out=tmp)
                    acc[a] += tmp
            else:                                             # i c (re + i im) = c (-im + i re)
                np.multiply(f1[1], coef[j].imag, out=tmp)
                acc[0] -= tmp
                np.multiply(f1[0], coef[j].imag, out=tmp)
                acc[1] += tmp
        Psi = acc
        w2 = measure(k)
    info["norm_drift"] = float(np.max(np.abs(np.sum(w2, axis=0) - 1)))
    info["v0_start"] = [float(obs[0, 0, 0]), float(obs[0, 1, 0])]
    edge = (np.abs(ops["x1"]) > L - 3) | (np.abs(ops["x2"]) > L - 3)
    info["edge_weight_end"] = float(np.sum(w2[edge, 0]))
    T = lam[-1]
    out = dict(name=name, info=info, configs=[], lam=lam.tolist(), series={})
    for c, ci in enumerate(sel):
        lab = LABELS[ci]
        fo = (obs[:, :, 2 * c] - obs[:, :, 2 * c + 1]) / (2 * par[ci])    # first order per unit gradient
        v1, v2, sep = fo[:, 0], fo[:, 1], fo[:, 2] - fo[:, 3]
        s1, s2 = slope(lam, v1, 0, T), slope(lam, v2, 0, T)
        half = [slope(lam, v, T / 2, T) for v in (v1, v2)] + [slope(lam, v, 0, T / 2) for v in (v1, v2)]
        ssep = slope(lam, sep, 0, T)
        ssep_half = [slope(lam, sep, 0, T / 2), slope(lam, sep, T / 2, T)]
        out["configs"].append(dict(
            config=lab, predicted_slope=pred[ci], alpha_P0=pred0[ci], slope_v1=s1, slope_v2=s2,
            rel_dev_v1=s1 / pred[ci] - 1, rel_dev_v2=s2 / pred[ci] - 1,
            half_window_rel_dev=[h / pred[ci] - 1 for h in half],
            two_point_rel_dev=[float(v1[-1] / T / pred[ci] - 1), float(v2[-1] / T / pred[ci] - 1)],
            rest_sup=[float(np.max(np.abs(v1 - pred[ci] * lam))), float(np.max(np.abs(v2 - pred[ci] * lam)))],
            linear_part_end=float(abs(pred[ci]) * T),
            sep_predicted_slope=pred_b[ci], sep_slope=ssep, sep_slope_half_windows=ssep_half, sep_end=float(sep[-1]),
            sep_max_abs=float(np.max(np.abs(sep))), sep_minus_linear_sup=float(np.max(np.abs(sep - pred_b[ci] * lam)))))
        out["series"][lab] = dict(v1=v1.tolist(), v2=v2.tolist(), sep=sep.tolist())
    if p["R"] and len(sel) == 3:
        cf, u = closed_form(p)
        cfp = closed_form_packet(p, Pg, wg2)

        def comb(z):
            return [z[0] + z[1], z[0], z[2]]

        out["closed_form"] = dict(u=u, eps2=[(p["t1"] / p["M1"]) ** 2, (p["t2"] / p["M2"]) ** 2],
                                  closed_P0=comb(cf), closed_packet=comb(cfp), level_P0=pred0,
                                  slope_v1=[c["slope_v1"] for c in out["configs"]])
    out["numerics"] = dict(L=L, chain_sites=2 * L + 1, dim=int(Phi.size), rmax=rmax, nP=nP, Pc=p["Pc"], P0=p["P0"], xc=p["xc"],
                           lam_max=float(T), dlam=dlam, window_half_width=6 * np.pi / T, eps=eps, eps_plain=epsf, cheb_terms=int(len(coef)),
                           seconds=round(time.time() - t0, 1))
    return out


def scaling_table():
    """alpha(0) from the numerical level against (13.13) at tau -> s tau, w -> s^2 w."""
    rows = []
    for name in ("S1", "S2", "S3"):
        for s in (1.0, 0.5, 0.25):
            p = BASE[name]
            q = dict(p, t1=p["t1"] * s, t2=p["t2"] * s, W={0: p["W"][0] * s * s})
            l0 = level(0.0, q, 64)
            cf, u = closed_form(q)
            rows.append(dict(set=name, s=s, tau_over_M=[q["t1"] / q["M1"], q["t2"] / q["M2"]], u=u,
                             level=l0["alpha"], closed=cf,
                             rel_dev=[l0["alpha"][i] / cf[i] - 1 for i in range(3)]))
    return rows


def clock_ratio(p, rmax):
    """Numerical level at P = 0: Gamma_i = <sigma_3^(i)>_0 = dE_b(0)/dM_i and its derivative in the data,
    T[i][j] = M_j dGamma_i/dM_j = M_j d^2E_b(0)/dM_i dM_j = -2 M_j Re <sigma_3^(i) psi| R |sigma_3^(j) psi>."""
    nr = 2 * rmax + 1
    vals, vecs = np.linalg.eigh(fibre_ops(0.0, p, rmax)[0])
    b = int(np.argmax(np.abs(vecs[rmax * 4, :]) ** 2))        # weight on r = 0, branch |11>
    psi = vecs[:, b]
    dE = vals - vals[b]
    dE[b] = np.inf
    s3 = [np.kron(np.ones(nr), S3A), np.kron(np.ones(nr), S3B)]
    Mi = [p["M1"], p["M2"]]
    c = [vecs.conj().T @ (s * psi) for s in s3]
    G = [float(np.vdot(psi, s * psi).real) for s in s3]
    T = [[float(-2 * Mi[j] * np.sum(c[i].conj() * c[j] / dE).real) for j in range(2)] for i in range(2)]
    return G, T


def clock_ratio_closed(p):
    """Leading order in R: Gamma_i of (11.20) and M_j times the second derivatives (13.22)."""
    t, M, w = [p["t1"], p["t2"]], [p["M1"], p["M2"]], p["W"][0][0, 0].real
    a = [t[i] ** 2 / (4 * M[i]) for i in range(2)]
    asum = a[0] + a[1]
    u, sg = abs(w) / asum, np.sign(w)
    lam = 1 + sg / np.sqrt(1 + u * u)
    d2 = sg * u * u / (asum * (1 + u * u) ** 1.5)             # second derivative of a + sgn(w) sqrt(w^2 + a^2) in a
    G = [1 - a[i] / M[i] * lam for i in range(2)]
    T = [[(2 * a[i] / M[i] * lam if i == j else 0.0) + a[i] * a[j] / M[i] * d2 for j in range(2)] for i in range(2)]
    return G, T, u


def clock_ratio_table():
    """Derivative of the clock ratio in the data against (13.22), and rho_i - g_i against (13.18),
    at tau -> s tau, w -> s^2 w (numerical level at P = 0, fibre |r| <= 64)."""
    rows, h = [], 1e-4
    for name in ("S1", "S2", "S3"):
        for s in (1.0, 0.5, 0.25):
            p = BASE[name]
            q = dict(p, t1=p["t1"] * s, t2=p["t2"] * s, W={0: p["W"][0] * s * s})
            G, T = clock_ratio(q, 64)
            Gc, Tc, u = clock_ratio_closed(q)
            T48 = clock_ratio(q, 48)[1]
            fd = [[0.0, 0.0], [0.0, 0.0]]                     # symmetric difference of Gamma_i in M_j
            for j, key in enumerate(("M1", "M2")):
                Gp = clock_ratio(dict(q, **{key: q[key] * (1 + h)}), 64)[0]
                Gm = clock_ratio(dict(q, **{key: q[key] * (1 - h)}), 64)[0]
                for i in range(2):
                    fd[i][j] = (Gp[i] - Gm[i]) / (2 * h)
            ij = [(i, j) for i in range(2) for j in range(2)]
            # rho_i - g_i per unit gradient, (13.21) against (13.18): common gradient, g1 only, g2 only
            rho = [[(T[i][0] + T[i][1]) / G[i], T[i][0] / G[i], T[i][1] / G[i]] for i in range(2)]
            rhoc = [[Tc[i][0] + Tc[i][1], Tc[i][0], Tc[i][1]] for i in range(2)]
            rows.append(dict(
                set=name, s=s, tau_over_M=[q["t1"] / q["M1"], q["t2"] / q["M2"]], u=u,
                Gamma=G, Gamma_closed=Gc, one_minus_Gamma_rel_dev=[(1 - G[i]) / (1 - Gc[i]) - 1 for i in range(2)],
                T=T, T_closed=Tc, T_rel_dev=[[T[i][j] / Tc[i][j] - 1 for j in range(2)] for i in range(2)],
                T_abs_dev=[[T[i][j] - Tc[i][j] for j in range(2)] for i in range(2)],
                fd_rel_dev=float(max(abs(fd[i][j] / T[i][j] - 1) for i, j in ij)),
                rmax48_rel_change=float(max(abs(T48[i][j] / T[i][j] - 1) for i, j in ij)),
                rho_minus_g=rho, rho_minus_g_closed=rhoc,
                rho_rel_dev=[[rho[i][k] / rhoc[i][k] - 1 for k in range(3)] for i in range(2)]))
    return rows


def fibre_range_table():
    """Coefficients (13.8), (13.10) at P0 for the fibre ranges |r| <= 32, 48 against 64."""
    rows = []
    for name, p in BASE.items():
        q = dict(DEFAULT, **p)
        ref = level(q["P0"], q, 64)
        for rmax in (32, 48):
            l = level(q["P0"], q, rmax)
            da = max(abs(l["alpha"][i] / ref["alpha"][i] - 1) for i in range(3))
            db = max(abs(l["beta"][i] - ref["beta"][i]) for i in range(3))
            rows.append(dict(set=name, rmax=rmax, tail=l["tail"], alpha_rel_change=da, beta_abs_change=db))
    return rows


def main():
    t0 = time.time()
    OUT.mkdir(exist_ok=True)
    names = sys.argv[1:] or list(BASE) + list(VARIANTS)
    tasks = []
    for nm in names:
        if nm in BASE:
            tasks.append((nm, dict(DEFAULT, **BASE[nm])))
        else:
            b, ch = VARIANTS[nm]
            tasks.append((nm, dict(dict(DEFAULT, **BASE[b]), cfgs=(1,), **ch)))
    with Pool(min(len(tasks), max(1, (os.cpu_count() or 2) - 2))) as pool:
        results = pool.map(run, tasks, chunksize=1)
    res = {r["name"]: r for r in results}
    scal = scaling_table()
    frng = fibre_range_table()
    clk = clock_ratio_table()
    pad = " " * 22
    lines = []
    for nm, r in res.items():
        nu, inf = r["numerics"], r["info"]
        lines.append(f"== {nm}: chain |x_i|<={nu['L']} ({nu['chain_sites']} sites, dim {nu['dim']}), fibre |r|<={nu['rmax']}, "
                     f"packet cos^4 on |P-{nu['P0']}|<={nu['Pc']} (delta P={inf['delta_P']:.4f}), centre label {nu['xc']}, "
                     f"lambda<={nu['lam_max']:.0f} step {nu['dlam']} (alias margin {inf['alias_margin']:.3f}, window half width "
                     f"{nu['window_half_width']:.4f}), eps={nu['eps']:.1e}, {nu['seconds']} s")
        lines.append(f"   level: E_b={inf['Eb_P0']:.8f} E_b'={inf['dEb_P0']:+.3e} E_b''={inf['d2Eb_P0']:+.6e} "
                     f"<s3>={inf['s3_P0'][0]:.6f},{inf['s3_P0'][1]:.6f} gap>={inf['gap_min']:.3e} "
                     f"dist to bands>={inf['dist_band_min']:.3e} inside band: {inf['inside_band']}")
        lines.append(f"   checks: |<V1>-<V2>|<={inf['V1_minus_V2_max']:.1e}, FD(E_b') {inf['fd_check_dE']:.1e}, "
                     f"FD(E_b'') {inf['fd_check_d2E']:.1e}, fibre tail {inf['tail_max']:.1e}, packet norm {inf['packet_norm']:.10f}, "
                     f"residual {inf['packet_residual']:.1e}, norm drift {inf['norm_drift']:.1e}, edge weight {inf['edge_weight_end']:.1e}")
        for c in r["configs"]:
            lines.append(f"   {c['config']:<22} slope v1 {c['slope_v1']:+.8e} v2 {c['slope_v2']:+.8e} | (13.7) {c['predicted_slope']:+.8e} | "
                         f"rel dev {c['rel_dev_v1']:+.1e} {c['rel_dev_v2']:+.1e} | half windows {max(abs(h) for h in c['half_window_rel_dev']):.1e} | "
                         f"two-point {c['two_point_rel_dev'][0]:+.1e} {c['two_point_rel_dev'][1]:+.1e} | "
                         f"rest sup {c['rest_sup'][0]:.2e} {c['rest_sup'][1]:.2e} (linear part at end {c['linear_part_end']:.2e})")
            lines.append(f"   {pad} separation: slope {c['sep_slope']:+.4e} (half windows {c['sep_slope_half_windows'][0]:+.4e} "
                         f"{c['sep_slope_half_windows'][1]:+.4e}) | (13.10) <beta>_g {c['sep_predicted_slope']:+.4e} | "
                         f"max |sep| {c['sep_max_abs']:.3e} | sup |sep - lambda<beta>| {c['sep_minus_linear_sup']:.3e}")
        if "closed_form" in r:
            cf = r["closed_form"]
            for i, lab in enumerate(("common", "g1 only", "plain")):
                lines.append(f"   closed form {lab:<8} (13.13) {cf['closed_P0'][i]:+.6e} | level at P0 {cf['level_P0'][i]:+.6e} "
                             f"(rel {cf['level_P0'][i] / cf['closed_P0'][i] - 1:+.2e}) | (11.12) packet average {cf['closed_packet'][i]:+.6e} "
                             f"vs evolution {cf['slope_v1'][i]:+.6e} (rel {cf['slope_v1'][i] / cf['closed_packet'][i] - 1:+.2e}); "
                             f"u={cf['u']:.3f}, (tau/M)^2={cf['eps2'][0]:.3f},{cf['eps2'][1]:.3f}")
    conv = []
    lines.append("== convergence (configuration g1 only): relative change of the slopes against the base run")
    for nm in res:
        if nm in VARIANTS and VARIANTS[nm][0] in res:
            b, ch = VARIANTS[nm]
            cb = [c for c in res[b]["configs"] if c["config"] == LABELS[1]][0]
            cv = res[nm]["configs"][0]
            row = dict(variant=nm, base=b, changed=ch, rel_dev_variant=[cv["rel_dev_v1"], cv["rel_dev_v2"]],
                       rel_dev_base=[cb["rel_dev_v1"], cb["rel_dev_v2"]],
                       slope_change=[cv["slope_v1"] / cb["slope_v1"] - 1, cv["slope_v2"] / cb["slope_v2"] - 1],
                       sep_slope=[cv["sep_slope"], cb["sep_slope"]])
            conv.append(row)
            lines.append(f"   {nm:<10} {str(ch):<22} slope change v1 {row['slope_change'][0]:+.1e} v2 {row['slope_change'][1]:+.1e} | "
                         f"rel dev from (13.7): variant {cv['rel_dev_v1']:+.1e} {cv['rel_dev_v2']:+.1e}, base {cb['rel_dev_v1']:+.1e} {cb['rel_dev_v2']:+.1e} | "
                         f"separation slope: variant {cv['sep_slope']:+.4e}, base {cb['sep_slope']:+.4e}")
    lines.append("== fibre range: change of the coefficients (13.8), (13.10) at P0 against |r|<=64")
    for row in frng:
        lines.append(f"   {row['set']} |r|<={row['rmax']}: tail of psi {row['tail']:.1e}, alpha rel change {row['alpha_rel_change']:.1e}, "
                     f"beta abs change {row['beta_abs_change']:.1e}")
    lines.append("== scaling of the deviation from (13.13): tau -> s tau, w -> s^2 w (numerical level at P0=0, fibre |r|<=64)")
    for row in scal:
        lines.append(f"   {row['set']} s={row['s']:<5} tau/M={row['tau_over_M'][0]:.3f},{row['tau_over_M'][1]:.3f} u={row['u']:.3f} "
                     f"rel dev of coefficients (g1, g2, plain): {row['rel_dev'][0]:+.3e} {row['rel_dev'][1]:+.3e} {row['rel_dev'][2]:+.3e}")
    lines.append("== clock ratio Gamma_i = dE_b(0)/dM_i and its derivative in the data, T_ij = M_j dGamma_i/dM_j, against (11.20), "
                 "(13.22): tau -> s tau, w -> s^2 w (numerical level at P0=0, fibre |r|<=64)")
    for row in clk:
        td, ta, rd = row["T_rel_dev"], row["T_abs_dev"], row["rho_rel_dev"]
        lines.append(f"   {row['set']} s={row['s']:<5} tau/M={row['tau_over_M'][0]:.3f},{row['tau_over_M'][1]:.3f} u={row['u']:.3f} "
                     f"1-Gamma_i rel dev {row['one_minus_Gamma_rel_dev'][0]:+.3e} {row['one_minus_Gamma_rel_dev'][1]:+.3e} | "
                     f"T_11 {row['T'][0][0]:+.6e} T_12 {row['T'][0][1]:+.6e} T_21 {row['T'][1][0]:+.6e} T_22 {row['T'][1][1]:+.6e} | "
                     f"rel dev from (13.22) {td[0][0]:+.3e} {td[0][1]:+.3e} {td[1][0]:+.3e} {td[1][1]:+.3e} | "
                     f"abs dev {ta[0][0]:+.2e} {ta[0][1]:+.2e} {ta[1][0]:+.2e} {ta[1][1]:+.2e}")
        lines.append(f"   {pad} rho_i - g_i, (13.21) against (13.18), rel dev (common, g1 only, g2 only): part 1 {rd[0][0]:+.3e} {rd[0][1]:+.3e} "
                     f"{rd[0][2]:+.3e} | part 2 {rd[1][0]:+.3e} {rd[1][1]:+.3e} {rd[1][2]:+.3e} | symmetric difference in M_j against "
                     f"the resolvent {row['fd_rel_dev']:.1e} | fibre |r|<=48 against 64 {row['rmax48_rel_change']:.1e}")
    try:
        import matplotlib
        matplotlib.use("Agg")
        import matplotlib.pyplot as plt
        show = [nm for nm in ("S1", "S2", "S3", "S4", "S5") if nm in res]
        fig, ax = plt.subplots(2, len(show), figsize=(4.2 * len(show), 6.4), squeeze=False)
        for j, nm in enumerate(show):
            lam = np.array(res[nm]["lam"])
            for c, col in zip(res[nm]["configs"], ("C0", "C1", "C2")):
                s = res[nm]["series"][c["config"]]
                ax[0, j].plot(lam, s["v1"], col, lw=1.2, label=c["config"])
                ax[0, j].plot(lam, s["v2"], col, lw=0.8, ls=":")
                ax[0, j].plot(lam, c["predicted_slope"] * lam, "k--", lw=0.6)
                ax[1, j].plot(lam, s["sep"], col, lw=1.0)
                ax[1, j].plot(lam, c["sep_predicted_slope"] * lam, "k--", lw=0.6)
            ax[0, j].set_title(f"{nm}: first-order velocities (solid 1, dotted 2)", fontsize=9)
            ax[1, j].set_title("first-order separation; dashed: linear parts of (13.7), (13.10)", fontsize=9)
            ax[1, j].set_xlabel("lambda")
        ax[0, 0].legend(fontsize=7)
        fig.tight_layout()
        fig.savefig(OUT / "first_order_motion.png", dpi=110)
    except Exception as exc:                                   # the figure is not needed for the check
        lines.append(f"figure skipped: {exc}")
    lines.append(f"total run time {time.time() - t0:.1f} s")
    (OUT / "summary.txt").write_text("\n".join(lines) + "\n", encoding="utf-8")
    slim = {nm: {k: v for k, v in r.items() if k not in ("series", "lam")} for nm, r in res.items()}
    (OUT / "results.json").write_text(json.dumps(dict(sets=slim, convergence=conv, fibre_range=frng, scaling=scal, clock_ratio=clk),
                                                 indent=1, default=float), encoding="utf-8")
    print("\n".join(lines))


if __name__ == "__main__":
    main()
output/first_order_motion.png302 KB · raw
output/first_order_motion.png
output/results.json69 KB · raw
{
 "sets": {
  "S1": {
   "name": "S1",
   "info": {
    "Eb_P0": 1.991769390586346,
    "dEb_P0": 6.678403045245842e-24,
    "d2Eb_P0": 0.014176799535102808,
    "s3_P0": [
     0.9970498586401999,
     0.9970498586401999
    ],
    "rmean_P0": -1.8521084904794254e-13,
    "gap_min": 0.008271701136514764,
    "dist_band_min": 0.008230609413653944,
    "inside_band": false,
    "tail_max": 1.6879367253016974e-09,
    "V1_minus_V2_max": 5.637851296924623e-18,
    "fd_check_dE": 1.0823381577963753e-07,
    "fd_check_d2E": 5.077184005355256e-07,
    "P_mean": -6.938893903907228e-18,
    "delta_P": 0.1058883937041857,
    "alpha_g": [
     -0.013935046029841205,
     -0.013935046029841205,
     -0.027950861446090602
    ],
    "beta_g": [
     1.5226982824844961e-15,
     1.5227100793188133e-15,
     3.065032769421403e-15
    ],
    "alpha_P0": [
     -0.014134975972444706,
     -0.014134975972444706,
     -0.028353599070205616
    ],
    "beta_P0": [
     2.097789295022752e-18,
     2.097789295022752e-18,
     4.20799276353896e-18
    ],
    "mean_dE_packet": -2.3852447794681098e-18,
    "alias_margin": 0.04872050667965899,
    "packet_norm": 0.9999999999287391,
    "packet_residual": 3.439989775100738e-07,
    "norm_drift": 1.0647038806155251e-13,
    "v0_start": [
     -2.4345714377312935e-18,
     -2.5396211165233316e-18
    ],
    "edge_weight_end": 2.9986378102189095e-09
   },
   "configs": [
    {
     "config": "common gradient g1=g2",
     "predicted_slope": -0.02787009205968241,
     "alpha_P0": -0.02826995194488941,
     "slope_v1": -0.027870011785811395,
     "slope_v2": -0.027870011785812505,
     "rel_dev_v1": -2.8802872571453975e-06,
     "rel_dev_v2": -2.880287217288391e-06,
     "half_window_rel_dev": [
      -7.339928193683676e-06,
      -7.339928216776315e-06,
      3.1207085600559736e-05,
      3.1207085359863385e-05
     ],
     "two_point_rel_dev": [
      5.959485893702876e-05,
      5.959485893058947e-05
     ],
     "rest_sup": [
      0.022638003105342364,
      0.022638003107900317
     ],
     "linear_part_end": 83.98652242185294,
     "sep_predicted_slope": 3.0454083618033094e-15,
     "sep_slope": 6.960385936653441e-13,
     "sep_slope_half_windows": [
      1.3883980096187664e-12,
      -6.9118297973402096e-12
     ],
     "sep_end": -9.764335118234158e-09,
     "sep_max_abs": 1.5890691429376602e-08,
     "sep_minus_linear_sup": 1.5898637661144638e-08
    },
    {
     "config": "g1 only (g2=0)",
     "predicted_slope": -0.013935046029841205,
     "alpha_P0": -0.014134975972444706,
     "slope_v1": -0.013935321093479476,
     "slope_v2": -0.01393475581775897,
     "rel_dev_v1": 1.973898311358191e-05,
     "rel_dev_v2": -2.0826058386491653e-05,
     "half_window_rel_dev": [
      -0.00029380969959280634,
      0.00028895345465795863,
      0.012094909204611204,
      -0.01203132211314828
     ],
     "two_point_rel_dev": [
      0.0010310957653001385,
      -0.0009061494480220311
     ],
     "rest_sup": [
      0.8339878244819787,
      0.8346920694678415
     ],
     "linear_part_end": 41.99326121092647,
     "sep_predicted_slope": 1.5226982824844961e-15,
     "sep_slope": -0.00038828532974404694,
     "sep_slope_half_windows": [
      -0.039187898654764616,
      -0.019537570710251553
     ],
     "sep_end": -162.04222183697857,
     "sep_max_abs": 270.0405195839799,
     "sep_minus_linear_sup": 270.0405195839803
    },
    {
     "config": "plain gradient",
     "predicted_slope": -0.027950861446090602,
     "alpha_P0": -0.028353599070205616,
     "slope_v1": -0.027950779459121094,
     "slope_v2": -0.02795077945911782,
     "rel_dev_v1": -2.933253762771315e-06,
     "rel_dev_v2": -2.933253879899844e-06,
     "half_window_rel_dev": [
      -6.693219174680465e-06,
      -6.693218834397108e-06,
      2.6372748688885395e-05,
      2.6372748561209747e-05
     ],
     "two_point_rel_dev": [
      -6.528241241376964e-05,
      -6.528241252101719e-05
     ],
     "rest_sup": [
      0.018989099877418036,
      0.01898909988048625
     ],
     "linear_part_end": 84.22992096779403,
     "sep_predicted_slope": 3.065032769421403e-15,
     "sep_slope": -2.4351369338467862e-12,
     "sep_slope_half_windows": [
      4.152185660134693e-12,
      2.203395697241323e-12
     ],
     "sep_end": 7.566995918750763e-10,
     "sep_max_abs": 2.7168425731360912e-08,
     "sep_minus_linear_sup": 2.7160203014698746e-08
    }
   ],
   "closed_form": {
    "u": 0.9999999999999998,
    "eps2": [
     0.04000000000000001,
     0.04000000000000001
    ],
    "closed_P0": [
     -0.02828427124746191,
     -0.014142135623730954,
     -0.02828427124746191
    ],
    "closed_packet": [
     -0.027886726991595077,
     -0.013943363495797539,
     -0.027886726991595077
    ],
    "level_P0": [
     -0.02826995194488941,
     -0.014134975972444706,
     -0.028353599070205616
    ],
    "slope_v1": [
     -0.027870011785811395,
     -0.013935321093479476,
     -0.027950779459121094
    ]
   },
   "numerics": {
    "L": 60,
    "chain_sites": 121,
    "dim": 58564,
    "rmax": 48,
    "nP": 161,
    "Pc": 0.5,
    "P0": 0.0,
    "xc": 0,
    "lam_max": 3013.5,
    "dlam": 36.75,
    "window_half_width": 0.006255037637809444,
    "eps": 5e-07,
    "eps_plain": 5e-07,
    "cheb_terms": 126,
    "seconds": 352.3
   }
  },
  "S2": {
   "name": "S2",
   "info": {
    "Eb_P0": 2.240614014293727,
    "dEb_P0": -3.18574091085535e-19,
    "d2Eb_P0": 0.01003066752863435,
    "s3_P0": [
     0.996335156921266,
     0.998095630527932
    ],
    "rmean_P0": 2.1015849628986644e-14,
    "gap_min": 0.0094198453517782,
    "dist_band_min": 0.009385985706273026,
    "inside_band": false,
    "tail_max": 5.442634781938319e-11,
    "V1_minus_V2_max": 1.3964523981613297e-16,
    "fd_check_dE": 8.380500898189785e-08,
    "fd_check_d2E": 3.737024656200877e-07,
    "P_mean": -6.938893903907228e-18,
    "delta_P": 0.1058883937041857,
    "alpha_g": [
     -0.009834120537409495,
     -0.012314314370034045,
     -0.019739735737077473
    ],
    "beta_g": [
     1.2644793269433296e-15,
     1.5882292958010834e-15,
     2.5482382477718345e-15
    ],
    "alpha_P0": [
     -0.009993906706166952,
     -0.012514456789510443,
     -0.0200613350572687
    ],
    "beta_P0": [
     -2.827870092308001e-17,
     -3.541083493875294e-17,
     -5.676543826971411e-17
    ],
    "mean_dE_packet": -3.2526065174565133e-19,
    "alias_margin": 0.03598128065087458,
    "packet_norm": 0.9999999999305118,
    "packet_residual": 2.873561629312379e-07,
    "norm_drift": 5.080380560684716e-13,
    "v0_start": [
     2.3378439123695995e-19,
     -1.29102031151915e-18
    ],
    "edge_weight_end": 8.107926510263556e-10
   },
   "configs": [
    {
     "config": "common gradient g1=g2",
     "predicted_slope": -0.02214843490744354,
     "alpha_P0": -0.022508363495677395,
     "slope_v1": -0.022148315920302926,
     "slope_v2": -0.022148355357563106,
     "rel_dev_v1": -5.372259534786039e-06,
     "rel_dev_v2": -3.59167050700826e-06,
     "half_window_rel_dev": [
      -0.00020905812590665818,
      0.00011983645765223372,
      6.072275087931622e-05,
      -3.577112540442684e-05
     ],
     "two_point_rel_dev": [
      -0.0001811624395272604,
      7.916547814401653e-05
     ],
     "rest_sup": [
      0.17472053565036783,
      0.10033215580765686
     ],
     "linear_part_end": 66.74430859358111,
     "sep_predicted_slope": 2.852708622744413e-15,
     "sep_slope": -3.0080171597785477e-05,
     "sep_slope_half_windows": [
      -0.003565634056944688,
      0.0011616043803721516
     ],
     "sep_end": -22.20763365998573,
     "sep_max_abs": 38.96600546249135,
     "sep_minus_linear_sup": 38.966005462491985
    },
    {
     "config": "g1 only (g2=0)",
     "predicted_slope": -0.009834120537409495,
     "alpha_P0": -0.009993906706166952,
     "slope_v1": -0.009833990415379714,
     "slope_v2": -0.00983419302048956,
     "rel_dev_v1": -1.323168953304421e-05,
     "rel_dev_v2": 7.37057063604496e-06,
     "half_window_rel_dev": [
      -0.002315103879232727,
      0.0014907764889497965,
      0.0006833488370772134,
      -0.0004363427340573489
     ],
     "two_point_rel_dev": [
      -0.0011354662903279023,
      0.0005903457960099168
     ],
     "rest_sup": [
      0.84314854589507,
      0.5439792508747452
     ],
     "linear_part_end": 29.635122239483515,
     "sep_predicted_slope": 1.2644793269433296e-15,
     "sep_slope": -0.00015424419793151801,
     "sep_slope_half_windows": [
      -0.018304614885373036,
      0.005948830710825901
     ],
     "sep_end": -114.55400701647159,
     "sep_max_abs": 200.7028476803575,
     "sep_minus_linear_sup": 200.7028476803578
    },
    {
     "config": "plain gradient",
     "predicted_slope": -0.019739735737077473,
     "alpha_P0": -0.0200613350572687,
     "slope_v1": -0.019739606629620193,
     "slope_v2": -0.019739678324936626,
     "rel_dev_v1": -6.540485597228418e-06,
     "rel_dev_v2": -2.908455392303111e-06,
     "half_window_rel_dev": [
      -0.00041622495725635034,
      0.0002540605485907843,
      0.00012160439517217014,
      -7.50704477437969e-05
     ],
     "two_point_rel_dev": [
      -8.077033907416542e-05,
      0.00010025622098619458
     ],
     "rest_sup": [
      0.31027436838855404,
      0.1903778951299231
     ],
     "linear_part_end": 59.485693643682964,
     "sep_predicted_slope": 2.5482382477718345e-15,
     "sep_slope": -5.46005694325876e-05,
     "sep_slope_half_windows": [
      -0.006482615592151719,
      0.002108662504530895
     ],
     "sep_end": -40.55957139421662,
     "sep_max_abs": 71.08718965993592,
     "sep_minus_linear_sup": 71.08718965993648
    }
   ],
   "closed_form": {
    "u": 1.2135922330097086,
    "eps2": [
     0.04000000000000001,
     0.020735999999999997
    ],
    "closed_P0": [
     -0.022504287919540393,
     -0.010001905742017952,
     -0.020003811484035905
    ],
    "closed_packet": [
     -0.022145586656948147,
     -0.00984248295864362,
     -0.01968496591728724
    ],
    "level_P0": [
     -0.022508363495677395,
     -0.009993906706166952,
     -0.0200613350572687
    ],
    "slope_v1": [
     -0.022148315920302926,
     -0.009833990415379714,
     -0.019739606629620193
    ]
   },
   "numerics": {
    "L": 60,
    "chain_sites": 121,
    "dim": 58564,
    "rmax": 48,
    "nP": 161,
    "Pc": 0.5,
    "P0": 0.0,
    "xc": 0,
    "lam_max": 3013.5,
    "dlam": 36.75,
    "window_half_width": 0.006255037637809444,
    "eps": 5e-07,
    "eps_plain": 5.625e-07,
    "cheb_terms": 137,
    "seconds": 369.7
   }
  },
  "S3": {
   "name": "S3",
   "info": {
    "Eb_P0": 1.9460122838986929,
    "dEb_P0": -3.3538541632865066e-20,
    "d2Eb_P0": -0.011038448387855348,
    "s3_P0": [
     0.9843268447697007,
     0.9860022906747499
    ],
    "rmean_P0": 8.670598743224439e-14,
    "gap_min": 0.010330621748721125,
    "dist_band_min": 0.010293537976904465,
    "inside_band": false,
    "tail_max": 1.895045545372569e-11,
    "V1_minus_V2_max": 1.465841337200402e-16,
    "fd_check_dE": 9.075780518872506e-08,
    "fd_check_d2E": 4.056227565045478e-07,
    "P_mean": -6.938893903907228e-18,
    "delta_P": 0.1058883937041857,
    "alpha_g": [
     0.010694956507430117,
     0.009641763759717484,
     0.021731553110541375
    ],
    "beta_g": [
     1.1676400444095362e-15,
     1.0522131084957993e-15,
     2.35518827091307e-15
    ],
    "alpha_P0": [
     0.010865441072770843,
     0.009795541856328334,
     0.022076896775710696
    ],
    "beta_P0": [
     1.0853444239896021e-17,
     9.784726328658392e-18,
     2.2052521065673788e-17
    ],
    "mean_dE_packet": 3.415236843329339e-18,
    "alias_margin": 0.03990537941932626,
    "packet_norm": 0.9999999999306539,
    "packet_residual": 2.856731876822699e-07,
    "norm_drift": 1.6542323066914832e-13,
    "v0_start": [
     3.9204421019794965e-18,
     3.3839797738564146e-18
    ],
    "edge_weight_end": 1.0437427044996338e-09
   },
   "configs": [
    {
     "config": "common gradient g1=g2",
     "predicted_slope": 0.020336720267147602,
     "alpha_P0": 0.020660982929099177,
     "slope_v1": 0.020336677941462697,
     "slope_v2": 0.020336646604721564,
     "rel_dev_v1": -2.081244386942238e-06,
     "rel_dev_v2": -3.6221389225765677e-06,
     "half_window_rel_dev": [
      0.00022065240048885215,
      -0.00018132468114173683,
      -0.00015303584035430973,
      0.0001217596833471557
     ],
     "two_point_rel_dev": [
      7.441307066446967e-05,
      -4.5926291473930014e-05
     ],
     "rest_sup": [
      0.1947287933030959,
      0.1558839531788756
     ],
     "linear_part_end": 61.17285456357999,
     "sep_predicted_slope": 2.2198531529053355e-15,
     "sep_slope": 2.3909563586098513e-05,
     "sep_slope_half_windows": [
      0.0016481540516694738,
      -0.00020805542022964255
     ],
     "sep_end": 25.965304028926766,
     "sep_max_abs": 43.54334475964055,
     "sep_minus_linear_sup": 43.54334475964005
    },
    {
     "config": "g1 only (g2=0)",
     "predicted_slope": 0.010694956507430117,
     "alpha_P0": 0.010865441072770843,
     "slope_v1": 0.010695011745851577,
     "slope_v2": 0.01069489820425528,
     "rel_dev_v1": 5.164903795762399e-06,
     "rel_dev_v2": -5.451464416550422e-06,
     "half_window_rel_dev": [
      0.0015376024885582762,
      -0.0012296611829043513,
      -0.0010494883678318079,
      0.0008420276360552315
     ],
     "two_point_rel_dev": [
      0.0006682173979066786,
      -0.0005764538342075687
     ],
     "rest_sup": [
      0.6650653799746888,
      0.5435331229554017
     ],
     "linear_part_end": 32.17042917434979,
     "sep_predicted_slope": 1.1676400444095362e-15,
     "sep_slope": 8.658507347819412e-05,
     "sep_slope_half_windows": [
      0.005965911861431718,
      -0.0007549458596425815
     ],
     "sep_end": 93.8494823988949,
     "sep_max_abs": 157.40596404243922,
     "sep_minus_linear_sup": 157.40596404243897
    },
    {
     "config": "plain gradient",
     "predicted_slope": 0.021731553110541375,
     "alpha_P0": 0.022076896775710696,
     "slope_v1": 0.0217315005180687,
     "slope_v2": 0.021731477573726718,
     "rel_dev_v1": -2.420097284683287e-06,
     "rel_dev_v2": -3.4759050249189016e-06,
     "half_window_rel_dev": [
      0.00015103194309795676,
      -0.000124251608008219,
      -0.0001055855222722446,
      8.259656873765842e-05
     ],
     "two_point_rel_dev": [
      6.871948768494285e-05,
      -6.260515823508506e-05
     ],
     "rest_sup": [
      0.145466635033495,
      0.102836371366402
     ],
     "linear_part_end": 65.36851175650845,
     "sep_predicted_slope": 2.35518827091307e-15,
     "sep_slope": 1.7507401212975786e-05,
     "sep_slope_half_windows": [
      0.0012057328097669075,
      -0.00015205579661520523
     ],
     "sep_end": 18.985244037612574,
     "sep_max_abs": 31.833318540160462,
     "sep_minus_linear_sup": 31.833318540159937
    }
   ],
   "closed_form": {
    "u": 1.220338983050847,
    "eps2": [
     0.04000000000000001,
     0.03567901234567901
    ],
    "closed_P0": [
     0.02145035412422311,
     0.011289660065380583,
     0.022579320130761166
    ],
    "closed_packet": [
     0.021112324379553092,
     0.011111749673448997,
     0.022223499346897994
    ],
    "level_P0": [
     0.020660982929099177,
     0.010865441072770843,
     0.022076896775710696
    ],
    "slope_v1": [
     0.020336677941462697,
     0.010695011745851577,
     0.0217315005180687
    ]
   },
   "numerics": {
    "L": 60,
    "chain_sites": 121,
    "dim": 58564,
    "rmax": 48,
    "nP": 161,
    "Pc": 0.5,
    "P0": 0.0,
    "xc": 0,
    "lam_max": 3008.0,
    "dlam": 32.0,
    "window_half_width": 0.006266474707958364,
    "eps": 5e-07,
    "eps_plain": 4.7499999999999995e-07,
    "cheb_terms": 110,
    "seconds": 356.0
   }
  },
  "S4": {
   "name": "S4",
   "info": {
    "Eb_P0": 1.7121041945930104,
    "dEb_P0": -2.0195166375971483e-17,
    "d2Eb_P0": 0.15392053122647054,
    "s3_P0": [
     0.7685115613513814,
     0.8813139719254425
    ],
    "rmean_P0": 1.9058895843847133e-16,
    "gap_min": 0.48868324173874433,
    "dist_band_min": 0.48789580540698974,
    "inside_band": false,
    "tail_max": 1.2154630035052533e-14,
    "V1_minus_V2_max": 6.522560269672795e-16,
    "fd_check_dE": 1.5390299814288522e-06,
    "fd_check_d2E": 7.749627649933366e-06,
    "P_mean": -6.938893903907228e-18,
    "delta_P": 0.1058883937041857,
    "alpha_g": [
     -0.11585438798369868,
     -0.15940779471663008,
     -0.3012297661632765
    ],
    "beta_g": [
     5.062811557686743e-18,
     6.1925220324963685e-18,
     1.0811391845789694e-17
    ],
    "alpha_P0": [
     -0.11828970777688894,
     -0.1627827776832898,
     -0.30784106245294107
    ],
    "beta_P0": [
     3.1366023503524163e-17,
     4.316392800980932e-17,
     8.162798084226315e-17
    ],
    "mean_dE_packet": -1.734723475976807e-18,
    "alias_margin": 1.715865000827212,
    "packet_norm": 0.9999999999304143,
    "packet_residual": 1.83849163309864e-06,
    "norm_drift": 1.509903313490213e-14,
    "v0_start": [
     2.624586804378106e-19,
     -4.543817461317829e-18
    ],
    "edge_weight_end": 8.559956856073961e-10
   },
   "configs": [
    {
     "config": "common gradient g1=g2",
     "predicted_slope": -0.27526218270032876,
     "alpha_P0": -0.2810724854601787,
     "slope_v1": -0.2752621123426133,
     "slope_v2": -0.27526211248800364,
     "rel_dev_v1": -2.55602548793199e-07,
     "rel_dev_v2": -2.5507436007821127e-07,
     "half_window_rel_dev": [
      -6.950811073380692e-07,
      -4.240292907908838e-07,
      2.4661956388172257e-07,
      -4.619980287223768e-09
     ],
     "two_point_rel_dev": [
      0.0015102610304962294,
      -0.0009376786254249314
     ],
     "rest_sup": [
      0.5771024344779718,
      0.5650257582816316
     ],
     "linear_part_end": 55.052436540065756,
     "sep_predicted_slope": 1.1255333590183112e-17,
     "sep_slope": -7.398603807037829e-08,
     "sep_slope_half_windows": [
      -2.361790006272148e-06,
      -1.0783653586221209e-07
     ],
     "sep_end": -0.504108348896807,
     "sep_max_abs": 1.2112377063693316,
     "sep_minus_linear_sup": 1.211237706369332
    },
    {
     "config": "g1 only (g2=0)",
     "predicted_slope": -0.11585438798369868,
     "alpha_P0": -0.11828970777688894,
     "slope_v1": -0.11585438255392565,
     "slope_v2": -0.11585438353690755,
     "rel_dev_v1": -4.686721954971773e-08,
     "rel_dev_v2": -3.838258699762065e-08,
     "half_window_rel_dev": [
      -1.139805419714257e-06,
      5.250396166722737e-07,
      1.0431422967638326e-06,
      -3.287799466011876e-07
     ],
     "two_point_rel_dev": [
      0.0038837173070036535,
      0.0006763044975033328
     ],
     "rest_sup": [
      0.6940173951499882,
      0.25865349193056986
     ],
     "linear_part_end": 23.170877596739736,
     "sep_predicted_slope": 5.062811557686743e-18,
     "sep_slope": -1.8393808207464724e-07,
     "sep_slope_half_windows": [
      -5.935666172552572e-06,
      -2.37844988721896e-07
     ],
     "sep_end": -1.363406035432945,
     "sep_max_abs": 2.4109160642249208,
     "sep_minus_linear_sup": 2.4109160642249208
    },
    {
     "config": "plain gradient",
     "predicted_slope": -0.3012297661632765,
     "alpha_P0": -0.30784106245294107,
     "slope_v1": -0.3012296449041245,
     "slope_v2": -0.30122964577660716,
     "rel_dev_v1": -4.0254704425368715e-07,
     "rel_dev_v2": -3.9965064169145137e-07,
     "half_window_rel_dev": [
      -9.256746955621509e-07,
      -6.701802762743014e-07,
      7.120613809696863e-08,
      -8.818404251265122e-08
     ],
     "two_point_rel_dev": [
      -0.0015129689903646826,
      0.0004745153510670175
     ],
     "rest_sup": [
      0.674823021662184,
      0.2781942323048492
     ],
     "linear_part_end": 60.2459532326553,
     "sep_predicted_slope": 1.0811391845789694e-17,
     "sep_slope": -7.383981041626103e-08,
     "sep_slope_half_windows": [
      -2.4096783541782856e-06,
      -8.031781282709383e-08
     ],
     "sep_end": -0.32298781222743855,
     "sep_max_abs": 0.9639140273942632,
     "sep_minus_linear_sup": 0.9639140273942632
    }
   ],
   "numerics": {
    "L": 60,
    "chain_sites": 121,
    "dim": 58564,
    "rmax": 48,
    "nP": 161,
    "Pc": 0.5,
    "P0": 0.0,
    "xc": 0,
    "lam_max": 200.0,
    "dlam": 1.0,
    "window_half_width": 0.09424777960769379,
    "eps": 2e-06,
    "eps_plain": 2.2e-06,
    "cheb_terms": 24,
    "seconds": 241.6
   }
  },
  "S5": {
   "name": "S5",
   "info": {
    "Eb_P0": 2.0010164823670062,
    "dEb_P0": 0.050155689565858544,
    "d2Eb_P0": 0.2405046356696099,
    "s3_P0": [
     0.8966921828765372,
     0.9255143369520579
    ],
    "rmean_P0": 0.2055806239609494,
    "gap_min": 0.07444273514549993,
    "dist_band_min": 0.20404195379469914,
    "inside_band": false,
    "tail_max": 2.064911153219587e-10,
    "V1_minus_V2_max": 1.2351231148954867e-15,
    "fd_check_dE": 1.7286668117511006e-06,
    "fd_check_d2E": 6.795603143761042e-06,
    "P_mean": 0.19999999999999998,
    "delta_P": 0.08471071496334856,
    "alpha_g": [
     -0.21492383820725258,
     -0.2665324446537304,
     -0.47540214436646067
    ],
    "beta_g": [
     -0.028133357896245527,
     -0.058374610589660876,
     -0.07443964981099797
    ],
    "alpha_P0": [
     -0.21730236162176475,
     -0.26944841540900905,
     -0.4810092713392198
    ],
    "beta_P0": [
     -0.028879188145127493,
     -0.059688063517661955,
     -0.07631533152154117
    ],
    "mean_dE_packet": 0.04957750020035254,
    "alias_margin": 1.427289135887774,
    "packet_norm": 0.9999999972812593,
    "packet_residual": 5.209770149029196e-06,
    "norm_drift": 8.115730310009894e-14,
    "v0_start": [
     0.049577500267401466,
     0.04957750026697546
    ],
    "edge_weight_end": 3.1686063665516946e-06
   },
   "configs": [
    {
     "config": "common gradient g1=g2",
     "predicted_slope": -0.48145628286098296,
     "alpha_P0": -0.4867507770307738,
     "slope_v1": -0.4814596517370287,
     "slope_v2": -0.4814676516134587,
     "rel_dev_v1": 6.997262608665622e-06,
     "rel_dev_v2": 2.3613260186738927e-05,
     "half_window_rel_dev": [
      0.0013089918820592406,
      0.005402343099147,
      -0.0003705368541079279,
      -0.002804367270759056
     ],
     "two_point_rel_dev": [
      -0.0038942232323098125,
      -0.0021235026822383762
     ],
     "rest_sup": [
      2.102543003365766,
      3.1063907228049574
     ],
     "linear_part_end": 192.58251314439318,
     "sep_predicted_slope": -0.0865079684859064,
     "sep_slope": -0.08661995914758926,
     "sep_slope_half_windows": [
      -0.11118143956505544,
      -0.07299918117932241
     ],
     "sep_end": -40.686672471812926,
     "sep_max_abs": 46.901203803798126,
     "sep_minus_linear_sup": 14.94932318065837
    },
    {
     "config": "g1 only (g2=0)",
     "predicted_slope": -0.21492383820725258,
     "alpha_P0": -0.21730236162176475,
     "slope_v1": -0.21492538305983566,
     "slope_v2": -0.21492854720588034,
     "rel_dev_v1": 7.187907102190749e-06,
     "rel_dev_v2": 2.191008064555966e-05,
     "half_window_rel_dev": [
      0.0013305920353270384,
      0.00544284994876465,
      -0.00046655752837276854,
      -0.0031121700529948004
     ],
     "two_point_rel_dev": [
      -0.0035451348827796325,
      -0.0017287857193667433
     ],
     "rest_sup": [
      1.9357682951218511,
      1.4245963382516433
     ],
     "linear_part_end": 85.96953528290103,
     "sep_predicted_slope": -0.028133357896245527,
     "sep_slope": -0.028193539539699886,
     "sep_slope_half_windows": [
      -0.03945646816685228,
      -0.022816692021492363
     ],
     "sep_end": -20.529849204420316,
     "sep_max_abs": 23.190213009005674,
     "sep_minus_linear_sup": 14.82598333452055
    },
    {
     "config": "plain gradient",
     "predicted_slope": -0.47540214436646067,
     "alpha_P0": -0.4810092713392198,
     "slope_v1": -0.47540655216417627,
     "slope_v2": -0.47541702958926035,
     "rel_dev_v1": 9.271724513260082e-06,
     "rel_dev_v2": 3.1310802814266125e-05,
     "half_window_rel_dev": [
      0.0013932832647864934,
      0.006015665127508507,
      -0.0002091211405949034,
      -0.00263876898135873
     ],
     "two_point_rel_dev": [
      0.0011202184957750383,
      0.0036826942049115186
     ],
     "rest_sup": [
      0.8270898589789404,
      0.9603738281396783
     ],
     "linear_part_end": 190.16085774658427,
     "sep_predicted_slope": -0.07443964981099797,
     "sep_slope": -0.07457090625468146,
     "sep_slope_half_windows": [
      -0.10636244791230698,
      -0.0556950925212642
     ],
     "sep_end": -38.00342834566982,
     "sep_max_abs": 46.37349164287298,
     "sep_minus_linear_sup": 19.266478599834407
    }
   ],
   "numerics": {
    "L": 60,
    "chain_sites": 121,
    "dim": 58564,
    "rmax": 48,
    "nP": 161,
    "Pc": 0.4,
    "P0": 0.2,
    "xc": -12,
    "lam_max": 400.0,
    "dlam": 1.0,
    "window_half_width": 0.047123889803846894,
    "eps": 2e-06,
    "eps_plain": 2.2e-06,
    "cheb_terms": 25,
    "seconds": 360.3
   }
  },
  "S1_L45": {
   "name": "S1_L45",
   "info": {
    "Eb_P0": 1.991769390586346,
    "dEb_P0": 6.678403045245842e-24,
    "d2Eb_P0": 0.014176799535102808,
    "s3_P0": [
     0.9970498586401999,
     0.9970498586401999
    ],
    "rmean_P0": -1.8521084904794254e-13,
    "gap_min": 0.008271701136514764,
    "dist_band_min": 0.008230609413653944,
    "inside_band": false,
    "tail_max": 1.6879367253016974e-09,
    "V1_minus_V2_max": 5.637851296924623e-18,
    "fd_check_dE": 1.0823381577963753e-07,
    "fd_check_d2E": 5.077184005355256e-07,
    "P_mean": -6.938893903907228e-18,
    "delta_P": 0.1058883937041857,
    "alpha_g": [
     -0.013935046029841205,
     -0.013935046029841205,
     -0.027950861446090602
    ],
    "beta_g": [
     1.5226982824844961e-15,
     1.5227100793188133e-15,
     3.065032769421403e-15
    ],
    "alpha_P0": [
     -0.014134975972444706,
     -0.014134975972444706,
     -0.028353599070205616
    ],
    "beta_P0": [
     2.097789295022752e-18,
     2.097789295022752e-18,
     4.20799276353896e-18
    ],
    "mean_dE_packet": -2.3852447794681098e-18,
    "alias_margin": 0.04872050667965899,
    "packet_norm": 0.9999999987819977,
    "packet_residual": 6.964728611127708e-07,
    "norm_drift": 2.4424906541753444e-14,
    "v0_start": [
     -2.434519930734293e-18,
     -2.53957346570813e-18
    ],
    "edge_weight_end": 3.0175959828124977e-07
   },
   "configs": [
    {
     "config": "g1 only (g2=0)",
     "predicted_slope": -0.013935046029841205,
     "alpha_P0": -0.014134975972444706,
     "slope_v1": -0.013935317422377146,
     "slope_v2": -0.013934752151836812,
     "rel_dev_v1": 1.9475539252633567e-05,
     "rel_dev_v2": -2.108913051046546e-05,
     "half_window_rel_dev": [
      -0.000295192633732011,
      0.00028757128094980544,
      0.0120948962452061,
      -0.012031335448620561
     ],
     "two_point_rel_dev": [
      0.0010281793565722896,
      -0.000914498603860503
     ],
     "rest_sup": [
      0.8339878270419314,
      0.834692069149643
     ],
     "linear_part_end": 41.99326121092647,
     "sep_predicted_slope": 1.5226982824844961e-15,
     "sep_slope": -0.0003882836915335768,
     "sep_slope_half_windows": [
      -0.03918789853197169,
      -0.019537561602357173
     ],
     "sep_end": -162.04229320574814,
     "sep_max_abs": 270.0405197575388,
     "sep_minus_linear_sup": 270.0405197575392
    }
   ],
   "numerics": {
    "L": 45,
    "chain_sites": 91,
    "dim": 33124,
    "rmax": 48,
    "nP": 161,
    "Pc": 0.5,
    "P0": 0.0,
    "xc": 0,
    "lam_max": 3013.5,
    "dlam": 36.75,
    "window_half_width": 0.006255037637809444,
    "eps": 5e-07,
    "eps_plain": 5e-07,
    "cheb_terms": 126,
    "seconds": 159.4
   }
  },
  "S1_eps2": {
   "name": "S1_eps2",
   "info": {
    "Eb_P0": 1.991769390586346,
    "dEb_P0": 6.678403045245842e-24,
    "d2Eb_P0": 0.014176799535102808,
    "s3_P0": [
     0.9970498586401999,
     0.9970498586401999
    ],
    "rmean_P0": -1.8521084904794254e-13,
    "gap_min": 0.008271701136514764,
    "dist_band_min": 0.008230609413653944,
    "inside_band": false,
    "tail_max": 1.6879367253016974e-09,
    "V1_minus_V2_max": 5.637851296924623e-18,
    "fd_check_dE": 1.0823381577963753e-07,
    "fd_check_d2E": 5.077184005355256e-07,
    "P_mean": -6.938893903907228e-18,
    "delta_P": 0.1058883937041857,
    "alpha_g": [
     -0.013935046029841205,
     -0.013935046029841205,
     -0.027950861446090602
    ],
    "beta_g": [
     1.5226982824844961e-15,
     1.5227100793188133e-15,
     3.065032769421403e-15
    ],
    "alpha_P0": [
     -0.014134975972444706,
     -0.014134975972444706,
     -0.028353599070205616
    ],
    "beta_P0": [
     2.097789295022752e-18,
     2.097789295022752e-18,
     4.20799276353896e-18
    ],
    "mean_dE_packet": -2.3852447794681098e-18,
    "alias_margin": 0.04872050667965899,
    "packet_norm": 0.9999999999287391,
    "packet_residual": 3.439989775100738e-07,
    "norm_drift": 9.581224702515101e-14,
    "v0_start": [
     -2.4345714377312935e-18,
     -2.5396211165233316e-18
    ],
    "edge_weight_end": 3.1214051591926976e-09
   },
   "configs": [
    {
     "config": "g1 only (g2=0)",
     "predicted_slope": -0.013935046029841205,
     "alpha_P0": -0.014134975972444706,
     "slope_v1": -0.013935288499045044,
     "slope_v2": -0.013934723498530694,
     "rel_dev_v1": 1.739995715266396e-05,
     "rel_dev_v2": -2.3145335137142453e-05,
     "half_window_rel_dev": [
      -0.0002988949652068529,
      0.0002842373918510166,
      0.012094326752675189,
      -0.012031881019511914
     ],
     "two_point_rel_dev": [
      0.0010280569754614888,
      -0.0009089668475805723
     ],
     "rest_sup": [
      0.8339878158217471,
      0.8346920708255193
     ],
     "linear_part_end": 41.99326121092647,
     "sep_predicted_slope": 1.5226982824844961e-15,
     "sep_slope": -0.00038798253370601535,
     "sep_slope_half_windows": [
      -0.03918748494881439,
      -0.019536223725867077
     ],
     "sep_end": -162.04211293387198,
     "sep_max_abs": 270.040518798936,
     "sep_minus_linear_sup": 270.0405187989364
    }
   ],
   "numerics": {
    "L": 60,
    "chain_sites": 121,
    "dim": 58564,
    "rmax": 48,
    "nP": 161,
    "Pc": 0.5,
    "P0": 0.0,
    "xc": 0,
    "lam_max": 3013.5,
    "dlam": 36.75,
    "window_half_width": 0.006255037637809444,
    "eps": 1e-06,
    "eps_plain": 1e-06,
    "cheb_terms": 126,
    "seconds": 235.1
   }
  },
  "S1_Pc035": {
   "name": "S1_Pc035",
   "info": {
    "Eb_P0": 1.991769390586346,
    "dEb_P0": 6.678403045245842e-24,
    "d2Eb_P0": 0.014176799535102808,
    "s3_P0": [
     0.9970498586401999,
     0.9970498586401999
    ],
    "rmean_P0": -1.8521084904794254e-13,
    "gap_min": 0.008271701136514764,
    "dist_band_min": 0.008230609413653944,
    "inside_band": false,
    "tail_max": 1.6879367253016974e-09,
    "V1_minus_V2_max": 5.204170427930421e-18,
    "fd_check_dE": 3.6571732239809585e-08,
    "fd_check_d2E": 2.3922184117300405e-07,
    "P_mean": 0.0,
    "delta_P": 0.07412187559292996,
    "alpha_g": [
     -0.01403713545458403,
     -0.01403713545458403,
     -0.028156509067536
    ],
    "beta_g": [
     -1.4340507389581263e-15,
     -1.4341115079956015e-15,
     -2.9118199397542368e-15
    ],
    "alpha_P0": [
     -0.014134975972444706,
     -0.014134975972444706,
     -0.028353599070205616
    ],
    "beta_P0": [
     2.097789295022752e-18,
     2.097789295022752e-18,
     4.20799276353896e-18
    ],
    "mean_dE_packet": 1.0842021724855044e-18,
    "alias_margin": 0.052253061723019245,
    "packet_norm": 0.9999999982911969,
    "packet_residual": 1.7054928341664747e-06,
    "norm_drift": 2.8133051444001467e-13,
    "v0_start": [
     1.2085827246560693e-18,
     1.3472175513881937e-18
    ],
    "edge_weight_end": 1.842657206768819e-08
   },
   "configs": [
    {
     "config": "g1 only (g2=0)",
     "predicted_slope": -0.01403713545458403,
     "alpha_P0": -0.014134975972444706,
     "slope_v1": -0.014037416577234093,
     "slope_v2": -0.014036837614472579,
     "rel_dev_v1": 2.002706684511857e-05,
     "rel_dev_v2": -2.1218012208668036e-05,
     "half_window_rel_dev": [
      -8.832320144736006e-05,
      8.81015903893001e-05,
      0.012313734943988575,
      -0.012273018514768141
     ],
     "two_point_rel_dev": [
      0.0010419316779437526,
      -0.000883821131034801
     ],
     "rest_sup": [
      0.8373028402090055,
      0.840691109358512
     ],
     "linear_part_end": 42.300907692388975,
     "sep_predicted_slope": -1.4340507389581263e-15,
     "sep_slope": -0.0003912944011995947,
     "sep_slope_half_windows": [
      -0.03947672300893609,
      -0.01988803051187492
     ],
     "sep_end": -162.81472687060887,
     "sep_max_abs": 272.00097602734735,
     "sep_minus_linear_sup": 272.000976027347
    }
   ],
   "numerics": {
    "L": 60,
    "chain_sites": 121,
    "dim": 58564,
    "rmax": 48,
    "nP": 161,
    "Pc": 0.35,
    "P0": 0.0,
    "xc": 0,
    "lam_max": 3013.5,
    "dlam": 36.75,
    "window_half_width": 0.006255037637809444,
    "eps": 5e-07,
    "eps_plain": 5e-07,
    "cheb_terms": 126,
    "seconds": 237.3
   }
  },
  "S1_dlam": {
   "name": "S1_dlam",
   "info": {
    "Eb_P0": 1.991769390586346,
    "dEb_P0": 6.678403045245842e-24,
    "d2Eb_P0": 0.014176799535102808,
    "s3_P0": [
     0.9970498586401999,
     0.9970498586401999
    ],
    "rmean_P0": -1.8521084904794254e-13,
    "gap_min": 0.008271701136514764,
    "dist_band_min": 0.008230609413653944,
    "inside_band": false,
    "tail_max": 1.6879367253016974e-09,
    "V1_minus_V2_max": 5.637851296924623e-18,
    "fd_check_dE": 1.0823381577963753e-07,
    "fd_check_d2E": 5.077184005355256e-07,
    "P_mean": -6.938893903907228e-18,
    "delta_P": 0.1058883937041857,
    "alpha_g": [
     -0.013935046029841205,
     -0.013935046029841205,
     -0.027950861446090602
    ],
    "beta_g": [
     1.5226982824844961e-15,
     1.5227100793188133e-15,
     3.065032769421403e-15
    ],
    "alpha_P0": [
     -0.014134975972444706,
     -0.014134975972444706,
     -0.028353599070205616
    ],
    "beta_P0": [
     2.097789295022752e-18,
     2.097789295022752e-18,
     4.20799276353896e-18
    ],
    "mean_dE_packet": -2.3852447794681098e-18,
    "alias_margin": 0.09146326387135728,
    "packet_norm": 0.9999999999287391,
    "packet_residual": 3.439989775100738e-07,
    "norm_drift": 1.325606291402437e-13,
    "v0_start": [
     -2.4345714377312935e-18,
     -2.5396211165233316e-18
    ],
    "edge_weight_end": 2.9768294029425893e-09
   },
   "configs": [
    {
     "config": "g1 only (g2=0)",
     "predicted_slope": -0.013935046029841205,
     "alpha_P0": -0.014134975972444706,
     "slope_v1": -0.013935326035481196,
     "slope_v2": -0.013934746314152367,
     "rel_dev_v1": 2.0093628638973016e-05,
     "rel_dev_v2": -2.1508051584184784e-05,
     "half_window_rel_dev": [
      8.850060718024189e-05,
      -9.595721150079672e-05,
      0.012605455681959699,
      -0.012545850663463587
     ],
     "two_point_rel_dev": [
      0.0008256974436158249,
      -0.0009278137217797466
     ],
     "rest_sup": [
      0.8503246777821651,
      0.8386705720797486
     ],
     "linear_part_end": 41.84694322761314,
     "sep_predicted_slope": 1.5226982824844961e-15,
     "sep_slope": -0.0003897872089425351,
     "sep_slope_half_windows": [
      -0.03928449557531238,
      -0.01985487616431816
     ],
     "sep_end": -161.2345561793045,
     "sep_max_abs": 269.6301866295961,
     "sep_minus_linear_sup": 269.6301866295965
    }
   ],
   "numerics": {
    "L": 60,
    "chain_sites": 121,
    "dim": 58564,
    "rmax": 48,
    "nP": 161,
    "Pc": 0.5,
    "P0": 0.0,
    "xc": 0,
    "lam_max": 3003.0,
    "dlam": 21.0,
    "window_half_width": 0.0062769083987808056,
    "eps": 5e-07,
    "eps_plain": 5e-07,
    "cheb_terms": 85,
    "seconds": 258.5
   }
  },
  "S4_L45": {
   "name": "S4_L45",
   "info": {
    "Eb_P0": 1.7121041945930104,
    "dEb_P0": -2.0195166375971483e-17,
    "d2Eb_P0": 0.15392053122647054,
    "s3_P0": [
     0.7685115613513814,
     0.8813139719254425
    ],
    "rmean_P0": 1.9058895843847133e-16,
    "gap_min": 0.48868324173874433,
    "dist_band_min": 0.48789580540698974,
    "inside_band": false,
    "tail_max": 1.2154630035052533e-14,
    "V1_minus_V2_max": 6.522560269672795e-16,
    "fd_check_dE": 1.5390299814288522e-06,
    "fd_check_d2E": 7.749627649933366e-06,
    "P_mean": -6.938893903907228e-18,
    "delta_P": 0.1058883937041857,
    "alpha_g": [
     -0.11585438798369868,
     -0.15940779471663008,
     -0.3012297661632765
    ],
    "beta_g": [
     5.062811557686743e-18,
     6.1925220324963685e-18,
     1.0811391845789694e-17
    ],
    "alpha_P0": [
     -0.11828970777688894,
     -0.1627827776832898,
     -0.30784106245294107
    ],
    "beta_P0": [
     3.1366023503524163e-17,
     4.316392800980932e-17,
     8.162798084226315e-17
    ],
    "mean_dE_packet": -1.734723475976807e-18,
    "alias_margin": 1.715865000827212,
    "packet_norm": 0.9999999987897664,
    "packet_residual": 5.2899059186505235e-06,
    "norm_drift": 9.059419880941277e-14,
    "v0_start": [
     2.6229463442490056e-19,
     -4.5435526890480734e-18
    ],
    "edge_weight_end": 4.864610606269628e-08
   },
   "configs": [
    {
     "config": "g1 only (g2=0)",
     "predicted_slope": -0.11585438798369868,
     "alpha_P0": -0.11828970777688894,
     "slope_v1": -0.11585437625877018,
     "slope_v2": -0.11585437727556139,
     "rel_dev_v1": -1.0120400883995018e-07,
     "rel_dev_v2": -9.242755050209439e-08,
     "half_window_rel_dev": [
      -1.330017468603728e-06,
      3.352808768397608e-07,
      1.0362207769620824e-06,
      -3.3575919311523705e-07
     ],
     "two_point_rel_dev": [
      0.0038882869832801426,
      0.0006503313141048572
     ],
     "rest_sup": [
      0.6940173912051866,
      0.25865349251799463
     ],
     "linear_part_end": 23.170877596739736,
     "sep_predicted_slope": 5.062811557686743e-18,
     "sep_slope": -1.830110197553747e-07,
     "sep_slope_half_windows": [
      -5.935705393395883e-06,
      -2.3421433459055235e-07
     ],
     "sep_end": -1.363372991009328,
     "sep_max_abs": 2.4109160652021195,
     "sep_minus_linear_sup": 2.4109160652021195
    }
   ],
   "numerics": {
    "L": 45,
    "chain_sites": 91,
    "dim": 33124,
    "rmax": 48,
    "nP": 161,
    "Pc": 0.5,
    "P0": 0.0,
    "xc": 0,
    "lam_max": 200.0,
    "dlam": 1.0,
    "window_half_width": 0.09424777960769379,
    "eps": 2e-06,
    "eps_plain": 2.2e-06,
    "cheb_terms": 24,
    "seconds": 113.2
   }
  },
  "S5_L75": {
   "name": "S5_L75",
   "info": {
    "Eb_P0": 2.0010164823670062,
    "dEb_P0": 0.050155689565858544,
    "d2Eb_P0": 0.2405046356696099,
    "s3_P0": [
     0.8966921828765372,
     0.9255143369520579
    ],
    "rmean_P0": 0.2055806239609494,
    "gap_min": 0.07444273514549993,
    "dist_band_min": 0.20404195379469914,
    "inside_band": false,
    "tail_max": 2.064911153219587e-10,
    "V1_minus_V2_max": 1.2351231148954867e-15,
    "fd_check_dE": 1.7286668117511006e-06,
    "fd_check_d2E": 6.795603143761042e-06,
    "P_mean": 0.19999999999999998,
    "delta_P": 0.08471071496334856,
    "alpha_g": [
     -0.21492383820725258,
     -0.2665324446537304,
     -0.47540214436646067
    ],
    "beta_g": [
     -0.028133357896245527,
     -0.058374610589660876,
     -0.07443964981099797
    ],
    "alpha_P0": [
     -0.21730236162176475,
     -0.26944841540900905,
     -0.4810092713392198
    ],
    "beta_P0": [
     -0.028879188145127493,
     -0.059688063517661955,
     -0.07631533152154117
    ],
    "mean_dE_packet": 0.04957750020035254,
    "alias_margin": 1.427289135887774,
    "packet_norm": 0.9999999997994296,
    "packet_residual": 1.0722269107355853e-06,
    "norm_drift": 1.4221956945448255e-13,
    "v0_start": [
     0.049577500205687006,
     0.049577500205662324
    ],
    "edge_weight_end": 4.2105256572765453e-08
   },
   "configs": [
    {
     "config": "g1 only (g2=0)",
     "predicted_slope": -0.21492383820725258,
     "alpha_P0": -0.21730236162176475,
     "slope_v1": -0.21492570796057184,
     "slope_v2": -0.21492886859747115,
     "rel_dev_v1": 8.699608823548033e-06,
     "rel_dev_v2": 2.3405454976588302e-05,
     "half_window_rel_dev": [
      0.0013440584215020923,
      0.0054561199286011774,
      -0.00046650309970219794,
      -0.00311211629775332
     ],
     "two_point_rel_dev": [
      -0.003418517139124555,
      -0.001760584223386208
     ],
     "rest_sup": [
      1.9357681992939917,
      1.4245963502611338
     ],
     "linear_part_end": 85.96953528290103,
     "sep_predicted_slope": -0.028133357896245527,
     "sep_slope": -0.02819364445115373,
     "sep_slope_half_windows": [
      -0.03945647527246374,
      -0.02281746615563679
     ],
     "sep_end": -20.518477103159967,
     "sep_max_abs": 23.196590645202377,
     "sep_minus_linear_sup": 14.825983259913563
    }
   ],
   "numerics": {
    "L": 75,
    "chain_sites": 151,
    "dim": 91204,
    "rmax": 48,
    "nP": 161,
    "Pc": 0.4,
    "P0": 0.2,
    "xc": -12,
    "lam_max": 400.0,
    "dlam": 1.0,
    "window_half_width": 0.047123889803846894,
    "eps": 2e-06,
    "eps_plain": 2.2e-06,
    "cheb_terms": 25,
    "seconds": 307.5
   }
  },
  "S5_long": {
   "name": "S5_long",
   "info": {
    "Eb_P0": 2.0010164823670062,
    "dEb_P0": 0.050155689565858544,
    "d2Eb_P0": 0.2405046356696099,
    "s3_P0": [
     0.8966921828765372,
     0.9255143369520579
    ],
    "rmean_P0": 0.2055806239609494,
    "gap_min": 0.07444273514549993,
    "dist_band_min": 0.20404195379469914,
    "inside_band": false,
    "tail_max": 2.064911153219587e-10,
    "V1_minus_V2_max": 1.2351231148954867e-15,
    "fd_check_dE": 1.7286668117511006e-06,
    "fd_check_d2E": 6.795603143761042e-06,
    "P_mean": 0.19999999999999998,
    "delta_P": 0.08471071496334856,
    "alpha_g": [
     -0.21492383820725258,
     -0.2665324446537304,
     -0.47540214436646067
    ],
    "beta_g": [
     -0.028133357896245527,
     -0.058374610589660876,
     -0.07443964981099797
    ],
    "alpha_P0": [
     -0.21730236162176475,
     -0.26944841540900905,
     -0.4810092713392198
    ],
    "beta_P0": [
     -0.028879188145127493,
     -0.059688063517661955,
     -0.07631533152154117
    ],
    "mean_dE_packet": 0.04957750020035254,
    "alias_margin": 1.427289135887774,
    "packet_norm": 0.9999999997108626,
    "packet_residual": 4.091677562352952e-06,
    "norm_drift": 1.1146639167236572e-13,
    "v0_start": [
     0.04957750020388381,
     0.049577500204004435
    ],
    "edge_weight_end": 8.706929397275997e-06
   },
   "configs": [
    {
     "config": "g1 only (g2=0)",
     "predicted_slope": -0.21492383820725258,
     "alpha_P0": -0.21730236162176475,
     "slope_v1": -0.214923023619765,
     "slope_v2": -0.214922278498625,
     "rel_dev_v1": -3.790121628099996e-06,
     "rel_dev_v2": -7.257029469576182e-06,
     "half_window_rel_dev": [
      -0.00012387795877522034,
      -0.00029515502157961837,
      4.54722905662841e-05,
      5.999761158803629e-05
     ],
     "two_point_rel_dev": [
      -0.004260172222822378,
      -0.006357205960174084
     ],
     "rest_sup": [
      2.310521011600442,
      1.652042965259803
     ],
     "linear_part_end": 128.95430292435154,
     "sep_predicted_slope": -0.028133357896245527,
     "sep_slope": -0.028139247326787756,
     "sep_slope_half_windows": [
      -0.028900030550586014,
      -0.027634500691365527
     ],
     "sep_end": -25.85392638821213,
     "sep_max_abs": 28.275742747220647,
     "sep_minus_linear_sup": 15.610707427245641
    }
   ],
   "numerics": {
    "L": 75,
    "chain_sites": 151,
    "dim": 91204,
    "rmax": 48,
    "nP": 161,
    "Pc": 0.4,
    "P0": 0.2,
    "xc": -15,
    "lam_max": 600.0,
    "dlam": 1.0,
    "window_half_width": 0.031415926535897934,
    "eps": 2e-06,
    "eps_plain": 2.2e-06,
    "cheb_terms": 25,
    "seconds": 377.3
   }
  }
 },
 "convergence": [
  {
   "variant": "S1_L45",
   "base": "S1",
   "changed": {
    "L": 45
   },
   "rel_dev_variant": [
    1.9475539252633567e-05,
    -2.108913051046546e-05
   ],
   "rel_dev_base": [
    1.973898311358191e-05,
    -2.0826058386491653e-05
   ],
   "slope_change": [
    -2.6343866099676205e-07,
    -2.6307760292443305e-07
   ],
   "sep_slope": [
    -0.0003882836915335768,
    -0.00038828532974404694
   ]
  },
  {
   "variant": "S1_eps2",
   "base": "S1",
   "changed": {
    "eps": 1e-06
   },
   "rel_dev_variant": [
    1.739995715266396e-05,
    -2.3145335137142453e-05
   ],
   "rel_dev_base": [
    1.973898311358191e-05,
    -2.0826058386491653e-05
   ],
   "slope_change": [
    -2.338979791960405e-06,
    -2.3193250530129106e-06
   ],
   "sep_slope": [
    -0.00038798253370601535,
    -0.00038828532974404694
   ]
  },
  {
   "variant": "S1_Pc035",
   "base": "S1",
   "changed": {
    "Pc": 0.35
   },
   "rel_dev_variant": [
    2.002706684511857e-05,
    -2.1218012208668036e-05
   ],
   "rel_dev_base": [
    1.973898311358191e-05,
    -2.0826058386491653e-05
   ],
   "slope_change": [
    0.00732638186588952,
    0.007325696843823559
   ],
   "sep_slope": [
    -0.0003912944011995947,
    -0.00038828532974404694
   ]
  },
  {
   "variant": "S1_dlam",
   "base": "S1",
   "changed": {
    "dlam": [
     20.0,
     28.0
    ]
   },
   "rel_dev_variant": [
    2.0093628638973016e-05,
    -2.1508051584184784e-05
   ],
   "rel_dev_base": [
    1.973898311358191e-05,
    -2.0826058386491653e-05
   ],
   "slope_change": [
    3.546385249908468e-07,
    -6.82007401331397e-07
   ],
   "sep_slope": [
    -0.0003897872089425351,
    -0.00038828532974404694
   ]
  },
  {
   "variant": "S4_L45",
   "base": "S4",
   "changed": {
    "L": 45
   },
   "rel_dev_variant": [
    -1.0120400883995018e-07,
    -9.242755050209439e-08
   ],
   "rel_dev_base": [
    -4.686721954971773e-08,
    -3.838258699762065e-08
   ],
   "slope_change": [
    -5.43367918437454e-08,
    -5.4044965502875186e-08
   ],
   "sep_slope": [
    -1.830110197553747e-07,
    -1.8393808207464724e-07
   ]
  },
  {
   "variant": "S5_L75",
   "base": "S5",
   "changed": {
    "L": 75
   },
   "rel_dev_variant": [
    8.699608823548033e-06,
    2.3405454976588302e-05
   ],
   "rel_dev_base": [
    7.187907102190749e-06,
    2.191008064555966e-05
   ],
   "slope_change": [
    1.511690855382497e-06,
    1.4953415681251414e-06
   ],
   "sep_slope": [
    -0.02819364445115373,
    -0.028193539539699886
   ]
  },
  {
   "variant": "S5_long",
   "base": "S5",
   "changed": {
    "L": 75,
    "lam_max": 600.0,
    "xc": -15
   },
   "rel_dev_variant": [
    -3.790121628099996e-06,
    -7.257029469576182e-06
   ],
   "rel_dev_base": [
    7.187907102190749e-06,
    2.191008064555966e-05
   ],
   "slope_change": [
    -1.0977949821744382e-05,
    -2.916647107531478e-05
   ],
   "sep_slope": [
    -0.028139247326787756,
    -0.028193539539699886
   ]
  }
 ],
 "fibre_range": [
  {
   "set": "S1",
   "rmax": 32,
   "tail": 1.893506917688802e-06,
   "alpha_rel_change": 1.0867085009635957e-11,
   "beta_abs_change": 1.7878732584612035e-17
  },
  {
   "set": "S1",
   "rmax": 48,
   "tail": 1.6879367253016974e-09,
   "alpha_rel_change": 9.392486788328824e-14,
   "beta_abs_change": 2.6676108994911046e-17
  },
  {
   "set": "S2",
   "rmax": 32,
   "tail": 1.920763080418354e-07,
   "alpha_rel_change": 1.822986206434507e-13,
   "beta_abs_change": 2.0810521998659667e-17
  },
  {
   "set": "S2",
   "rmax": 48,
   "tail": 5.442634781938319e-11,
   "alpha_rel_change": 1.0769163338864018e-14,
   "beta_abs_change": 6.578600983054607e-17
  },
  {
   "set": "S3",
   "rmax": 32,
   "tail": 7.384217451565937e-08,
   "alpha_rel_change": 1.3911094498553211e-13,
   "beta_abs_change": 2.975723950188972e-17
  },
  {
   "set": "S3",
   "rmax": 48,
   "tail": 1.895045545372569e-11,
   "alpha_rel_change": 6.061817714453355e-14,
   "beta_abs_change": 4.224623833996936e-18
  },
  {
   "set": "S4",
   "rmax": 32,
   "tail": 7.259864754695608e-10,
   "alpha_rel_change": 1.1324274851176597e-14,
   "beta_abs_change": 3.210846230639113e-17
  },
  {
   "set": "S4",
   "rmax": 48,
   "tail": 1.2154630035052533e-14,
   "alpha_rel_change": 9.103828801926284e-15,
   "beta_abs_change": 1.0948202452182418e-16
  },
  {
   "set": "S5",
   "rmax": 32,
   "tail": 3.581049048454784e-07,
   "alpha_rel_change": 1.7963408538435033e-13,
   "beta_abs_change": 3.687328220536301e-12
  },
  {
   "set": "S5",
   "rmax": 48,
   "tail": 1.3821844253237834e-10,
   "alpha_rel_change": 3.9968028886505635e-15,
   "beta_abs_change": 7.632783294297951e-16
  }
 ],
 "scaling": [
  {
   "set": "S1",
   "s": 1.0,
   "tau_over_M": [
    0.2,
    0.2
   ],
   "u": 0.9999999999999998,
   "level": [
    -0.014134975972446033,
    -0.014134975972446033,
    -0.028353599070208263
   ],
   "closed": [
    -0.014142135623730954,
    -0.014142135623730954,
    -0.02828427124746191
   ],
   "rel_dev": [
    -0.0005062637974498907,
    -0.0005062637974498907,
    0.0024511086794423154
   ]
  },
  {
   "set": "S1",
   "s": 0.5,
   "tau_over_M": [
    0.1,
    0.1
   ],
   "u": 0.9999999999999998,
   "level": [
    -0.003535137718443524,
    -0.003535137718443524,
    -0.007075465713137453
   ],
   "closed": [
    -0.0035355339059327385,
    -0.0035355339059327385,
    -0.007071067811865477
   ],
   "rel_dev": [
    -0.00011205874409792038,
    -0.00011205874409792038,
    0.0006219571624805909
   ]
  },
  {
   "set": "S1",
   "s": 0.25,
   "tau_over_M": [
    0.05,
    0.05
   ],
   "u": 0.9999999999999998,
   "level": [
    -0.000883859514626963,
    -0.000883859514626963,
    -0.0017680428307229532
   ],
   "closed": [
    -0.0008838834764831846,
    -0.0008838834764831846,
    -0.0017677669529663693
   ],
   "rel_dev": [
    -2.7109745638687066e-05,
    -2.7109745638687066e-05,
    0.00015606002596713076
   ]
  },
  {
   "set": "S2",
   "s": 1.0,
   "tau_over_M": [
    0.2,
    0.144
   ],
   "u": 1.2135922330097086,
   "level": [
    -0.00999390670616706,
    -0.012514456789510579,
    -0.02006133505726887
   ],
   "closed": [
    -0.010001905742017952,
    -0.01250238217752244,
    -0.020003811484035905
   ],
   "rel_dev": [
    -0.0007997511731479001,
    0.000965784905363698,
    0.0028756306406343413
   ]
  },
  {
   "set": "S2",
   "s": 0.5,
   "tau_over_M": [
    0.1,
    0.072
   ],
   "u": 1.2135922330097086,
   "level": [
    -0.0025000135298919417,
    -0.0031263894072365945,
    -0.0050045897296235285
   ],
   "closed": [
    -0.002500476435504488,
    -0.00312559554438061,
    -0.005000952871008976
   ],
   "rel_dev": [
    -0.0001851269645950504,
    0.0002539877104097421,
    0.0007272331310370639
   ]
  },
  {
   "set": "S2",
   "s": 0.25,
   "tau_over_M": [
    0.05,
    0.036
   ],
   "u": 1.2135922330097086,
   "level": [
    -0.0006250907541695959,
    -0.0007814491113983706,
    -0.001250466166809115
   ],
   "closed": [
    -0.000625119108876122,
    -0.0007813988860951525,
    -0.001250238217752244
   ],
   "rel_dev": [
    -4.535888620826878e-05,
    6.427613874526727e-05,
    0.00018232449915078774
   ]
  },
  {
   "set": "S3",
   "s": 1.0,
   "tau_over_M": [
    0.2,
    0.18888888888888888
   ],
   "u": 1.220338983050847,
   "level": [
    0.0108654410727715,
    0.009795541856328928,
    0.02207689677571203
   ],
   "closed": [
    0.011289660065380583,
    0.010160694058842524,
    0.022579320130761166
   ],
   "rel_dev": [
    -0.03757588715269977,
    -0.03593772240350224,
    -0.022251482867486905
   ]
  },
  {
   "set": "S3",
   "s": 0.5,
   "tau_over_M": [
    0.1,
    0.09444444444444444
   ],
   "u": 1.220338983050847,
   "level": [
    0.0027950740317331207,
    0.0025166663961058945,
    0.005612833499629013
   ],
   "closed": [
    0.0028224150163451457,
    0.002540173514710631,
    0.005644830032690291
   ],
   "rel_dev": [
    -0.00968708870016921,
    -0.0092541389273616,
    -0.005668289899958157
   ]
  },
  {
   "set": "S3",
   "s": 0.25,
   "tau_over_M": [
    0.05,
    0.04722222222222222
   ],
   "u": 1.220338983050847,
   "level": [
    0.0007038815030893911,
    0.0006335630707733532,
    0.0014091981903930492
   ],
   "closed": [
    0.0007056037540862864,
    0.0006350433786776578,
    0.0014112075081725729
   ],
   "rel_dev": [
    -0.0024408189255250567,
    -0.0023310343104230302,
    -0.0014238287196512989
   ]
  }
 ],
 "clock_ratio": [
  {
   "set": "S1",
   "s": 1.0,
   "tau_over_M": [
    0.2,
    0.2
   ],
   "u": 0.9999999999999998,
   "Gamma": [
    0.9970498586402006,
    0.9970498586402006
   ],
   "Gamma_closed": [
    0.9970710678118655,
    0.9970710678118655
   ],
   "one_minus_Gamma_rel_dev": [
    0.007241264154509208,
    0.007241264154509208
   ],
   "T": [
    [
     0.004116978271193736,
     -0.0017779539574663968
    ],
    [
     -0.0017779539574663968,
     0.004116978271193741
    ]
   ],
   "T_closed": [
    [
     0.00409009742330268,
     -0.0017677669529663693
    ],
    [
     -0.0017677669529663693,
     0.00409009742330268
    ]
   ],
   "T_rel_dev": [
    [
     0.006572177899212495,
     0.005762639969557837
    ],
    [
     0.005762639969557837,
     0.006572177899213827
    ]
   ],
   "T_abs_dev": [
    [
     2.6880847891055937e-05,
     -1.0187004500027564e-05
    ],
    [
     -1.0187004500027564e-05,
     2.688084789106114e-05
    ]
   ],
   "fd_rel_dev": 8.465432355109215e-09,
   "rmax48_rel_change": 2.5912605394751154e-13,
   "rho_minus_g": [
    [
     0.0023459451836414223,
     0.004129159876526702,
     -0.0017832146928852797
    ],
    [
     0.0023459451836414275,
     -0.0017832146928852797,
     0.004129159876526707
    ]
   ],
   "rho_minus_g_closed": [
    [
     0.0023223304703363108,
     0.00409009742330268,
     -0.0017677669529663693
    ],
    [
     0.0023223304703363108,
     -0.0017677669529663693,
     0.00409009742330268
    ]
   ],
   "rho_rel_dev": [
    [
     0.01016854130225986,
     0.0095504945680438,
     0.008738561320534188
    ],
    [
     0.01016854130226208,
     0.008738561320534188,
     0.009550494568045131
    ]
   ]
  },
  {
   "set": "S1",
   "s": 0.5,
   "tau_over_M": [
    0.1,
    0.1
   ],
   "u": 0.9999999999999998,
   "Gamma": [
    0.9992664403361086,
    0.9992664403361086
   ],
   "Gamma_closed": [
    0.9992677669529664,
    0.9992677669529664
   ],
   "one_minus_Gamma_rel_dev": [
    0.0018117413072040733,
    0.0018117413072040733
   ],
   "T": [
    [
     0.0010242199789646904,
     -0.00044258022161306225
    ],
    [
     -0.00044258022161306225,
     0.0010242199789646923
    ]
   ],
   "T_closed": [
    [
     0.00102252435582567,
     -0.0004419417382415923
    ],
    [
     -0.0004419417382415923,
     0.00102252435582567
    ]
   ],
   "T_rel_dev": [
    [
     0.0016582716385773466,
     0.0014447229492520197
    ],
    [
     0.0014447229492520197,
     0.001658271638579345
    ]
   ],
   "T_abs_dev": [
    [
     1.6956231390203268e-06,
     -6.384833714699286e-07
    ],
    [
     -6.384833714699286e-07,
     1.6956231390222783e-06
    ]
   ],
   "fd_rel_dev": 1.1791243537118135e-08,
   "rmax48_rel_change": 5.455635943008019e-13,
   "rho_minus_g": [
    [
     0.0005820667380323415,
     0.0010249718569755916,
     -0.00044290511894325005
    ],
    [
     0.0005820667380323435,
     -0.00044290511894325005,
     0.0010249718569755935
    ]
   ],
   "rho_minus_g_closed": [
    [
     0.0005805826175840777,
     0.00102252435582567,
     -0.0004419417382415923
    ],
    [
     0.0005805826175840777,
     -0.0004419417382415923,
     0.00102252435582567
    ]
   ],
   "rho_rel_dev": [
    [
     0.00255626056191538,
     0.0023935871414477727,
     0.0021798816864206927
    ],
    [
     0.0025562605619189327,
     0.0021798816864206927,
     0.002393587141449771
    ]
   ]
  },
  {
   "set": "S1",
   "s": 0.25,
   "tau_over_M": [
    0.05,
    0.05
   ],
   "u": 0.9999999999999998,
   "Gamma": [
    0.9998168588094134,
    0.9998168588094134
   ],
   "Gamma_closed": [
    0.9998169417382415,
    0.9998169417382415
   ],
   "one_minus_Gamma_rel_dev": [
    0.0004530187675839681,
    0.0004530187675839681
   ],
   "T": [
    [
     0.00025573730487481156,
     -0.00011052536764378089
    ],
    [
     -0.00011052536764378089,
     0.0002557373048748124
    ]
   ],
   "T_closed": [
    [
     0.0002556310889564175,
     -0.00011048543456039808
    ],
    [
     -0.00011048543456039808,
     0.0002556310889564175
    ]
   ],
   "T_rel_dev": [
    [
     0.00041550469791307165,
     0.000361433011887069
    ],
    [
     0.000361433011887069,
     0.0004155046979164023
    ]
   ],
   "T_abs_dev": [
    [
     1.0621591839404679e-07,
     -3.9933083382807304e-08
    ],
    [
     -3.9933083382807304e-08,
     1.0621591839485994e-07
    ]
   ],
   "fd_rel_dev": 3.609050347463949e-08,
   "rmax48_rel_change": 2.503108831319878e-12,
   "rho_minus_g": [
    [
     0.0001452385363895041,
     0.0002557841494884821,
     -0.00011054561309897796
    ],
    [
     0.00014523853638950492,
     -0.00011054561309897796,
     0.0002557841494884829
    ]
   ],
   "rho_minus_g_closed": [
    [
     0.00014514565439601942,
     0.0002556310889564175,
     -0.00011048543456039808
    ],
    [
     0.00014514565439601942,
     -0.00011048543456039808,
     0.0002556310889564175
    ]
   ],
   "rho_rel_dev": [
    [
     0.0006399226616269349,
     0.0005987555453033089,
     0.0005446739547101398
    ],
    [
     0.000639922661632486,
     0.0005446739547101398,
     0.0005987555453064175
    ]
   ]
  },
  {
   "set": "S2",
   "s": 1.0,
   "tau_over_M": [
    0.2,
    0.144
   ],
   "u": 1.2135922330097086,
   "Gamma": [
    0.9963351569212678,
    0.9980956305279339
   ],
   "Gamma_closed": [
    0.9963592363668385,
    0.9981126281325691
   ],
   "one_minus_Gamma_rel_dev": [
    0.006613844785576584,
    0.009005964817243584
   ],
   "T": [
    [
     0.005010141100112979,
     -0.0014997044809325405
    ],
    [
     -0.0011997635847460324,
     0.0030359934585122363
    ]
   ],
   "T_closed": [
    [
     0.004983245497355288,
     -0.001489286586290982
    ],
    [
     -0.0011914292690327856,
     0.0030026975685285206
    ]
   ],
   "T_rel_dev": [
    [
     0.005397206052153214,
     0.006995224920076648
    ],
    [
     0.006995224920076648,
     0.011088659188555061
    ]
   ],
   "T_abs_dev": [
    [
     2.6895602757690852e-05,
     -1.0417894641558513e-05
    ],
    [
     -8.33431571324681e-06,
     3.3295889983715656e-05
    ]
   ],
   "fd_rel_dev": 1.63860662816262e-08,
   "rmax48_rel_change": 7.485123632022805e-13,
   "rho_minus_g": [
    [
     0.0035233491408933983,
     0.005028570020147235,
     -0.001505220879253837
    ],
    [
     0.0018397334059011422,
     -0.001202052737282727,
     0.003041786143183869
    ]
   ],
   "rho_minus_g_closed": [
    [
     0.0034939589110643057,
     0.004983245497355288,
     -0.001489286586290982
    ],
    [
     0.001811268299495735,
     -0.0011914292690327856,
     0.0030026975685285206
    ]
   ],
   "rho_rel_dev": [
    [
     0.008411727377795719,
     0.009095382279681319,
     0.010699279178052024
    ],
    [
     0.01571556594532786,
     0.008916574845073022,
     0.01301781939847646
    ]
   ]
  },
  {
   "set": "S2",
   "s": 0.5,
   "tau_over_M": [
    0.1,
    0.072
   ],
   "u": 1.2135922330097086,
   "Gamma": [
    0.9990883029206896,
    0.9995270984890194
   ],
   "Gamma_closed": [
    0.9990898090917096,
    0.9995281570331422
   ],
   "one_minus_Gamma_rel_dev": [
    0.0016547858326172449,
    0.0022434246076612485
   ],
   "T": [
    [
     0.0012475105533239627,
     -0.00037297405335884163
    ],
    [
     -0.00029837924268707333,
     0.0007527510736843651
    ]
   ],
   "T_closed": [
    [
     0.001245811374338822,
     -0.0003723216465727455
    ],
    [
     -0.0002978573172581964,
     0.0007506743921321302
    ]
   ],
   "T_rel_dev": [
    [
     0.001363913526670535,
     0.0017522666009393006
    ],
    [
     0.0017522666009393006,
     0.0027664211993918553
    ]
   ],
   "T_abs_dev": [
    [
     1.699178985140699e-06,
     -6.524067860961473e-07
    ],
    [
     -5.219254288769395e-07,
     2.076681552234949e-06
    ]
   ],
   "fd_rel_dev": 5.121327339985271e-08,
   "rmax48_rel_change": 5.990763440877345e-13,
   "rho_minus_g": [
    [
     0.0008753345399085752,
     0.0012486489429183053,
     -0.0003733144030097301
    ],
    [
     0.00045458680578461914,
     -0.0002985204134416484,
     0.0007531072192262676
    ]
   ],
   "rho_minus_g_closed": [
    [
     0.0008734897277660764,
     0.001245811374338822,
     -0.0003723216465727455
    ],
    [
     0.00045281707487393377,
     -0.0002978573172581964,
     0.0007506743921321302
    ]
   ],
   "rho_rel_dev": [
    [
     0.002112002103581423,
     0.0022776871667182785,
     0.002666394624441182
    ],
    [
     0.003908268943210835,
     0.0022262208951449036,
     0.003240855315748137
    ]
   ]
  },
  {
   "set": "S2",
   "s": 0.25,
   "tau_over_M": [
    0.05,
    0.036
   ],
   "u": 1.2135922330097086,
   "Gamma": [
    0.9997723581193328,
    0.999881973158779
   ],
   "Gamma_closed": [
    0.9997724522729274,
    0.9998820392582856
   ],
   "one_minus_Gamma_rel_dev": [
    0.00041377514861973275,
    0.0005603517371477462
   ],
   "T": [
    [
     0.00031155932304255266,
     -9.312120682257841e-05
    ],
    [
     -7.449696545806273e-05,
     0.00018779832213079126
    ]
   ],
   "T_closed": [
    [
     0.0003114528435847055,
     -9.308041164318637e-05
    ],
    [
     -7.44643293145491e-05,
     0.00018766859803303254
    ]
   ],
   "T_rel_dev": [
    [
     0.0003418798705498993,
     0.0004382788888861455
    ],
    [
     0.0004382788888861455,
     0.0006912402986880561
    ]
   ],
   "T_abs_dev": [
    [
     1.0647945784716516e-07,
     -4.079517939203827e-08
    ],
    [
     -3.2636143513627906e-08,
     1.2972409775872072e-07
    ]
   ],
   "fd_rel_dev": 7.116793843131575e-08,
   "rmax48_rel_change": 4.817923837663329e-12,
   "rho_minus_g": [
    [
     0.00021848785320578094,
     0.000311630263141727,
     -9.314240993594609e-05
    ],
    [
     0.00011331473085247486,
     -7.450575913746649e-05,
     0.00018782048998994134
    ]
   ],
   "rho_minus_g_closed": [
    [
     0.0002183724319415191,
     0.0003114528435847055,
     -9.308041164318637e-05
    ],
    [
     0.00011320426871848344,
     -7.44643293145491e-05,
     0.00018766859803303254
    ]
   ],
   "rho_rel_dev": [
    [
     0.0005285523600009334,
     0.0005696514277393483,
     0.0006660723955260739
    ],
    [
     0.0009757771084244471,
     0.0005563713968654849,
     0.0008093626664278375
    ]
   ]
  },
  {
   "set": "S3",
   "s": 1.0,
   "tau_over_M": [
    0.2,
    0.18888888888888888
   ],
   "u": 1.220338983050847,
   "Gamma": [
    0.9843268447697008,
    0.98600229067475
   ],
   "Gamma_closed": [
    0.9836617738906298,
    0.985426705723432
   ],
   "one_minus_Gamma_rel_dev": [
    -0.04070643132362728,
    -0.03949587103606356
   ],
   "T": [
    [
     0.03236098066607433,
     0.0016430408200584622
    ],
    [
     0.0018256009111760692,
     0.028611490435707758
    ]
   ],
   "T_closed": [
    [
     0.03477985264646606,
     0.0016885631211463628
    ],
    [
     0.0018761812457181808,
     0.030652745164281785
    ]
   ],
   "T_rel_dev": [
    [
     -0.06954808017674297,
     -0.0269591941916838
    ],
    [
     -0.0269591941916838,
     -0.06659288483409986
    ]
   ],
   "T_abs_dev": [
    [
     -0.002418871980391729,
     -4.5522301087900586e-05
    ],
    [
     -5.058033454211162e-05,
     -0.002041254728574027
    ]
   ],
   "fd_rel_dev": 2.0082558727096966e-08,
   "rmax48_rel_change": 1.1479706074624119e-13,
   "rho_minus_g": [
    [
     0.03454545780887301,
     0.03287625531908124,
     0.0016692024897917706
    ],
    [
     0.030869189285609916,
     0.001851517920842514,
     0.029017671364767402
    ]
   ],
   "rho_minus_g_closed": [
    [
     0.03646841576761242,
     0.03477985264646606,
     0.0016885631211463628
    ],
    [
     0.032528926409999964,
     0.0018761812457181808,
     0.030652745164281785
    ]
   ],
   "rho_rel_dev": [
    [
     -0.05272940757813749,
     -0.05473275998994909,
     -0.011465743336528833
    ],
    [
     -0.051023421537816804,
     -0.01314549163731027,
     -0.053341839066983754
    ]
   ]
  },
  {
   "set": "S3",
   "s": 0.5,
   "tau_over_M": [
    0.1,
    0.09444444444444444
   ],
   "u": 1.220338983050847,
   "Gamma": [
    0.9959582916250285,
    0.9963937094724227
   ],
   "Gamma_closed": [
    0.9959154434726575,
    0.996356676430858
   ],
   "one_minus_Gamma_rel_dev": [
    -0.010490282625337244,
    -0.010164631513467692
   ],
   "T": [
    [
     0.008536987046246936,
     0.00041921390464900993
    ],
    [
     0.0004657932273877888,
     0.007530158217610049
    ]
   ],
   "T_closed": [
    [
     0.008694963161616515,
     0.0004221407802865907
    ],
    [
     0.0004690453114295452,
     0.007663186291070446
    ]
   ],
   "T_rel_dev": [
    [
     -0.01816869288957501,
     -0.006933411255822586
    ],
    [
     -0.006933411255822475,
     -0.01735936833682461
    ]
   ],
   "T_abs_dev": [
    [
     -0.00015797611536957912,
     -2.9268756375807736e-06
    ],
    [
     -3.252084041756385e-06,
     -0.00013302807346039693
    ]
   ],
   "fd_rel_dev": 2.1809762662527987e-08,
   "rmax48_rel_change": 8.097966741615892e-13,
   "rho_minus_g": [
    [
     0.008992546200185554,
     0.008571631079367582,
     0.00042091512081797206
    ],
    [
     0.008024891535326522,
     0.0004674790928120373,
     0.007557412442514485
    ]
   ],
   "rho_minus_g_closed": [
    [
     0.009117103941903106,
     0.008694963161616515,
     0.0004221407802865907
    ],
    [
     0.008132231602499991,
     0.0004690453114295452,
     0.007663186291070446
    ]
   ],
   "rho_rel_dev": [
    [
     -0.013661985484784367,
     -0.014184313372755497,
     -0.0029034377294383518
    ],
    [
     -0.01319933720781774,
     -0.0033391627191291517,
     -0.013802854914177765
    ]
   ]
  },
  {
   "set": "S3",
   "s": 0.25,
   "tau_over_M": [
    0.05,
    0.04722222222222222
   ],
   "u": 1.220338983050847,
   "Gamma": [
    0.9989815597095916,
    0.9990915008620641
   ],
   "Gamma_closed": [
    0.9989788608681643,
    0.9990891691077145
   ],
   "one_minus_Gamma_rel_dev": [
    -0.002642971308304709,
    -0.0025600299345951427
   ],
   "T": [
    [
     0.00216375542958061,
     0.00010535089739389399
    ],
    [
     0.00011705655265988221,
     0.0019073928499232923
    ]
   ],
   "T_closed": [
    [
     0.002173740790404129,
     0.00010553519507164768
    ],
    [
     0.0001172613278573863,
     0.0019157965727676115
    ]
   ],
   "T_rel_dev": [
    [
     -0.004593629961584522,
     -0.0017463148443376264
    ],
    [
     -0.0017463148443376264,
     -0.004386542372909141
    ]
   ],
   "T_abs_dev": [
    [
     -9.985360823518748e-06,
     -1.8429767775368655e-07
    ],
    [
     -2.0477519750408864e-07,
     -8.403722844319266e-06
    ]
   ],
   "fd_rel_dev": 4.1618599344595e-08,
   "rmax48_rel_change": 4.3264281046617725e-12,
   "rho_minus_g": [
    [
     0.002271419632244407,
     0.0021659613318684517,
     0.00010545830037595485
    ],
    [
     0.002026290285560814,
     0.00011716299513996486,
     0.0019091272904208495
    ]
   ],
   "rho_minus_g_closed": [
    [
     0.0022792759854757764,
     0.002173740790404129,
     0.00010553519507164768
    ],
    [
     0.0020330579006249978,
     0.0001172613278573863,
     0.0019157965727676115
    ]
   ],
   "rho_rel_dev": [
    [
     -0.0034468635134282666,
     -0.0035788345004239552,
     -0.0007286166064375266
    ],
    [
     -0.003328786190547328,
     -0.0008385775533860107,
     -0.0034812059075391977
    ]
   ]
  }
 ]
}
output/summary.txt26 KB · raw
== S1: chain |x_i|<=60 (121 sites, dim 58564), fibre |r|<=48, packet cos^4 on |P-0.0|<=0.5 (delta P=0.1059), centre label 0, lambda<=3014 step 36.75 (alias margin 0.049, window half width 0.0063), eps=5.0e-07, 352.3 s
   level: E_b=1.99176939 E_b'=+6.678e-24 E_b''=+1.417680e-02 <s3>=0.997050,0.997050 gap>=8.272e-03 dist to bands>=8.231e-03 inside band: False
   checks: |<V1>-<V2>|<=5.6e-18, FD(E_b') 1.1e-07, FD(E_b'') 5.1e-07, fibre tail 1.7e-09, packet norm 0.9999999999, residual 3.4e-07, norm drift 1.1e-13, edge weight 3.0e-09
   common gradient g1=g2  slope v1 -2.78700118e-02 v2 -2.78700118e-02 | (13.7) -2.78700921e-02 | rel dev -2.9e-06 -2.9e-06 | half windows 3.1e-05 | two-point +6.0e-05 +6.0e-05 | rest sup 2.26e-02 2.26e-02 (linear part at end 8.40e+01)
                          separation: slope +6.9604e-13 (half windows +1.3884e-12 -6.9118e-12) | (13.10) <beta>_g +3.0454e-15 | max |sep| 1.589e-08 | sup |sep - lambda<beta>| 1.590e-08
   g1 only (g2=0)         slope v1 -1.39353211e-02 v2 -1.39347558e-02 | (13.7) -1.39350460e-02 | rel dev +2.0e-05 -2.1e-05 | half windows 1.2e-02 | two-point +1.0e-03 -9.1e-04 | rest sup 8.34e-01 8.35e-01 (linear part at end 4.20e+01)
                          separation: slope -3.8829e-04 (half windows -3.9188e-02 -1.9538e-02) | (13.10) <beta>_g +1.5227e-15 | max |sep| 2.700e+02 | sup |sep - lambda<beta>| 2.700e+02
   plain gradient         slope v1 -2.79507795e-02 v2 -2.79507795e-02 | (13.7) -2.79508614e-02 | rel dev -2.9e-06 -2.9e-06 | half windows 2.6e-05 | two-point -6.5e-05 -6.5e-05 | rest sup 1.90e-02 1.90e-02 (linear part at end 8.42e+01)
                          separation: slope -2.4351e-12 (half windows +4.1522e-12 +2.2034e-12) | (13.10) <beta>_g +3.0650e-15 | max |sep| 2.717e-08 | sup |sep - lambda<beta>| 2.716e-08
   closed form common   (13.13) -2.828427e-02 | level at P0 -2.826995e-02 (rel -5.06e-04) | (11.12) packet average -2.788673e-02 vs evolution -2.787001e-02 (rel -5.99e-04); u=1.000, (tau/M)^2=0.040,0.040
   closed form g1 only  (13.13) -1.414214e-02 | level at P0 -1.413498e-02 (rel -5.06e-04) | (11.12) packet average -1.394336e-02 vs evolution -1.393532e-02 (rel -5.77e-04); u=1.000, (tau/M)^2=0.040,0.040
   closed form plain    (13.13) -2.828427e-02 | level at P0 -2.835360e-02 (rel +2.45e-03) | (11.12) packet average -2.788673e-02 vs evolution -2.795078e-02 (rel +2.30e-03); u=1.000, (tau/M)^2=0.040,0.040
== S2: chain |x_i|<=60 (121 sites, dim 58564), fibre |r|<=48, packet cos^4 on |P-0.0|<=0.5 (delta P=0.1059), centre label 0, lambda<=3014 step 36.75 (alias margin 0.036, window half width 0.0063), eps=5.0e-07, 369.7 s
   level: E_b=2.24061401 E_b'=-3.186e-19 E_b''=+1.003067e-02 <s3>=0.996335,0.998096 gap>=9.420e-03 dist to bands>=9.386e-03 inside band: False
   checks: |<V1>-<V2>|<=1.4e-16, FD(E_b') 8.4e-08, FD(E_b'') 3.7e-07, fibre tail 5.4e-11, packet norm 0.9999999999, residual 2.9e-07, norm drift 5.1e-13, edge weight 8.1e-10
   common gradient g1=g2  slope v1 -2.21483159e-02 v2 -2.21483554e-02 | (13.7) -2.21484349e-02 | rel dev -5.4e-06 -3.6e-06 | half windows 2.1e-04 | two-point -1.8e-04 +7.9e-05 | rest sup 1.75e-01 1.00e-01 (linear part at end 6.67e+01)
                          separation: slope -3.0080e-05 (half windows -3.5656e-03 +1.1616e-03) | (13.10) <beta>_g +2.8527e-15 | max |sep| 3.897e+01 | sup |sep - lambda<beta>| 3.897e+01
   g1 only (g2=0)         slope v1 -9.83399042e-03 v2 -9.83419302e-03 | (13.7) -9.83412054e-03 | rel dev -1.3e-05 +7.4e-06 | half windows 2.3e-03 | two-point -1.1e-03 +5.9e-04 | rest sup 8.43e-01 5.44e-01 (linear part at end 2.96e+01)
                          separation: slope -1.5424e-04 (half windows -1.8305e-02 +5.9488e-03) | (13.10) <beta>_g +1.2645e-15 | max |sep| 2.007e+02 | sup |sep - lambda<beta>| 2.007e+02
   plain gradient         slope v1 -1.97396066e-02 v2 -1.97396783e-02 | (13.7) -1.97397357e-02 | rel dev -6.5e-06 -2.9e-06 | half windows 4.2e-04 | two-point -8.1e-05 +1.0e-04 | rest sup 3.10e-01 1.90e-01 (linear part at end 5.95e+01)
                          separation: slope -5.4601e-05 (half windows -6.4826e-03 +2.1087e-03) | (13.10) <beta>_g +2.5482e-15 | max |sep| 7.109e+01 | sup |sep - lambda<beta>| 7.109e+01
   closed form common   (13.13) -2.250429e-02 | level at P0 -2.250836e-02 (rel +1.81e-04) | (11.12) packet average -2.214559e-02 vs evolution -2.214832e-02 (rel +1.23e-04); u=1.214, (tau/M)^2=0.040,0.021
   closed form g1 only  (13.13) -1.000191e-02 | level at P0 -9.993907e-03 (rel -8.00e-04) | (11.12) packet average -9.842483e-03 vs evolution -9.833990e-03 (rel -8.63e-04); u=1.214, (tau/M)^2=0.040,0.021
   closed form plain    (13.13) -2.000381e-02 | level at P0 -2.006134e-02 (rel +2.88e-03) | (11.12) packet average -1.968497e-02 vs evolution -1.973961e-02 (rel +2.78e-03); u=1.214, (tau/M)^2=0.040,0.021
== S3: chain |x_i|<=60 (121 sites, dim 58564), fibre |r|<=48, packet cos^4 on |P-0.0|<=0.5 (delta P=0.1059), centre label 0, lambda<=3008 step 32.0 (alias margin 0.040, window half width 0.0063), eps=5.0e-07, 356.0 s
   level: E_b=1.94601228 E_b'=-3.354e-20 E_b''=-1.103845e-02 <s3>=0.984327,0.986002 gap>=1.033e-02 dist to bands>=1.029e-02 inside band: False
   checks: |<V1>-<V2>|<=1.5e-16, FD(E_b') 9.1e-08, FD(E_b'') 4.1e-07, fibre tail 1.9e-11, packet norm 0.9999999999, residual 2.9e-07, norm drift 1.7e-13, edge weight 1.0e-09
   common gradient g1=g2  slope v1 +2.03366779e-02 v2 +2.03366466e-02 | (13.7) +2.03367203e-02 | rel dev -2.1e-06 -3.6e-06 | half windows 2.2e-04 | two-point +7.4e-05 -4.6e-05 | rest sup 1.95e-01 1.56e-01 (linear part at end 6.12e+01)
                          separation: slope +2.3910e-05 (half windows +1.6482e-03 -2.0806e-04) | (13.10) <beta>_g +2.2199e-15 | max |sep| 4.354e+01 | sup |sep - lambda<beta>| 4.354e+01
   g1 only (g2=0)         slope v1 +1.06950117e-02 v2 +1.06948982e-02 | (13.7) +1.06949565e-02 | rel dev +5.2e-06 -5.5e-06 | half windows 1.5e-03 | two-point +6.7e-04 -5.8e-04 | rest sup 6.65e-01 5.44e-01 (linear part at end 3.22e+01)
                          separation: slope +8.6585e-05 (half windows +5.9659e-03 -7.5495e-04) | (13.10) <beta>_g +1.1676e-15 | max |sep| 1.574e+02 | sup |sep - lambda<beta>| 1.574e+02
   plain gradient         slope v1 +2.17315005e-02 v2 +2.17314776e-02 | (13.7) +2.17315531e-02 | rel dev -2.4e-06 -3.5e-06 | half windows 1.5e-04 | two-point +6.9e-05 -6.3e-05 | rest sup 1.45e-01 1.03e-01 (linear part at end 6.54e+01)
                          separation: slope +1.7507e-05 (half windows +1.2057e-03 -1.5206e-04) | (13.10) <beta>_g +2.3552e-15 | max |sep| 3.183e+01 | sup |sep - lambda<beta>| 3.183e+01
   closed form common   (13.13) +2.145035e-02 | level at P0 +2.066098e-02 (rel -3.68e-02) | (11.12) packet average +2.111232e-02 vs evolution +2.033668e-02 (rel -3.67e-02); u=1.220, (tau/M)^2=0.040,0.036
   closed form g1 only  (13.13) +1.128966e-02 | level at P0 +1.086544e-02 (rel -3.76e-02) | (11.12) packet average +1.111175e-02 vs evolution +1.069501e-02 (rel -3.75e-02); u=1.220, (tau/M)^2=0.040,0.036
   closed form plain    (13.13) +2.257932e-02 | level at P0 +2.207690e-02 (rel -2.23e-02) | (11.12) packet average +2.222350e-02 vs evolution +2.173150e-02 (rel -2.21e-02); u=1.220, (tau/M)^2=0.040,0.036
== S4: chain |x_i|<=60 (121 sites, dim 58564), fibre |r|<=48, packet cos^4 on |P-0.0|<=0.5 (delta P=0.1059), centre label 0, lambda<=200 step 1.0 (alias margin 1.716, window half width 0.0942), eps=2.0e-06, 241.6 s
   level: E_b=1.71210419 E_b'=-2.020e-17 E_b''=+1.539205e-01 <s3>=0.768512,0.881314 gap>=4.887e-01 dist to bands>=4.879e-01 inside band: False
   checks: |<V1>-<V2>|<=6.5e-16, FD(E_b') 1.5e-06, FD(E_b'') 7.7e-06, fibre tail 1.2e-14, packet norm 0.9999999999, residual 1.8e-06, norm drift 1.5e-14, edge weight 8.6e-10
   common gradient g1=g2  slope v1 -2.75262112e-01 v2 -2.75262112e-01 | (13.7) -2.75262183e-01 | rel dev -2.6e-07 -2.6e-07 | half windows 7.0e-07 | two-point +1.5e-03 -9.4e-04 | rest sup 5.77e-01 5.65e-01 (linear part at end 5.51e+01)
                          separation: slope -7.3986e-08 (half windows -2.3618e-06 -1.0784e-07) | (13.10) <beta>_g +1.1255e-17 | max |sep| 1.211e+00 | sup |sep - lambda<beta>| 1.211e+00
   g1 only (g2=0)         slope v1 -1.15854383e-01 v2 -1.15854384e-01 | (13.7) -1.15854388e-01 | rel dev -4.7e-08 -3.8e-08 | half windows 1.1e-06 | two-point +3.9e-03 +6.8e-04 | rest sup 6.94e-01 2.59e-01 (linear part at end 2.32e+01)
                          separation: slope -1.8394e-07 (half windows -5.9357e-06 -2.3784e-07) | (13.10) <beta>_g +5.0628e-18 | max |sep| 2.411e+00 | sup |sep - lambda<beta>| 2.411e+00
   plain gradient         slope v1 -3.01229645e-01 v2 -3.01229646e-01 | (13.7) -3.01229766e-01 | rel dev -4.0e-07 -4.0e-07 | half windows 9.3e-07 | two-point -1.5e-03 +4.7e-04 | rest sup 6.75e-01 2.78e-01 (linear part at end 6.02e+01)
                          separation: slope -7.3840e-08 (half windows -2.4097e-06 -8.0318e-08) | (13.10) <beta>_g +1.0811e-17 | max |sep| 9.639e-01 | sup |sep - lambda<beta>| 9.639e-01
== S5: chain |x_i|<=60 (121 sites, dim 58564), fibre |r|<=48, packet cos^4 on |P-0.2|<=0.4 (delta P=0.0847), centre label -12, lambda<=400 step 1.0 (alias margin 1.427, window half width 0.0471), eps=2.0e-06, 360.3 s
   level: E_b=2.00101648 E_b'=+5.016e-02 E_b''=+2.405046e-01 <s3>=0.896692,0.925514 gap>=7.444e-02 dist to bands>=2.040e-01 inside band: False
   checks: |<V1>-<V2>|<=1.2e-15, FD(E_b') 1.7e-06, FD(E_b'') 6.8e-06, fibre tail 2.1e-10, packet norm 0.9999999973, residual 5.2e-06, norm drift 8.1e-14, edge weight 3.2e-06
   common gradient g1=g2  slope v1 -4.81459652e-01 v2 -4.81467652e-01 | (13.7) -4.81456283e-01 | rel dev +7.0e-06 +2.4e-05 | half windows 5.4e-03 | two-point -3.9e-03 -2.1e-03 | rest sup 2.10e+00 3.11e+00 (linear part at end 1.93e+02)
                          separation: slope -8.6620e-02 (half windows -1.1118e-01 -7.2999e-02) | (13.10) <beta>_g -8.6508e-02 | max |sep| 4.690e+01 | sup |sep - lambda<beta>| 1.495e+01
   g1 only (g2=0)         slope v1 -2.14925383e-01 v2 -2.14928547e-01 | (13.7) -2.14923838e-01 | rel dev +7.2e-06 +2.2e-05 | half windows 5.4e-03 | two-point -3.5e-03 -1.7e-03 | rest sup 1.94e+00 1.42e+00 (linear part at end 8.60e+01)
                          separation: slope -2.8194e-02 (half windows -3.9456e-02 -2.2817e-02) | (13.10) <beta>_g -2.8133e-02 | max |sep| 2.319e+01 | sup |sep - lambda<beta>| 1.483e+01
   plain gradient         slope v1 -4.75406552e-01 v2 -4.75417030e-01 | (13.7) -4.75402144e-01 | rel dev +9.3e-06 +3.1e-05 | half windows 6.0e-03 | two-point +1.1e-03 +3.7e-03 | rest sup 8.27e-01 9.60e-01 (linear part at end 1.90e+02)
                          separation: slope -7.4571e-02 (half windows -1.0636e-01 -5.5695e-02) | (13.10) <beta>_g -7.4440e-02 | max |sep| 4.637e+01 | sup |sep - lambda<beta>| 1.927e+01
== S1_L45: chain |x_i|<=45 (91 sites, dim 33124), fibre |r|<=48, packet cos^4 on |P-0.0|<=0.5 (delta P=0.1059), centre label 0, lambda<=3014 step 36.75 (alias margin 0.049, window half width 0.0063), eps=5.0e-07, 159.4 s
   level: E_b=1.99176939 E_b'=+6.678e-24 E_b''=+1.417680e-02 <s3>=0.997050,0.997050 gap>=8.272e-03 dist to bands>=8.231e-03 inside band: False
   checks: |<V1>-<V2>|<=5.6e-18, FD(E_b') 1.1e-07, FD(E_b'') 5.1e-07, fibre tail 1.7e-09, packet norm 0.9999999988, residual 7.0e-07, norm drift 2.4e-14, edge weight 3.0e-07
   g1 only (g2=0)         slope v1 -1.39353174e-02 v2 -1.39347522e-02 | (13.7) -1.39350460e-02 | rel dev +1.9e-05 -2.1e-05 | half windows 1.2e-02 | two-point +1.0e-03 -9.1e-04 | rest sup 8.34e-01 8.35e-01 (linear part at end 4.20e+01)
                          separation: slope -3.8828e-04 (half windows -3.9188e-02 -1.9538e-02) | (13.10) <beta>_g +1.5227e-15 | max |sep| 2.700e+02 | sup |sep - lambda<beta>| 2.700e+02
== S1_eps2: chain |x_i|<=60 (121 sites, dim 58564), fibre |r|<=48, packet cos^4 on |P-0.0|<=0.5 (delta P=0.1059), centre label 0, lambda<=3014 step 36.75 (alias margin 0.049, window half width 0.0063), eps=1.0e-06, 235.1 s
   level: E_b=1.99176939 E_b'=+6.678e-24 E_b''=+1.417680e-02 <s3>=0.997050,0.997050 gap>=8.272e-03 dist to bands>=8.231e-03 inside band: False
   checks: |<V1>-<V2>|<=5.6e-18, FD(E_b') 1.1e-07, FD(E_b'') 5.1e-07, fibre tail 1.7e-09, packet norm 0.9999999999, residual 3.4e-07, norm drift 9.6e-14, edge weight 3.1e-09
   g1 only (g2=0)         slope v1 -1.39352885e-02 v2 -1.39347235e-02 | (13.7) -1.39350460e-02 | rel dev +1.7e-05 -2.3e-05 | half windows 1.2e-02 | two-point +1.0e-03 -9.1e-04 | rest sup 8.34e-01 8.35e-01 (linear part at end 4.20e+01)
                          separation: slope -3.8798e-04 (half windows -3.9187e-02 -1.9536e-02) | (13.10) <beta>_g +1.5227e-15 | max |sep| 2.700e+02 | sup |sep - lambda<beta>| 2.700e+02
== S1_Pc035: chain |x_i|<=60 (121 sites, dim 58564), fibre |r|<=48, packet cos^4 on |P-0.0|<=0.35 (delta P=0.0741), centre label 0, lambda<=3014 step 36.75 (alias margin 0.052, window half width 0.0063), eps=5.0e-07, 237.3 s
   level: E_b=1.99176939 E_b'=+6.678e-24 E_b''=+1.417680e-02 <s3>=0.997050,0.997050 gap>=8.272e-03 dist to bands>=8.231e-03 inside band: False
   checks: |<V1>-<V2>|<=5.2e-18, FD(E_b') 3.7e-08, FD(E_b'') 2.4e-07, fibre tail 1.7e-09, packet norm 0.9999999983, residual 1.7e-06, norm drift 2.8e-13, edge weight 1.8e-08
   g1 only (g2=0)         slope v1 -1.40374166e-02 v2 -1.40368376e-02 | (13.7) -1.40371355e-02 | rel dev +2.0e-05 -2.1e-05 | half windows 1.2e-02 | two-point +1.0e-03 -8.8e-04 | rest sup 8.37e-01 8.41e-01 (linear part at end 4.23e+01)
                          separation: slope -3.9129e-04 (half windows -3.9477e-02 -1.9888e-02) | (13.10) <beta>_g -1.4341e-15 | max |sep| 2.720e+02 | sup |sep - lambda<beta>| 2.720e+02
== S1_dlam: chain |x_i|<=60 (121 sites, dim 58564), fibre |r|<=48, packet cos^4 on |P-0.0|<=0.5 (delta P=0.1059), centre label 0, lambda<=3003 step 21.0 (alias margin 0.091, window half width 0.0063), eps=5.0e-07, 258.5 s
   level: E_b=1.99176939 E_b'=+6.678e-24 E_b''=+1.417680e-02 <s3>=0.997050,0.997050 gap>=8.272e-03 dist to bands>=8.231e-03 inside band: False
   checks: |<V1>-<V2>|<=5.6e-18, FD(E_b') 1.1e-07, FD(E_b'') 5.1e-07, fibre tail 1.7e-09, packet norm 0.9999999999, residual 3.4e-07, norm drift 1.3e-13, edge weight 3.0e-09
   g1 only (g2=0)         slope v1 -1.39353260e-02 v2 -1.39347463e-02 | (13.7) -1.39350460e-02 | rel dev +2.0e-05 -2.2e-05 | half windows 1.3e-02 | two-point +8.3e-04 -9.3e-04 | rest sup 8.50e-01 8.39e-01 (linear part at end 4.18e+01)
                          separation: slope -3.8979e-04 (half windows -3.9284e-02 -1.9855e-02) | (13.10) <beta>_g +1.5227e-15 | max |sep| 2.696e+02 | sup |sep - lambda<beta>| 2.696e+02
== S4_L45: chain |x_i|<=45 (91 sites, dim 33124), fibre |r|<=48, packet cos^4 on |P-0.0|<=0.5 (delta P=0.1059), centre label 0, lambda<=200 step 1.0 (alias margin 1.716, window half width 0.0942), eps=2.0e-06, 113.2 s
   level: E_b=1.71210419 E_b'=-2.020e-17 E_b''=+1.539205e-01 <s3>=0.768512,0.881314 gap>=4.887e-01 dist to bands>=4.879e-01 inside band: False
   checks: |<V1>-<V2>|<=6.5e-16, FD(E_b') 1.5e-06, FD(E_b'') 7.7e-06, fibre tail 1.2e-14, packet norm 0.9999999988, residual 5.3e-06, norm drift 9.1e-14, edge weight 4.9e-08
   g1 only (g2=0)         slope v1 -1.15854376e-01 v2 -1.15854377e-01 | (13.7) -1.15854388e-01 | rel dev -1.0e-07 -9.2e-08 | half windows 1.3e-06 | two-point +3.9e-03 +6.5e-04 | rest sup 6.94e-01 2.59e-01 (linear part at end 2.32e+01)
                          separation: slope -1.8301e-07 (half windows -5.9357e-06 -2.3421e-07) | (13.10) <beta>_g +5.0628e-18 | max |sep| 2.411e+00 | sup |sep - lambda<beta>| 2.411e+00
== S5_L75: chain |x_i|<=75 (151 sites, dim 91204), fibre |r|<=48, packet cos^4 on |P-0.2|<=0.4 (delta P=0.0847), centre label -12, lambda<=400 step 1.0 (alias margin 1.427, window half width 0.0471), eps=2.0e-06, 307.5 s
   level: E_b=2.00101648 E_b'=+5.016e-02 E_b''=+2.405046e-01 <s3>=0.896692,0.925514 gap>=7.444e-02 dist to bands>=2.040e-01 inside band: False
   checks: |<V1>-<V2>|<=1.2e-15, FD(E_b') 1.7e-06, FD(E_b'') 6.8e-06, fibre tail 2.1e-10, packet norm 0.9999999998, residual 1.1e-06, norm drift 1.4e-13, edge weight 4.2e-08
   g1 only (g2=0)         slope v1 -2.14925708e-01 v2 -2.14928869e-01 | (13.7) -2.14923838e-01 | rel dev +8.7e-06 +2.3e-05 | half windows 5.5e-03 | two-point -3.4e-03 -1.8e-03 | rest sup 1.94e+00 1.42e+00 (linear part at end 8.60e+01)
                          separation: slope -2.8194e-02 (half windows -3.9456e-02 -2.2817e-02) | (13.10) <beta>_g -2.8133e-02 | max |sep| 2.320e+01 | sup |sep - lambda<beta>| 1.483e+01
== S5_long: chain |x_i|<=75 (151 sites, dim 91204), fibre |r|<=48, packet cos^4 on |P-0.2|<=0.4 (delta P=0.0847), centre label -15, lambda<=600 step 1.0 (alias margin 1.427, window half width 0.0314), eps=2.0e-06, 377.3 s
   level: E_b=2.00101648 E_b'=+5.016e-02 E_b''=+2.405046e-01 <s3>=0.896692,0.925514 gap>=7.444e-02 dist to bands>=2.040e-01 inside band: False
   checks: |<V1>-<V2>|<=1.2e-15, FD(E_b') 1.7e-06, FD(E_b'') 6.8e-06, fibre tail 2.1e-10, packet norm 0.9999999997, residual 4.1e-06, norm drift 1.1e-13, edge weight 8.7e-06
   g1 only (g2=0)         slope v1 -2.14923024e-01 v2 -2.14922278e-01 | (13.7) -2.14923838e-01 | rel dev -3.8e-06 -7.3e-06 | half windows 3.0e-04 | two-point -4.3e-03 -6.4e-03 | rest sup 2.31e+00 1.65e+00 (linear part at end 1.29e+02)
                          separation: slope -2.8139e-02 (half windows -2.8900e-02 -2.7635e-02) | (13.10) <beta>_g -2.8133e-02 | max |sep| 2.828e+01 | sup |sep - lambda<beta>| 1.561e+01
== convergence (configuration g1 only): relative change of the slopes against the base run
   S1_L45     {'L': 45}              slope change v1 -2.6e-07 v2 -2.6e-07 | rel dev from (13.7): variant +1.9e-05 -2.1e-05, base +2.0e-05 -2.1e-05 | separation slope: variant -3.8828e-04, base -3.8829e-04
   S1_eps2    {'eps': 1e-06}         slope change v1 -2.3e-06 v2 -2.3e-06 | rel dev from (13.7): variant +1.7e-05 -2.3e-05, base +2.0e-05 -2.1e-05 | separation slope: variant -3.8798e-04, base -3.8829e-04
   S1_Pc035   {'Pc': 0.35}           slope change v1 +7.3e-03 v2 +7.3e-03 | rel dev from (13.7): variant +2.0e-05 -2.1e-05, base +2.0e-05 -2.1e-05 | separation slope: variant -3.9129e-04, base -3.8829e-04
   S1_dlam    {'dlam': (20.0, 28.0)} slope change v1 +3.5e-07 v2 -6.8e-07 | rel dev from (13.7): variant +2.0e-05 -2.2e-05, base +2.0e-05 -2.1e-05 | separation slope: variant -3.8979e-04, base -3.8829e-04
   S4_L45     {'L': 45}              slope change v1 -5.4e-08 v2 -5.4e-08 | rel dev from (13.7): variant -1.0e-07 -9.2e-08, base -4.7e-08 -3.8e-08 | separation slope: variant -1.8301e-07, base -1.8394e-07
   S5_L75     {'L': 75}              slope change v1 +1.5e-06 v2 +1.5e-06 | rel dev from (13.7): variant +8.7e-06 +2.3e-05, base +7.2e-06 +2.2e-05 | separation slope: variant -2.8194e-02, base -2.8194e-02
   S5_long    {'L': 75, 'lam_max': 600.0, 'xc': -15} slope change v1 -1.1e-05 v2 -2.9e-05 | rel dev from (13.7): variant -3.8e-06 -7.3e-06, base +7.2e-06 +2.2e-05 | separation slope: variant -2.8139e-02, base -2.8194e-02
== fibre range: change of the coefficients (13.8), (13.10) at P0 against |r|<=64
   S1 |r|<=32: tail of psi 1.9e-06, alpha rel change 1.1e-11, beta abs change 1.8e-17
   S1 |r|<=48: tail of psi 1.7e-09, alpha rel change 9.4e-14, beta abs change 2.7e-17
   S2 |r|<=32: tail of psi 1.9e-07, alpha rel change 1.8e-13, beta abs change 2.1e-17
   S2 |r|<=48: tail of psi 5.4e-11, alpha rel change 1.1e-14, beta abs change 6.6e-17
   S3 |r|<=32: tail of psi 7.4e-08, alpha rel change 1.4e-13, beta abs change 3.0e-17
   S3 |r|<=48: tail of psi 1.9e-11, alpha rel change 6.1e-14, beta abs change 4.2e-18
   S4 |r|<=32: tail of psi 7.3e-10, alpha rel change 1.1e-14, beta abs change 3.2e-17
   S4 |r|<=48: tail of psi 1.2e-14, alpha rel change 9.1e-15, beta abs change 1.1e-16
   S5 |r|<=32: tail of psi 3.6e-07, alpha rel change 1.8e-13, beta abs change 3.7e-12
   S5 |r|<=48: tail of psi 1.4e-10, alpha rel change 4.0e-15, beta abs change 7.6e-16
== scaling of the deviation from (13.13): tau -> s tau, w -> s^2 w (numerical level at P0=0, fibre |r|<=64)
   S1 s=1.0   tau/M=0.200,0.200 u=1.000 rel dev of coefficients (g1, g2, plain): -5.063e-04 -5.063e-04 +2.451e-03
   S1 s=0.5   tau/M=0.100,0.100 u=1.000 rel dev of coefficients (g1, g2, plain): -1.121e-04 -1.121e-04 +6.220e-04
   S1 s=0.25  tau/M=0.050,0.050 u=1.000 rel dev of coefficients (g1, g2, plain): -2.711e-05 -2.711e-05 +1.561e-04
   S2 s=1.0   tau/M=0.200,0.144 u=1.214 rel dev of coefficients (g1, g2, plain): -7.998e-04 +9.658e-04 +2.876e-03
   S2 s=0.5   tau/M=0.100,0.072 u=1.214 rel dev of coefficients (g1, g2, plain): -1.851e-04 +2.540e-04 +7.272e-04
   S2 s=0.25  tau/M=0.050,0.036 u=1.214 rel dev of coefficients (g1, g2, plain): -4.536e-05 +6.428e-05 +1.823e-04
   S3 s=1.0   tau/M=0.200,0.189 u=1.220 rel dev of coefficients (g1, g2, plain): -3.758e-02 -3.594e-02 -2.225e-02
   S3 s=0.5   tau/M=0.100,0.094 u=1.220 rel dev of coefficients (g1, g2, plain): -9.687e-03 -9.254e-03 -5.668e-03
   S3 s=0.25  tau/M=0.050,0.047 u=1.220 rel dev of coefficients (g1, g2, plain): -2.441e-03 -2.331e-03 -1.424e-03
== clock ratio Gamma_i = dE_b(0)/dM_i and its derivative in the data, T_ij = M_j dGamma_i/dM_j, against (11.20), (13.22): tau -> s tau, w -> s^2 w (numerical level at P0=0, fibre |r|<=64)
   S1 s=1.0   tau/M=0.200,0.200 u=1.000 1-Gamma_i rel dev +7.241e-03 +7.241e-03 | T_11 +4.116978e-03 T_12 -1.777954e-03 T_21 -1.777954e-03 T_22 +4.116978e-03 | rel dev from (13.22) +6.572e-03 +5.763e-03 +5.763e-03 +6.572e-03 | abs dev +2.69e-05 -1.02e-05 -1.02e-05 +2.69e-05
                          rho_i - g_i, (13.21) against (13.18), rel dev (common, g1 only, g2 only): part 1 +1.017e-02 +9.550e-03 +8.739e-03 | part 2 +1.017e-02 +8.739e-03 +9.550e-03 | symmetric difference in M_j against the resolvent 8.5e-09 | fibre |r|<=48 against 64 2.6e-13
   S1 s=0.5   tau/M=0.100,0.100 u=1.000 1-Gamma_i rel dev +1.812e-03 +1.812e-03 | T_11 +1.024220e-03 T_12 -4.425802e-04 T_21 -4.425802e-04 T_22 +1.024220e-03 | rel dev from (13.22) +1.658e-03 +1.445e-03 +1.445e-03 +1.658e-03 | abs dev +1.70e-06 -6.38e-07 -6.38e-07 +1.70e-06
                          rho_i - g_i, (13.21) against (13.18), rel dev (common, g1 only, g2 only): part 1 +2.556e-03 +2.394e-03 +2.180e-03 | part 2 +2.556e-03 +2.180e-03 +2.394e-03 | symmetric difference in M_j against the resolvent 1.2e-08 | fibre |r|<=48 against 64 5.5e-13
   S1 s=0.25  tau/M=0.050,0.050 u=1.000 1-Gamma_i rel dev +4.530e-04 +4.530e-04 | T_11 +2.557373e-04 T_12 -1.105254e-04 T_21 -1.105254e-04 T_22 +2.557373e-04 | rel dev from (13.22) +4.155e-04 +3.614e-04 +3.614e-04 +4.155e-04 | abs dev +1.06e-07 -3.99e-08 -3.99e-08 +1.06e-07
                          rho_i - g_i, (13.21) against (13.18), rel dev (common, g1 only, g2 only): part 1 +6.399e-04 +5.988e-04 +5.447e-04 | part 2 +6.399e-04 +5.447e-04 +5.988e-04 | symmetric difference in M_j against the resolvent 3.6e-08 | fibre |r|<=48 against 64 2.5e-12
   S2 s=1.0   tau/M=0.200,0.144 u=1.214 1-Gamma_i rel dev +6.614e-03 +9.006e-03 | T_11 +5.010141e-03 T_12 -1.499704e-03 T_21 -1.199764e-03 T_22 +3.035993e-03 | rel dev from (13.22) +5.397e-03 +6.995e-03 +6.995e-03 +1.109e-02 | abs dev +2.69e-05 -1.04e-05 -8.33e-06 +3.33e-05
                          rho_i - g_i, (13.21) against (13.18), rel dev (common, g1 only, g2 only): part 1 +8.412e-03 +9.095e-03 +1.070e-02 | part 2 +1.572e-02 +8.917e-03 +1.302e-02 | symmetric difference in M_j against the resolvent 1.6e-08 | fibre |r|<=48 against 64 7.5e-13
   S2 s=0.5   tau/M=0.100,0.072 u=1.214 1-Gamma_i rel dev +1.655e-03 +2.243e-03 | T_11 +1.247511e-03 T_12 -3.729741e-04 T_21 -2.983792e-04 T_22 +7.527511e-04 | rel dev from (13.22) +1.364e-03 +1.752e-03 +1.752e-03 +2.766e-03 | abs dev +1.70e-06 -6.52e-07 -5.22e-07 +2.08e-06
                          rho_i - g_i, (13.21) against (13.18), rel dev (common, g1 only, g2 only): part 1 +2.112e-03 +2.278e-03 +2.666e-03 | part 2 +3.908e-03 +2.226e-03 +3.241e-03 | symmetric difference in M_j against the resolvent 5.1e-08 | fibre |r|<=48 against 64 6.0e-13
   S2 s=0.25  tau/M=0.050,0.036 u=1.214 1-Gamma_i rel dev +4.138e-04 +5.604e-04 | T_11 +3.115593e-04 T_12 -9.312121e-05 T_21 -7.449697e-05 T_22 +1.877983e-04 | rel dev from (13.22) +3.419e-04 +4.383e-04 +4.383e-04 +6.912e-04 | abs dev +1.06e-07 -4.08e-08 -3.26e-08 +1.30e-07
                          rho_i - g_i, (13.21) against (13.18), rel dev (common, g1 only, g2 only): part 1 +5.286e-04 +5.697e-04 +6.661e-04 | part 2 +9.758e-04 +5.564e-04 +8.094e-04 | symmetric difference in M_j against the resolvent 7.1e-08 | fibre |r|<=48 against 64 4.8e-12
   S3 s=1.0   tau/M=0.200,0.189 u=1.220 1-Gamma_i rel dev -4.071e-02 -3.950e-02 | T_11 +3.236098e-02 T_12 +1.643041e-03 T_21 +1.825601e-03 T_22 +2.861149e-02 | rel dev from (13.22) -6.955e-02 -2.696e-02 -2.696e-02 -6.659e-02 | abs dev -2.42e-03 -4.55e-05 -5.06e-05 -2.04e-03
                          rho_i - g_i, (13.21) against (13.18), rel dev (common, g1 only, g2 only): part 1 -5.273e-02 -5.473e-02 -1.147e-02 | part 2 -5.102e-02 -1.315e-02 -5.334e-02 | symmetric difference in M_j against the resolvent 2.0e-08 | fibre |r|<=48 against 64 1.1e-13
   S3 s=0.5   tau/M=0.100,0.094 u=1.220 1-Gamma_i rel dev -1.049e-02 -1.016e-02 | T_11 +8.536987e-03 T_12 +4.192139e-04 T_21 +4.657932e-04 T_22 +7.530158e-03 | rel dev from (13.22) -1.817e-02 -6.933e-03 -6.933e-03 -1.736e-02 | abs dev -1.58e-04 -2.93e-06 -3.25e-06 -1.33e-04
                          rho_i - g_i, (13.21) against (13.18), rel dev (common, g1 only, g2 only): part 1 -1.366e-02 -1.418e-02 -2.903e-03 | part 2 -1.320e-02 -3.339e-03 -1.380e-02 | symmetric difference in M_j against the resolvent 2.2e-08 | fibre |r|<=48 against 64 8.1e-13
   S3 s=0.25  tau/M=0.050,0.047 u=1.220 1-Gamma_i rel dev -2.643e-03 -2.560e-03 | T_11 +2.163755e-03 T_12 +1.053509e-04 T_21 +1.170566e-04 T_22 +1.907393e-03 | rel dev from (13.22) -4.594e-03 -1.746e-03 -1.746e-03 -4.387e-03 | abs dev -9.99e-06 -1.84e-07 -2.05e-07 -8.40e-06
                          rho_i - g_i, (13.21) against (13.18), rel dev (common, g1 only, g2 only): part 1 -3.447e-03 -3.579e-03 -7.286e-04 | part 2 -3.329e-03 -8.386e-04 -3.481e-03 | symmetric difference in M_j against the resolvent 4.2e-08 | fibre |r|<=48 against 64 4.3e-12
total run time 413.9 s

Interested in this research?

Join the readers' list and get an e-mail when a new stage or a correction is published. No password, and you can unsubscribe at any time.