@@ -168,17 +168,17 @@ The benchmarking results reveal how different bitmap scanning implementations pe
168168
169169The optimized scalar implementation shows significant improvements over the generic scalar implementation due to:
170170
171- * ** Byte-level Skipping** : Avoiding processing empty bytes
172- * ** Reduced Function Calls** : Accessing bits directly rather than through function calls
173- * ** Better Cache Utilization** : More sequential memory access patterns
171+ * ** Byte-level Skipping** : avoiding processing empty bytes
172+ * ** Reduced Function Calls** : accessing bits directly rather than through function calls
173+ * ** Better Cache Utilization** : more sequential memory access patterns
174174
175175### Optimized scalar vs NEON
176176
177177The NEON implementation shows further improvements over the optimized scalar implementation for sparse bit vectors due to:
178178
179- * ** Chunk-level Skipping** : Quickly skipping 16 empty bytes at once
180- * ** Vectorized Comparison** : Checking multiple bytes in parallel
181- * ** Early Termination** : Quickly determining if a chunk contains any set bits
179+ * ** Chunk-level Skipping** : quickly skipping 16 empty bytes at once
180+ * ** Vectorized Comparison** : checking multiple bytes in parallel
181+ * ** Early Termination** : quickly determining if a chunk contains any set bits
182182
183183### NEON vs SVE
184184
@@ -198,13 +198,13 @@ The performance comparison between NEON and SVE depends on the bit density:
198198
199199The SVE implementation includes several key optimizations:
200200
201- * ** Efficient Non-Zero Byte Detection** : Using ` svcmpne_u8 ` to quickly identify non-zero bytes in the bitvector.
201+ * ** Efficient Non-Zero Byte Detection** : using ` svcmpne_u8 ` to quickly identify non-zero bytes in the bitvector.
202202
203- * ** Byte-Level Processing** : Using ` svpnext_b8 ` to efficiently find the next non-zero byte without processing zero bytes.
203+ * ** Byte-Level Processing** : using ` svpnext_b8 ` to efficiently find the next non-zero byte without processing zero bytes.
204204
205- * ** Value Extraction** : Using ` svlastb_u8 ` to extract both the index and value of non-zero bytes.
205+ * ** Value Extraction** : using ` svlastb_u8 ` to extract both the index and value of non-zero bytes.
206206
207- * ** Hybrid Vector-Scalar Approach** : Combining vector operations for finding non-zero bytes with scalar operations for processing individual bits.
207+ * ** Hybrid Vector-Scalar Approach** : combining vector operations for finding non-zero bytes with scalar operations for processing individual bits.
208208
209209* ** Prefetching** : Using ` __builtin_prefetch ` to reduce memory latency by prefetching the next chunk of data.
210210
0 commit comments