From 8e7336b74a86f7af404f154416ed764f777dbb9c Mon Sep 17 00:00:00 2001 From: YurenHao0426 Date: Sat, 29 Aug 2026 19:19:11 -0500 Subject: figure: promote confirmed nonlinear hardware results --- experiments/plot_physical_hardware_evidence.py | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) (limited to 'experiments/plot_physical_hardware_evidence.py') diff --git a/experiments/plot_physical_hardware_evidence.py b/experiments/plot_physical_hardware_evidence.py index 6a38b60..2f57096 100644 --- a/experiments/plot_physical_hardware_evidence.py +++ b/experiments/plot_physical_hardware_evidence.py @@ -17,6 +17,7 @@ METHODS = ( ("clean", "Clean", "#222222"), ("raw", "Raw", "#D55E00"), ("constant", "Static\ncalibration", "#777777"), + ("overclamp_clean", "Clean\noverclamp", "#444444"), ("overclamp", "Overclamp", "#E69F00"), ("sdil", "SDIL", "#0072B2"), ("overclamp_sdil", "Overclamp\n+ SDIL", "#56B4E9"), @@ -39,7 +40,7 @@ def parse_args() -> argparse.Namespace: "--physical", type=Path, default=Path( - "results/physical_bias/p5_full_grid_bias_crossover.json"), + "results/physical_bias/p11_nonlinear_hardware_confirmation.json"), ) parser.add_argument( "--sampler", @@ -57,18 +58,19 @@ def parse_args() -> argparse.Namespace: "--output-analysis", type=Path, default=Path( - "results/physical_bias/p10_hardware_evidence_analysis.json"), + "results/physical_bias/p12_hardware_evidence_analysis.json"), ) parser.add_argument( "--output-csv", type=Path, default=Path( - "results/physical_bias/p10_hardware_evidence_source.csv"), + "results/physical_bias/p12_hardware_evidence_source.csv"), ) parser.add_argument( "--output-figure", type=Path, - default=Path("results/figs/figure_physical_hardware_evidence"), + default=Path( + "results/figs/figure_physical_hardware_evidence_confirmation"), ) parser.add_argument("--bootstrap-replicates", type=int, default=20000) parser.add_argument("--bootstrap-seed", type=int, default=20260829) @@ -180,8 +182,18 @@ def build_analysis( return { "analysis": "physical_clln_hardware_evidence_figure", "confirmatory": False, + "source_status": { + "nonlinear_method_comparison_confirmatory": bool( + physical["confirmatory"]), + "sampler_robustness_sweep_confirmatory": bool( + sampler["confirmatory"]), + "spice_primitive_publication_evidence": bool( + spice["publication_evidence"]), + }, "bootstrap": { - "unit": "task; four device draws averaged within task", + "unit": "task", + "nonlinear_confirmation_device_draws_per_task": 3, + "sampler_sweep_device_draws_per_task": 4, "task_clusters": 40, "replicates": replicates, "seed": seed, @@ -378,7 +390,7 @@ def plot(path: Path, analysis: dict) -> None: figure.text( 0.995, 0.005, - "40 tasks × 4 device draws; error bars are task-bootstrap 95% intervals", + "40 tasks; (a) 3 new device draws, (b–c) 4 development draws; task-bootstrap 95% intervals", ha="right", va="bottom", fontsize=7, -- cgit v1.2.3