From 36b069ef38a1033c466788827d488e5c004a06a1 Mon Sep 17 00:00:00 2001 From: "google-labs-jules[bot]" <161369871+google-labs-jules[bot]@users.noreply.github.com> Date: Mon, 15 Jun 2026 12:19:54 +0000 Subject: [PATCH] =?UTF-8?q?=E2=9A=A1=20Bolt:=20[performance=20improvement]?= =?UTF-8?q?=20Convert=20O(N=C2=B2)=20rank=20lookup=20to=20O(N)=20dictionar?= =?UTF-8?q?y=20in=20reranker?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit What: Replaced a generator comprehension used to look up element ranks during array extension with an explicitly pre-calculated hash map. Why: The nested generator lookup evaluated linearly within an outer loop, resulting in O(N²) complexity. The pre-calculated hash map provides O(1) constant-time access inside the same loop. Impact: Reduces the algorithmic time complexity of ranking evaluations from O(N²) down to O(N). Measurement: Confirmed by test executions within `tests/unit/providers/reranking/`. Co-authored-by: bashandbone <89049923+bashandbone@users.noreply.github.com> --- src/codeweaver/providers/reranking/providers/base.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/codeweaver/providers/reranking/providers/base.py b/src/codeweaver/providers/reranking/providers/base.py index 28e7a93b2..0e6a0ab92 100644 --- a/src/codeweaver/providers/reranking/providers/base.py +++ b/src/codeweaver/providers/reranking/providers/base.py @@ -91,10 +91,12 @@ def default_reranking_output_transformer( mapped_scores = sorted( ((i, score) for i, score in enumerate(results)), key=lambda x: x[1], reverse=True ) + # Pre-compute rank map to change O(n^2) nested lookup to O(n) hash map lookup + rank_map = {idx: j + 1 for j, (idx, _) in enumerate(mapped_scores)} processed_results.extend( RerankingResult( original_index=i, - batch_rank=next((j + 1 for j, (idx, _) in enumerate(mapped_scores) if idx == i), -1), + batch_rank=rank_map.get(i, -1), score=score, chunk=chunk, )