@@ -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
0 commit comments