summaryrefslogtreecommitdiff
path: root/experiments
diff options
context:
space:
mode:
Diffstat (limited to 'experiments')
-rw-r--r--experiments/coupled_ladder_scaling.py22
1 files changed, 18 insertions, 4 deletions
diff --git a/experiments/coupled_ladder_scaling.py b/experiments/coupled_ladder_scaling.py
index bb6f090..680b855 100644
--- a/experiments/coupled_ladder_scaling.py
+++ b/experiments/coupled_ladder_scaling.py
@@ -267,6 +267,11 @@ def parse_args() -> argparse.Namespace:
parser.add_argument("--calibration-observations", type=int, default=16)
parser.add_argument(
"--overclamp-time-seconds-per-v", type=float, default=0.0025)
+ parser.add_argument(
+ "--overclamp-times",
+ default=None,
+ help="optional side:time mapping that overrides the scalar value",
+ )
parser.add_argument("--gain-standard-deviation", type=float, default=0.01)
parser.add_argument(
"--twin-mismatch-standard-deviation-v", type=float, default=0.001)
@@ -288,6 +293,17 @@ def main() -> None:
if missing_times:
raise ValueError(
f"learning times are missing sizes {sorted(missing_times)}")
+ if args.overclamp_times is None:
+ overclamp_times = {
+ side: args.overclamp_time_seconds_per_v for side in sizes
+ }
+ else:
+ overclamp_times = parse_mapping(args.overclamp_times, float)
+ missing_overclamp_times = set(sizes) - set(overclamp_times)
+ if missing_overclamp_times:
+ raise ValueError(
+ "overclamp times are missing sizes "
+ f"{sorted(missing_overclamp_times)}")
methods = tuple(args.methods.split(","))
unknown_methods = set(methods) - set(METHODS)
if unknown_methods:
@@ -305,8 +321,7 @@ def main() -> None:
"record_every": args.record_every,
"learning_time_seconds": learning_times[side],
"calibration_observations": args.calibration_observations,
- "overclamp_time_seconds_per_v": (
- args.overclamp_time_seconds_per_v),
+ "overclamp_time_seconds_per_v": overclamp_times[side],
"gain_standard_deviation": args.gain_standard_deviation,
"twin_mismatch_standard_deviation_v": (
args.twin_mismatch_standard_deviation_v),
@@ -348,8 +363,7 @@ def main() -> None:
"record_every": args.record_every,
"learning_time_seconds_by_side": learning_times,
"calibration_observations": args.calibration_observations,
- "overclamp_time_seconds_per_v": (
- args.overclamp_time_seconds_per_v),
+ "overclamp_time_seconds_per_v_by_side": overclamp_times,
"component_imperfection": {
"gain_standard_deviation": args.gain_standard_deviation,
"twin_mismatch_standard_deviation_v": (