Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
91 commits
Select commit Hold shift + click to select a range
50080ed
task #657: behavior-direction alignment predictor (cross-behavior lea…
superkaiba Jun 18, 2026
28f0513
task #657: single-pass multi-stat bootstrap + grouped-CV vectorizatio…
superkaiba Jun 18, 2026
6a4175f
task #657: ASCII docstring (ruff RUF002)
superkaiba Jun 18, 2026
d9ce0a9
task #657: B1 fix M-Stats1 reliability band rank-invariant no-op (rea…
superkaiba Jun 18, 2026
5a00743
task #657: B2 per-band CI/DeltaR2 H3 gate + N2 syc-i fail-loud + roun…
superkaiba Jun 18, 2026
f08e5a7
task #657: F1+F3 — stream per-behavior log to poller + ANTHROPIC key …
superkaiba Jun 18, 2026
6f4ad09
task #657: F2 — CPU-only smoke for the NEW --trait-name=refusal/marke…
superkaiba Jun 18, 2026
c5e912d
task #657: R1+R2+R3 — harden generate_artifacts against org-wide 429 …
superkaiba Jun 18, 2026
40cf842
task #657: v6 pivot — add behavior-appropriate direction extractor (r…
superkaiba Jun 18, 2026
820f24e
task #657: v6 — run-conditional primary H3 (M-Alts3) + §6.5 alignment…
superkaiba Jun 18, 2026
912cb40
task #657: v6 — dispatcher behavior-appropriate routing + extractor e…
superkaiba Jun 18, 2026
c2716a0
task #657: v6 — regression tests for M-Alts3 demotion + diff-mean ext…
superkaiba Jun 18, 2026
568270e
task #657: v6 — PEFT-wrapper decoder-layer resolver + ungated harmful…
superkaiba Jun 18, 2026
38d0a33
issue-657: sync workflow-surface specs from main (spec-freshness)
superkaiba Jun 18, 2026
c08be0b
task #657: v6 round-2 — B1 k2-fail-rhos-reported (skip leakage stats …
superkaiba Jun 18, 2026
769f2c2
task #657: v6 round-2 — B2 refusal-k2-not-heldout (carve disjoint tra…
superkaiba Jun 18, 2026
1539415
task #657: v6 round-2 — B3 reliability-band-labels-inverted (swap R_l…
superkaiba Jun 18, 2026
e4dcdad
task #657: v6 round-2 — B4 marker-fallback-hides-crashes (fail loud o…
superkaiba Jun 18, 2026
f5f3dee
task #657: v6 round-3 — B4 priority inversion (route on effect-file F…
superkaiba Jun 18, 2026
6a8431c
task #657: v6 — commit Phase 1 K2 verdict JSONs (close upload-verifie…
superkaiba Jun 18, 2026
a03779a
task #657: methodology doc — findings-blind extraction + bake-off ref…
superkaiba Jun 18, 2026
f6475ad
issue-657: sync workflow-surface specs from main (spec-freshness)
superkaiba Jun 19, 2026
73648b0
task #657: v6 round-2 — rescale K2 steering figure to 0-100 judge sca…
superkaiba Jun 19, 2026
f9262b7
task #641: epm:codex-task-spawned — Codex job_id=task-mqk98py5-zif1ov…
superkaiba Jun 19, 2026
4d61cd7
task #641: epm:clean-result-critique — Round 1 (identity-conflict-mor…
superkaiba Jun 19, 2026
a5f77a6
task #641: epm:codex-task-completed — Codex job_id=task-mqk98py5-zif1…
superkaiba Jun 19, 2026
f0842f1
task #641: epm:clean-result-critique-codex — <!-- epm:clean-result-cr…
superkaiba Jun 19, 2026
2cfef22
task #641: epm:progress — stage-dispatch stage=clean-result round=2 s…
superkaiba Jun 19, 2026
f875c00
task #657: epm:progress — [autonomous_session_watch:session-auto-resp…
superkaiba Jun 19, 2026
e6853ba
task #641: set-body
superkaiba Jun 19, 2026
7fc6a58
task #641: epm:interpretation — ---
superkaiba Jun 19, 2026
f9ad3c5
task #641: epm:codex-task-spawned — Codex job_id=task-mqka5gdt-jjwp7r…
superkaiba Jun 19, 2026
5f404f2
task #641: epm:clean-result-critique — Round 2 (identity-conflict-mor…
superkaiba Jun 19, 2026
5945b0e
task #657: epm:progress — [autonomous_session_watch:session-auto-resp…
superkaiba Jun 19, 2026
6cce327
task #641: epm:codex-task-completed — Codex job_id=task-mqka5gdt-jjwp…
superkaiba Jun 19, 2026
d085a95
task #641: epm:clean-result-critique-codex — <!-- epm:clean-result-cr…
superkaiba Jun 19, 2026
ab8879d
task #641: epm:progress — stage-dispatch stage=clean-result round=3 s…
superkaiba Jun 19, 2026
d4e3bea
task #657: epm:progress — stage-dispatch stage=free-analysis-followup…
superkaiba Jun 19, 2026
0c2c393
task #641: set-body
superkaiba Jun 19, 2026
f48c449
task #641: epm:interpretation — ---
superkaiba Jun 19, 2026
f7514ca
task #641: epm:codex-task-spawned — Codex job_id=task-mqkaood1-td1vm7…
superkaiba Jun 19, 2026
16b222f
task #641: epm:clean-result-critique — Round 3 (identity-conflict-mor…
superkaiba Jun 19, 2026
220e698
task #641: epm:codex-task-completed — Codex job_id=task-mqkaood1-td1v…
superkaiba Jun 19, 2026
70f840b
task #641: epm:clean-result-critique-codex — <!-- epm:clean-result-cr…
superkaiba Jun 19, 2026
16cf726
task #641: set-body
superkaiba Jun 19, 2026
38e4947
task #641: epm:methodology-doc-generated — doc_path=docs/methodology/…
superkaiba Jun 19, 2026
bbf241b
task #641: epm:review-reconcile — <!-- epm:review-reconcile v3 -->
superkaiba Jun 19, 2026
d9226cc
task #641: followups_running → awaiting_promotion
superkaiba Jun 19, 2026
514bbfb
task #641: epm:merge-failed — Step 10d auto-merge DEFERRED — branch `…
superkaiba Jun 19, 2026
9116e9a
task #641: epm:same-issue-followup-run — followup_label: identity-con…
superkaiba Jun 19, 2026
64c67f0
task #641: epm:step-completed — <!-- epm:step-completed v1 -->
superkaiba Jun 19, 2026
405a0b4
task #657: v6 round-3 — LOBO higher-N pooled secondary read (free-ana…
superkaiba Jun 19, 2026
8180252
task #657: epm:experiment-implementation — <!-- epm:experiment-implem…
superkaiba Jun 19, 2026
5132699
task #657: epm:progress — stage-dispatch stage=code-review round=1 su…
superkaiba Jun 19, 2026
bd61d17
task #657: epm:codex-task-spawned — Codex job_id=task-mqkbv9ak-58bqcz…
superkaiba Jun 19, 2026
636c470
task #657: epm:code-review — <!-- epm:code-review v1 -->
superkaiba Jun 19, 2026
de72dc6
task #657: epm:codex-task-completed — Codex job_id=task-mqkbv9ak-58bq…
superkaiba Jun 19, 2026
643576b
task #657: epm:code-review-codex — <!-- epm:code-review-codex v1 -->
superkaiba Jun 19, 2026
735065d
task #657: epm:progress — stage-dispatch stage=free-analysis-followup…
superkaiba Jun 19, 2026
d0dd085
task #657: set-body
superkaiba Jun 19, 2026
02e19b1
task #657: epm:free-analysis-followup-run — followup_ref="Pool behavi…
superkaiba Jun 19, 2026
16bbaa6
task #657: epm:progress — stage-dispatch stage=clean-result round=1 s…
superkaiba Jun 19, 2026
5d7e42d
task #657: epm:clean-result-critique — Round 1: FAIL — Check 21 (body…
superkaiba Jun 19, 2026
1a9eb4b
task #657: epm:codex-task-spawned — Codex job_id=task-mqkcx9d0-iv1i5l…
superkaiba Jun 19, 2026
175a284
task #657: epm:codex-task-completed — Codex job_id=task-mqkcx9d0-iv1i…
superkaiba Jun 19, 2026
8d7a0c4
task #657: epm:clean-result-critique-codex — <!-- epm:clean-result-cr…
superkaiba Jun 19, 2026
5a483da
task #657: epm:progress — stage-dispatch stage=clean-result round=2 s…
superkaiba Jun 19, 2026
361e4ee
task #657: set-body
superkaiba Jun 19, 2026
7908ac1
task #657: epm:progress — stage-dispatch stage=clean-result round=2 s…
superkaiba Jun 19, 2026
1e93e01
task #657: epm:clean-result-critique — Round 2: PASS — all 10 round-1…
superkaiba Jun 19, 2026
8f8ac50
task #657: epm:codex-task-spawned — Codex job_id=task-mqkdsu9e-i8ry86…
superkaiba Jun 19, 2026
dbd5c56
task #657: epm:codex-task-completed — Codex job_id=task-mqkdsu9e-i8ry…
superkaiba Jun 19, 2026
ec5efb8
task #657: epm:clean-result-critique-codex — <!-- epm:clean-result-cr…
superkaiba Jun 19, 2026
7ea7287
task #657: epm:review-reconcile — <!-- epm:review-reconcile v2 -->
superkaiba Jun 19, 2026
49a27dc
task #657: epm:progress — stage-dispatch stage=clean-result round=3 s…
superkaiba Jun 19, 2026
23eefc0
task #657: v6 round-3 — plain-English figure labels + 2 new figures (…
superkaiba Jun 19, 2026
c48f390
task #657: set-body
superkaiba Jun 19, 2026
32e432b
task #657: epm:progress — stage-dispatch stage=clean-result round=3 s…
superkaiba Jun 19, 2026
3cc246c
task #657: epm:clean-result-critique — Round 3: PASS — all four recon…
superkaiba Jun 19, 2026
7c5b9dc
task #657: epm:codex-task-spawned — Codex job_id=task-mqkevxuc-p9h4bw…
superkaiba Jun 19, 2026
70b9c89
task #657: epm:codex-task-completed — Codex job_id=task-mqkevxuc-p9h4…
superkaiba Jun 19, 2026
ad6c301
task #657: epm:clean-result-critique-codex — <!-- epm:clean-result-cr…
superkaiba Jun 19, 2026
92d2384
task #657: epm:review-reconcile — <!-- epm:review-reconcile v3 -->
superkaiba Jun 19, 2026
f2dbb70
task #657: set-body
superkaiba Jun 19, 2026
81b5132
task #657: epm:progress — Round-3 orchestrator inline-patch (per reco…
superkaiba Jun 19, 2026
6e923ab
task #657: set-body
superkaiba Jun 19, 2026
66372ec
task #657: epm:methodology-doc-generated — doc_path=docs/methodology/…
superkaiba Jun 19, 2026
0a376ff
task #657: interpreting → reviewing
superkaiba Jun 19, 2026
6f60187
task #657: reviewing → awaiting_promotion
superkaiba Jun 19, 2026
a9032fb
task #657: epm:status-changed — reviewing -> awaiting_promotion (no f…
superkaiba Jun 19, 2026
5ae108b
merge main into issue-657: resolve figure add/add conflicts by keepin…
superkaiba Jun 19, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
211 changes: 211 additions & 0 deletions docs/methodology/issue_657.md

Large diffs are not rendered by default.

93 changes: 93 additions & 0 deletions eval_results/issue_657/lobo_pooled.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
{
"experiment": "issue657_lobo_pooled",
"read": "leave-one-behavior-out (LOBO) higher-N predictor-skill pooled secondary read",
"registered_in_plan": "\u00a7324 / \u00a76.5 / \u00a7365 / \u00a7389 (higher-N secondary read)",
"lobo": {
"in_scope": true,
"behaviors": [
"em",
"refusal",
"sycophancy"
],
"n_pooled_cells": 399,
"n_groups": 69,
"per_behavior_n": {
"em": 133,
"refusal": 133,
"sycophancy": 133
},
"pooling": "predictor-skill (within-behavior source-FE + percentile-rank)",
"resampling_unit": "(behavior, bystander) group",
"bootstrap_b": 10000,
"bootstrap_seed": 657,
"grouped_cv": {
"held_out_spearman": {
"point": 0.020187893947570094,
"ci_lo": -0.10646684712377563,
"ci_hi": 0.13377646078778863,
"n_valid": 10000,
"n_bystanders": 69
},
"delta_r2_align_beyond_prior": {
"point": 0.001819847838020694,
"ci_lo": -0.017169622318820955,
"ci_hi": 0.025398981350982137,
"n_valid": 10000,
"n_bystanders": 69
},
"doubly_partialled_rho": {
"point": 0.0882006998515973,
"ci_lo": -0.016527568512014097,
"ci_hi": 0.1711785327676149,
"n_valid": 10000,
"n_bystanders": 69
}
},
"strict_lobo": {
"held_out_spearman": 0.1161574608939571,
"delta_r2_align_beyond_prior": 0.016958062844530497,
"n_behaviors": 3
},
"h3_verdict": {
"verdict": "TIGHTER-INDETERMINATE",
"detail": "pooled \u0394R\u00b2 CI straddles 0 (does not clear from either side)"
}
},
"input_provenance": {
"em": {
"in_scope": true,
"n_joined_cells": 133,
"n_resolvable_bystanders": 23,
"source_path": "eval_results/issue_657/per_behavior/em.json",
"included": true
},
"marker": {
"in_scope": false,
"n_joined_cells": 48,
"n_resolvable_bystanders": 3,
"source_path": "eval_results/issue_657/per_behavior/marker.json",
"included": false
},
"refusal": {
"in_scope": true,
"n_joined_cells": 133,
"n_resolvable_bystanders": 23,
"source_path": "eval_results/issue_657/per_behavior/refusal.json",
"included": true
},
"sycophancy": {
"in_scope": true,
"n_joined_cells": 133,
"n_resolvable_bystanders": 23,
"source_path": "eval_results/issue_657/per_behavior/sycophancy.json",
"included": true
}
},
"reproducibility": {
"git_commit": "73648b00b0bcec3428b0a1a05f65bfbd181872a3",
"generated_utc": "2026-06-19T02:38:27.728495+00:00",
"bootstrap_b": 10000,
"bootstrap_seed": 657,
"python": "3.11.15"
}
}
4 changes: 2 additions & 2 deletions figures/issue_657/fig_h1_base_rate.meta.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"commit": "a03779a3f4",
"created": "2026-06-18T23:57:27Z",
"commit": "405a0b483f",
"created": "2026-06-19T03:58:17Z",
"figsize": [
6.5,
3.8
Expand Down
Binary file modified figures/issue_657/fig_h1_base_rate.pdf
Binary file not shown.
Binary file modified figures/issue_657/fig_h1_base_rate.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 2 additions & 2 deletions figures/issue_657/fig_h3_forest.meta.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"commit": "a03779a3f4",
"created": "2026-06-18T23:57:28Z",
"commit": "405a0b483f",
"created": "2026-06-19T03:58:18Z",
"figsize": [
6.8,
3.8
Expand Down
Binary file modified figures/issue_657/fig_h3_forest.pdf
Binary file not shown.
Binary file modified figures/issue_657/fig_h3_forest.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
8 changes: 4 additions & 4 deletions figures/issue_657/fig_k2_steering.meta.json
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
{
"commit": "a03779a3f4",
"created": "2026-06-18T23:57:26Z",
"commit": "405a0b483f",
"created": "2026-06-19T03:58:16Z",
"figsize": [
6.5,
3.6
6.6,
3.8
]
}
Binary file modified figures/issue_657/fig_k2_steering.pdf
Binary file not shown.
Binary file modified figures/issue_657/fig_k2_steering.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
8 changes: 8 additions & 0 deletions figures/issue_657/fig_layer_sweep.meta.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"commit": "405a0b483f",
"created": "2026-06-19T03:58:21Z",
"figsize": [
6.5,
3.8
]
}
Binary file added figures/issue_657/fig_layer_sweep.pdf
Binary file not shown.
Binary file added figures/issue_657/fig_layer_sweep.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
8 changes: 8 additions & 0 deletions figures/issue_657/fig_lobo_pooled.meta.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"commit": "405a0b483f",
"created": "2026-06-19T03:58:22Z",
"figsize": [
6.6,
3.8
]
}
Binary file added figures/issue_657/fig_lobo_pooled.pdf
Binary file not shown.
Binary file added figures/issue_657/fig_lobo_pooled.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 2 additions & 2 deletions figures/issue_657/fig_reliability_band.meta.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"commit": "a03779a3f4",
"created": "2026-06-18T23:57:29Z",
"commit": "405a0b483f",
"created": "2026-06-19T03:58:20Z",
"figsize": [
6.5,
3.8
Expand Down
Binary file modified figures/issue_657/fig_reliability_band.pdf
Binary file not shown.
Binary file modified figures/issue_657/fig_reliability_band.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
107 changes: 92 additions & 15 deletions scripts/issue623_extract_sycophancy_vector.py
Original file line number Diff line number Diff line change
Expand Up @@ -170,25 +170,65 @@ def _strip_json_fence(text: str) -> str:
def generate_artifacts(
generator_model: str,
n_questions: int,
trait_name: str = SYCOPHANCY_TRAIT_NAME,
trait_description: str = SYCOPHANCY_TRAIT_DESCRIPTION,
) -> dict:
"""Call the Claude generator to produce 5 pos/neg pairs + N questions + eval prompt.

Mirrors the paper's single-prompt generation. ``n_questions`` lets the smoke
request a tiny set; the production default is 40 (split 20 extraction/20 eval).

``trait_name`` / ``trait_description`` default to the #623 sycophancy constants
(verbatim #623 behavior when omitted); #657 overrides them via CLI to extract
refusal / marker / EM directions with the SAME paper recipe.
"""
import time

import anthropic

client = anthropic.Anthropic()
# R1: raise the SDK retry budget so the built-in exponential backoff rides
# through a transient org-wide 429 burst (the launch-attempt-2 crash class:
# the default max_retries=2 exhausted on a 1M-output-tokens/min cap burst).
# timeout=600s gives each individual request room.
client = anthropic.Anthropic(max_retries=10, timeout=600.0)
prompt = _ARTIFACT_GEN_PROMPT.format(
trait=SYCOPHANCY_TRAIT_NAME,
trait_description=SYCOPHANCY_TRAIT_DESCRIPTION,
)
resp = client.messages.create(
model=generator_model,
max_tokens=8192,
temperature=1.0,
messages=[{"role": "user", "content": prompt}],
trait=trait_name,
trait_description=trait_description,
)
# R3: belt-and-suspenders outer retry with MINUTE-scale sleeps for a
# sustained 429 burst wider than the SDK's ~10s-capped backoff window. The
# SDK (R1) handles the common short bursts; this catches the rare 60s+ wall.
last_err: anthropic.RateLimitError | None = None
resp = None
for attempt in range(3):
try:
resp = client.messages.create(
model=generator_model,
# R2: 4096 is ample for the artifact response (5 instruction
# pairs + N questions + eval prompt run ~2000-3000 tokens) while
# halving the per-call OUTPUT-TOKEN allocation against the
# org-wide 1M/min cap, so each request is likelier to fit the
# remaining per-minute budget.
max_tokens=4096,
temperature=1.0,
messages=[{"role": "user", "content": prompt}],
)
break
except anthropic.RateLimitError as e:
last_err = e
wait = 60 * (attempt + 1) # 60s, 120s, 180s
print(
f"[generate_artifacts] 429 rate-limit on attempt {attempt + 1}/3; "
f"sleeping {wait}s before retry ...",
flush=True,
)
time.sleep(wait)
if resp is None:
raise (
last_err
if last_err is not None
else RuntimeError("generate_artifacts: messages.create produced no response")
)
raw = resp.content[0].text if resp.content else ""
data = json.loads(_strip_json_fence(raw))

Expand Down Expand Up @@ -668,6 +708,24 @@ def main() -> None:
)
parser.add_argument("--model", default=BASE_MODEL)
parser.add_argument("--gpu-id", type=int, default=0)
parser.add_argument(
"--trait-name",
default=SYCOPHANCY_TRAIT_NAME,
help=(
"Trait name fed to the paper artifact-generation recipe (default: "
"sycophancy, reproducing #623 verbatim). #657 overrides with "
"refusal / marker / em to extract those behavior directions."
),
)
parser.add_argument(
"--trait-description",
default=SYCOPHANCY_TRAIT_DESCRIPTION,
help=(
"Verbatim trait description fed to the artifact generator (default: "
"the #623 sycophancy description). Required override when --trait-name "
"is not sycophancy."
),
)
parser.add_argument("--layers", type=int, nargs="+", default=list(DEFAULT_LAYERS))
parser.add_argument(
"--n-questions",
Expand Down Expand Up @@ -706,6 +764,19 @@ def main() -> None:

load_dotenv()

# Guard against an override that names a non-default trait but leaves the
# default sycophancy description in place (a silent recipe mismatch — the
# generated artifacts would describe sycophancy under a refusal label).
if args.trait_name != SYCOPHANCY_TRAIT_NAME and (
args.trait_description == SYCOPHANCY_TRAIT_DESCRIPTION
):
raise ValueError(
f"--trait-name={args.trait_name!r} requires a matching "
f"--trait-description (the default sycophancy description is still "
f"in place — that would generate sycophancy artifacts under a "
f"{args.trait_name!r} label)."
)

out_dir = (
PROJECT_ROOT / args.output_dir
if not Path(args.output_dir).is_absolute()
Expand All @@ -720,7 +791,12 @@ def main() -> None:
artifacts = json.loads(artifacts_path.read_text())
print(f"[phase=sycophancy_trait] loaded cached artifacts from {artifacts_path}", flush=True)
else:
artifacts = generate_artifacts(args.generator_model, args.n_questions)
artifacts = generate_artifacts(
args.generator_model,
args.n_questions,
trait_name=args.trait_name,
trait_description=args.trait_description,
)
artifacts_path.write_text(json.dumps(artifacts, indent=2))
print(f"[phase=sycophancy_trait] generated artifacts -> {artifacts_path}", flush=True)

Expand Down Expand Up @@ -805,7 +881,8 @@ def main() -> None:
json.dumps(
{
"model": args.model,
"trait": SYCOPHANCY_TRAIT_NAME,
"trait": args.trait_name,
"trait_description": args.trait_description,
"layers": layers,
"n_instruction_pairs": len(instructions),
"n_extraction_questions": len(extraction_questions),
Expand Down Expand Up @@ -894,11 +971,11 @@ def main() -> None:
flush=True,
)
if not probe["k2_pass"]:
# K2 HALT — the vector does not causally increase sycophancy at any layer.
# K2 HALT — the vector does not causally increase the trait at any layer.
raise SystemExit(
"K2 HALT: sycophancy vector produced NO positive steering effect at any layer; "
"the trait vector is not measuring sycophancy. Diagnose extraction "
"(trait-description / judge-threshold) before reading rho."
f"K2 HALT: {args.trait_name} vector produced NO positive steering effect at "
f"any layer; the trait vector is not measuring {args.trait_name}. Diagnose "
"extraction (trait-description / judge-threshold) before reading rho."
)


Expand Down
Loading