@@ -65,43 +65,46 @@ impl<A: ALPFloat> Kernel for UnpatchedALPKernel<A> {
6565 return Ok ( ( ) ) ;
6666 }
6767
68- let encoded = ctx. input ( self . encoded_vector_id ) ;
69- let encoded_vec = encoded. as_primitive ( ) . downcast :: < A :: ALPInt > ( ) ;
70- let encoded_buf = encoded_vec. elements ( ) . as_slice ( ) ;
68+ let encoded_vec = ctx. input ( self . encoded_vector_id ) ;
69+ let encoded = encoded_vec
70+ . as_primitive ( )
71+ . downcast :: < A :: ALPInt > ( )
72+ . elements ( )
73+ . as_slice ( ) ;
7174
72- let decoded = out. as_primitive_mut ( ) . downcast :: < A > ( ) ;
75+ let decoded_vec = out. as_primitive_mut ( ) . downcast :: < A > ( ) ;
7376
7477 // If our input is in-place, and we have only a few selected elements, then iterate only
7578 // the selected elements and write them to the output.
76- if encoded_buf . len ( ) == N && selection. true_count ( ) < ( N / 8 ) {
79+ if encoded . len ( ) == N && selection. true_count ( ) < ( N / 8 ) {
7780 // Reserve capacity for the true_count elements.
78- decoded. reserve ( selection. true_count ( ) . saturating_sub ( decoded. capacity ( ) ) ) ;
81+ decoded_vec. reserve (
82+ selection
83+ . true_count ( )
84+ . saturating_sub ( decoded_vec. capacity ( ) ) ,
85+ ) ;
7986
8087 // SAFETY: we set_len and append_validity ensuring elements len matches validity len.
81- unsafe { decoded . validity_mut ( ) } . append_n ( true , selection. true_count ( ) ) ;
82- unsafe { decoded . elements_mut ( ) . set_len ( selection. true_count ( ) ) } ;
88+ unsafe { decoded_vec . validity_mut ( ) } . append_n ( true , selection. true_count ( ) ) ;
89+ unsafe { decoded_vec . elements_mut ( ) . set_len ( selection. true_count ( ) ) } ;
8390
8491 // SAFETY: we reserved capacity above.
85- let elements = unsafe { decoded . elements_mut ( ) } ;
92+ let decoded = unsafe { decoded_vec . elements_mut ( ) } ;
8693
8794 let mut out_pos = 0 ;
8895 selection. iter_ones ( |idx| {
89- let encoded = unsafe { encoded_buf . get_unchecked ( idx) } ;
90- let decoded_value = A :: decode_single ( * encoded, self . exponents ) ;
91- unsafe { * elements . get_unchecked_mut ( out_pos) = decoded_value } ;
96+ let encoded = unsafe { encoded . get_unchecked ( idx) } ;
97+ let element = A :: decode_single ( * encoded, self . exponents ) ;
98+ unsafe { * decoded . get_unchecked_mut ( out_pos) = element } ;
9299 out_pos += 1 ;
93100 } ) ;
94101
95- debug_assert_eq ! ( decoded . validity( ) . len( ) , decoded . elements( ) . len( ) ) ;
102+ debug_assert_eq ! ( decoded_vec . validity( ) . len( ) , decoded_vec . elements( ) . len( ) ) ;
96103 return Ok ( ( ) ) ;
97104 }
98105
99106 // Otherwise, iterate the entire input.
100- decoded. extend (
101- encoded_buf
102- . iter ( )
103- . map ( |e| A :: decode_single ( * e, self . exponents ) ) ,
104- ) ;
107+ decoded_vec. extend ( encoded. iter ( ) . map ( |e| A :: decode_single ( * e, self . exponents ) ) ) ;
105108 Ok ( ( ) )
106109 }
107110}
0 commit comments