Module binary

Module binary 

Source
Expand description

§Binary Operations Kernels Module - High-Performance Element-wise Binary Operations

Comprehensive binary operation kernels providing element-wise operations between array pairs with null-aware semantics and SIMD acceleration. Critical foundation for analytical computing requiring efficient pairwise data transformations.

§Core Operations

  • Numeric comparisons: Greater than, less than, equal operations across all numeric types
  • String operations: String comparison with UTF-8 aware lexicographic ordering
  • Categorical operations: Dictionary-encoded string comparisons with optimised lookups
  • Set operations: Membership testing with efficient hash-based implementations
  • Range operations: Between operations for numeric and string data types
  • Logical combinations: AND, OR, XOR operations on boolean arrays with bitmask optimisation

§Architecture Overview

The module provides a unified interface for binary operations across heterogeneous data types:

  • Type-aware dispatch: Automatic selection of optimised kernels based on input types
  • Memory layout optimisation: Direct array-to-array operations minimising intermediate allocations
  • Null propagation: Proper handling of null values following Apache Arrow semantics
  • SIMD vectorisation: Hardware-accelerated operations on compatible data types

Constants§

W8
Auto-generated SIMD lane widths from build.rs SIMD lane count for 8-bit elements (u8, i8). Determined at build time based on target architecture capabilities, or overridden via SIMD_LANES_OVERRIDE.
W16
SIMD lane count for 16-bit elements (u16, i16). Determined at build time based on target architecture capabilities, or overridden via SIMD_LANES_OVERRIDE.
W32
SIMD lane count for 32-bit elements (u32, i32, f32). Determined at build time based on target architecture capabilities, or overridden via SIMD_LANES_OVERRIDE.
W64
SIMD lane count for 64-bit elements (u64, i64, f64). Determined at build time based on target architecture capabilities, or overridden via SIMD_LANES_OVERRIDE.

Functions§

apply_cmp
Applies comparison operations between numeric arrays with comprehensive operator support.
apply_cmp_bool
Boolean Bit packed
apply_cmp_dict
Applies comparison operations between corresponding categorical dictionary values.
apply_cmp_dict_str
Applies comparison operations between categorical dictionary values and string array elements.
apply_cmp_f
Applies comparison operations between floating-point arrays with IEEE 754 compliance.
apply_cmp_str
Applies comparison operations between corresponding string elements from string arrays.
apply_cmp_str_dict
Applies comparison operations between string array elements and categorical dictionary values.