From 69ddebe21d724921c1e09b703d10f29688358065 Mon Sep 17 00:00:00 2001 From: Anders Olsson Date: Thu, 27 Aug 2026 16:59:42 +0200 Subject: [PATCH] docs: state filtered accessor cost and evidence semantics precisely MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit filtered_learning_curve's signature mirrors learning_curve, which is cheap per key — so the mirroring trained callers to assume this one is too. It is a full forward pass per call, making the natural loop over competitors O(competitors * events). The doc now says so in complexity terms and points multi-key callers at the plural form. filtered_log_evidence claimed each event is scored "using only what was known before it". That is exact for a slice holding one event, but events sharing a timestamp inform each other through the within-slice sweep, so the honest claim is "before that time". The behaviour is deliberate and matches log_evidence's own convention; only the promise was too strong. This branch exists because a feature's documentation was quietly false. Shipping it with two more overstated doc comments would be a poor joke. Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_01T5SYDExxL4vZgvunrcNSMc --- src/history.rs | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/src/history.rs b/src/history.rs index 92e59e1..fec86aa 100644 --- a/src/history.rs +++ b/src/history.rs @@ -383,7 +383,9 @@ impl, O: Observer, K: Eq + Hash + Clone> History HashMap> { let mut data: HashMap> = HashMap::new(); @@ -401,9 +403,11 @@ impl, O: Observer, K: Eq + Hash + Clone> History(&self, key: &Q) -> Vec<(T, Gaussian)> where K: Borrow, @@ -484,10 +488,13 @@ impl, O: Observer, K: Eq + Hash + Clone> History