## ----setup, include=FALSE-----------------------------------------------------
knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>"
)

## ----linking-fixed-defaults, echo=FALSE---------------------------------------
link_defaults <- pairwiseLLM:::.adaptive_controller_defaults(300L)
link_defaults$run_mode <- "link_multi_spoke"
link_defaults <- pairwiseLLM:::.adaptive_controller_resolve_scaled_linking_defaults(
  controller = link_defaults,
  cfg_names = character(),
  set_ids = c(rep(1L, 100L), rep(2L, 100L), rep(3L, 100L))
)

fixed_default_names <- c(
  "link_estimation_mode", "judge_param_mode",
  "link_identified_reliability_min", "link_stop_reliability_min",
  "link_rank_corr_min", "stability_window_refits",
  "stability_passes_required", "min_refits_in_phase_b",
  "probe_brier_max", "probe_pred_rmse_max", "theta_global_rmse_max",
  "max_pairs_after_stop"
)
fixed_defaults <- data.frame(
  contract_or_control = fixed_default_names,
  default = vapply(
    link_defaults[fixed_default_names],
    function(x) paste(x, collapse = ", "),
    character(1L)
  ),
  row.names = NULL
)
knitr::kable(fixed_defaults)

## ----linking-scaled-defaults, echo=FALSE--------------------------------------
scaled_default_names <- c(
  "probe_pairs_per_refit_per_spoke", "probe_panel_edges",
  "probe_edges_min_for_stop"
)
scaled_defaults <- data.frame(
  resolved_control = scaled_default_names,
  value_for_100_item_max_spoke = vapply(
    link_defaults[scaled_default_names],
    as.integer,
    integer(1L)
  ),
  rule = c(
    "max(4, ceiling(0.0035 * maximum spoke size))",
    "max(160, ceiling(0.12 * maximum spoke size))",
    "max(120, ceiling(0.106 * maximum spoke size))"
  ),
  row.names = NULL
)
knitr::kable(scaled_defaults)

