Verify the appendix bound against its stated constant
The check tested f(gamma) >= gamma/(gamma+1), but the manuscript claims f(gamma) >= c1*gamma/(gamma+1) with c1 >= 0.97. It now tests the stated constant and records the achieved one, 0.9711.
This commit is contained in:
@@ -28,8 +28,9 @@
|
|||||||
"max_abs_cos_diff": 4.440892098500626e-16
|
"max_abs_cos_diff": 4.440892098500626e-16
|
||||||
},
|
},
|
||||||
"appendix_f_bound": {
|
"appendix_f_bound": {
|
||||||
"holds_on_grid": false,
|
"claimed_c1": 0.97,
|
||||||
"worst_violation": 0.027053603772970947
|
"holds_on_grid": true,
|
||||||
|
"achieved_c1": 0.9710759305294567
|
||||||
},
|
},
|
||||||
"appendix_exp_ineq": {
|
"appendix_exp_ineq": {
|
||||||
"holds": true
|
"holds": true
|
||||||
|
|||||||
@@ -109,14 +109,15 @@ out["prop3_blind_eq_ofdma"] = {"max_abs_cos_diff": float(np.abs(cb - co).max())}
|
|||||||
# h ~ Rayleigh(1/sqrt2), sigma^2 = 1/gamma
|
# h ~ Rayleigh(1/sqrt2), sigma^2 = 1/gamma
|
||||||
gams = 10 ** (np.arange(-10, 21, 2) / 10)
|
gams = 10 ** (np.arange(-10, 21, 2) / 10)
|
||||||
h = rng.rayleigh(scale=np.sqrt(0.5), size=1_000_000)
|
h = rng.rayleigh(scale=np.sqrt(0.5), size=1_000_000)
|
||||||
ok, worst = True, 0.0
|
C1 = 0.97
|
||||||
|
ok, ratio = True, np.inf
|
||||||
for g in gams:
|
for g in gams:
|
||||||
f = float((h / np.sqrt(h ** 2 + 1 / g)).mean())
|
f = float((h / np.sqrt(h ** 2 + 1 / g)).mean())
|
||||||
bound = g / (g + 1)
|
ok &= f >= C1 * g / (g + 1)
|
||||||
ok &= f >= bound
|
ratio = min(ratio, f / (g / (g + 1)))
|
||||||
worst = max(worst, bound - f)
|
out["appendix_f_bound"] = {"claimed_c1": C1,
|
||||||
out["appendix_f_bound"] = {"holds_on_grid": bool(ok),
|
"holds_on_grid": bool(ok),
|
||||||
"worst_violation": worst}
|
"achieved_c1": float(ratio)}
|
||||||
|
|
||||||
# (6) beta*exp(x) >= beta*x => beta e^{eta' beta gamma} >= eta' beta^2 gamma
|
# (6) beta*exp(x) >= beta*x => beta e^{eta' beta gamma} >= eta' beta^2 gamma
|
||||||
xs = rng.uniform(0, 20, 10000)
|
xs = rng.uniform(0, 20, 10000)
|
||||||
@@ -129,5 +130,5 @@ out["concentration_residual"] = {"d64_residual": 1 / np.sqrt(64),
|
|||||||
"claimed_max": 0.13}
|
"claimed_max": 0.13}
|
||||||
|
|
||||||
print(json.dumps(out, indent=1))
|
print(json.dumps(out, indent=1))
|
||||||
with open("math_verify.json", "w") as f:
|
with open("data/math_verify.json", "w") as f:
|
||||||
json.dump(out, f, indent=1)
|
json.dump(out, f, indent=1)
|
||||||
|
|||||||
Reference in New Issue
Block a user