@@ -487,11 +487,6 @@ pub fn first_true_2d<'py>(
487
487
axis : isize ,
488
488
) -> PyResult < Bound < ' py , PyArray1 < isize > > > {
489
489
490
- // let prepped = prepare_array_for_axis(py, array, axis)?;
491
- // let view = unsafe { prepped.as_array() };
492
- // // NOTE: these are rows in the view, not always the same as rows
493
- // let rows = view.nrows();
494
-
495
490
let prepared = prepare_array_for_axis ( py, array, axis) ?;
496
491
let data = prepared. data ;
497
492
let rows = prepared. nrows ;
@@ -502,18 +497,10 @@ pub fn first_true_2d<'py>(
502
497
py. allow_threads ( || {
503
498
const LANES : usize = 32 ;
504
499
let ones = u8x32:: splat ( 1 ) ;
505
-
506
500
let base_ptr = data. as_ptr ( ) ;
507
501
508
502
for row in 0 ..rows {
509
-
510
503
let ptr = unsafe { base_ptr. add ( row * row_len) } ;
511
-
512
- // let mut found = -1;
513
- // let row_slice = &view.row(row);
514
- // let ptr = row_slice.as_ptr() as *const u8;
515
- // let len = row_slice.len();
516
-
517
504
if forward {
518
505
// Forward search
519
506
let mut i = 0 ;
@@ -528,7 +515,6 @@ pub fn first_true_2d<'py>(
528
515
}
529
516
while i < row_len {
530
517
if * ptr. add ( i) != 0 {
531
- // found = i as isize;
532
518
result[ row] = i as isize ;
533
519
break ;
534
520
}
@@ -542,13 +528,13 @@ pub fn first_true_2d<'py>(
542
528
// Process LANES bytes at a time with SIMD (backwards)
543
529
while i >= LANES {
544
530
i -= LANES ;
531
+
545
532
let chunk = & * ( ptr. add ( i) as * const [ u8 ; LANES ] ) ;
546
533
let vec = u8x32:: from ( * chunk) ;
547
534
if vec. cmp_eq ( ones) . any ( ) {
548
535
// Found a true in this chunk, search backwards within it
549
536
for j in ( i..i + LANES ) . rev ( ) {
550
537
if * ptr. add ( j) != 0 {
551
- // found = j as isize;
552
538
result[ row] = j as isize ;
553
539
break ;
554
540
}
@@ -560,7 +546,6 @@ pub fn first_true_2d<'py>(
560
546
if i > 0 && i < LANES {
561
547
for j in ( 0 ..i) . rev ( ) {
562
548
if * ptr. add ( j) != 0 {
563
- // found = j as isize;
564
549
result[ row] = j as isize ;
565
550
break ;
566
551
}
@@ -570,7 +555,6 @@ pub fn first_true_2d<'py>(
570
555
}
571
556
}
572
557
} ) ;
573
-
574
558
Ok ( PyArray1 :: from_vec ( py, result) . to_owned ( ) )
575
559
}
576
560
0 commit comments