Skip to content

Commit e6bf7db

Browse files
committed
fix(clippy): pay down bgz17 violations (manual, loop-index batch)
- clam_bridge.rs: 4 needless_range_loop → iter/iter_mut().enumerate() (seed distance sum, radius/pole finding, side partitioning) - router.rs: identical if blocks → consolidated with || - palette_matrix.rs: needless_range_loop → iter().enumerate() - palette_csr.rs: needless_range_loop → slice iterator - simd.rs: too_many_arguments → #[allow(clippy::too_many_arguments)] - similarity.rs: 2 needless_range_loop → iter_mut().enumerate() Remaining 7 errors are in container.rs and rabitq_compat.rs (already handled in prior commit scope, DO NOT TOUCH). https://claude.ai/code/session_01SbYsmmbPf9YQuYbHZN52Zh
1 parent c15db70 commit e6bf7db

6 files changed

Lines changed: 19 additions & 21 deletions

File tree

crates/bgz17/src/clam_bridge.rs

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -309,9 +309,9 @@ impl Bgz17ClamTree {
309309
for s in 0..num_seeds {
310310
let si = working[s];
311311
let mut sum = 0u64;
312-
for t in 0..num_seeds {
312+
for (t, &wt) in working.iter().enumerate().take(num_seeds) {
313313
if s != t {
314-
sum += metric.distance(si, working[t]);
314+
sum += metric.distance(si, wt);
315315
}
316316
}
317317
if sum < best_sum {
@@ -331,8 +331,8 @@ impl Bgz17ClamTree {
331331
let mut left_pole_dist = 0u64;
332332

333333
let mut distances: Vec<u64> = Vec::with_capacity(n);
334-
for i in 0..n {
335-
let d = metric.distance(center_idx, working[i]);
334+
for (i, &wi) in working.iter().enumerate() {
335+
let d = metric.distance(center_idx, wi);
336336
distances.push(d);
337337
if d > radius { radius = d; }
338338
if d > left_pole_dist {
@@ -351,8 +351,8 @@ impl Bgz17ClamTree {
351351
let left_pole_idx = working[left_pole_local];
352352
let mut right_pole_local = 0;
353353
let mut right_pole_dist = 0u64;
354-
for i in 0..n {
355-
let d = metric.distance(left_pole_idx, working[i]);
354+
for (i, &wi) in working.iter().enumerate() {
355+
let d = metric.distance(left_pole_idx, wi);
356356
if d > right_pole_dist {
357357
right_pole_dist = d;
358358
right_pole_local = i;
@@ -362,9 +362,9 @@ impl Bgz17ClamTree {
362362

363363
// Partition into L and R
364364
let mut side: Vec<bool> = Vec::with_capacity(n);
365-
for i in 0..n {
366-
let dl = metric.distance(left_pole_idx, working[i]);
367-
let dr = metric.distance(right_pole_idx, working[i]);
365+
for &wi in working.iter() {
366+
let dl = metric.distance(left_pole_idx, wi);
367+
let dr = metric.distance(right_pole_idx, wi);
368368
side.push(dl <= dr);
369369
}
370370

crates/bgz17/src/palette_csr.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -257,8 +257,7 @@ impl PaletteCsr {
257257
/// Returns (verb, target) pairs, stopping at first zero edge.
258258
fn extract_inline_edges(container: &[u64; CONTAINER_WORDS]) -> Vec<(u8, u8)> {
259259
let mut edges = Vec::new();
260-
for w in W_INLINE_EDGES_START..=W_INLINE_EDGES_END {
261-
let word = container[w];
260+
for &word in &container[W_INLINE_EDGES_START..=W_INLINE_EDGES_END] {
262261
if word == 0 { break; }
263262
for shift in (0..64).step_by(16) {
264263
let verb = ((word >> shift) & 0xFF) as u8;

crates/bgz17/src/palette_matrix.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -148,10 +148,10 @@ impl PaletteMatrix {
148148
}
149149

150150
// Emit row entries
151-
for j in 0..ncols {
152-
if let Some((pe, _)) = best[j] {
151+
for (j, best_j) in best.iter().enumerate().take(ncols) {
152+
if let Some((pe, _)) = best_j {
153153
col_idx.push(j);
154-
vals.push(pe);
154+
vals.push(*pe);
155155
}
156156
}
157157
row_ptr.push(col_idx.len());

crates/bgz17/src/router.rs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -137,9 +137,7 @@ impl FallbackSignals {
137137

138138
/// Determine minimum precision needed based on signals.
139139
pub fn minimum_precision(&self) -> crate::Precision {
140-
if self.max_anomaly_score > 0.75 {
141-
crate::Precision::Base
142-
} else if self.palette_collision_rate > 0.10 {
140+
if self.max_anomaly_score > 0.75 || self.palette_collision_rate > 0.10 {
143141
crate::Precision::Base
144142
} else {
145143
crate::Precision::Palette

crates/bgz17/src/simd.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,7 @@ unsafe fn avx2_batch(dm_data: &[u16], k: usize, query: u8, candidates: &[u8], ou
142142
///
143143
/// For each candidate i:
144144
/// out[i] = dm_s[q_s][c_s[i]] + dm_p[q_p][c_p[i]] + dm_o[q_o][c_o[i]]
145+
#[allow(clippy::too_many_arguments)]
145146
pub fn batch_spo_distance(
146147
dm: &SpoDistanceMatrices,
147148
query_s: u8,

crates/bgz17/src/similarity.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,10 @@ impl SimilarityTable {
2626
let mut table = [0.0f32; 256];
2727
let sigma_f = (sigma.max(1)) as f32;
2828
let mu_f = mu as f32;
29-
for i in 0..256 {
29+
for (i, entry) in table.iter_mut().enumerate() {
3030
let distance = (i as u32 * bucket_width) + bucket_width / 2;
3131
let z = (mu_f - distance as f32) / sigma_f;
32-
table[i] = 1.0 / (1.0 + (-z).exp());
32+
*entry = 1.0 / (1.0 + (-z).exp());
3333
}
3434
Self { table, bucket_width, max_distance }
3535
}
@@ -50,12 +50,12 @@ impl SimilarityTable {
5050
let bucket_width = (max_distance / 256).max(1);
5151
let mut table = [0.0f32; 256];
5252

53-
for i in 0..256 {
53+
for (i, entry) in table.iter_mut().enumerate() {
5454
let bucket_center = (i as u32 * bucket_width) + bucket_width / 2;
5555
// CDF: fraction of samples <= bucket_center
5656
let count = samples.partition_point(|&s| s <= bucket_center);
5757
let cdf = count as f32 / n as f32;
58-
table[i] = 1.0 - cdf; // similarity = 1 - CDF
58+
*entry = 1.0 - cdf; // similarity = 1 - CDF
5959
}
6060

6161
Self { table, bucket_width, max_distance }

0 commit comments

Comments
 (0)