vortex_fastlanes/bitpacking/compute/
between.rs1use vortex_array::Array;
5use vortex_array::ArrayRef;
6use vortex_array::IntoArray;
7use vortex_array::compute::BetweenKernel;
8use vortex_array::compute::BetweenKernelAdapter;
9use vortex_array::compute::BetweenOptions;
10use vortex_array::compute::between;
11use vortex_array::register_kernel;
12use vortex_error::VortexResult;
13
14use crate::BitPackedArray;
15use crate::BitPackedVTable;
16
17impl BetweenKernel for BitPackedVTable {
18 fn between(
19 &self,
20 array: &BitPackedArray,
21 lower: &dyn Array,
22 upper: &dyn Array,
23 options: &BetweenOptions,
24 ) -> VortexResult<Option<ArrayRef>> {
25 if !lower.is_constant() || !upper.is_constant() {
26 return Ok(None);
27 };
28
29 between(
30 &array.clone().to_canonical().into_array(),
31 lower,
32 upper,
33 options,
34 )
35 .map(Some)
36 }
37}
38
39register_kernel!(BetweenKernelAdapter(BitPackedVTable).lift());