[ 
https://issues.apache.org/jira/browse/ARROW-15223?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17471879#comment-17471879
 ] 

Eduardo Ponce commented on ARROW-15223:
---------------------------------------

[~jorisvandenbossche] There are differences when comparing the approach for the 
logical compare functions:
* The binary and ternary logical comparisons are functionally different. In 
binary comparisons, the complement operation can be performed by 
exchanging/flipping the operands. This is not the case for ternary kernels (and 
{{equal/not_equal}}).
* Since {{equal/not_equal}} are trivial, specializing them is faster than 
having one kernel invoke the other one.

The {{not_between}} would be implemented as a kernel that simply negates the 
result from {{between}} because there is some complexity. There are kernel 
specializations based on {{BetweenOptions}}, so duplicating them is not 
appealing for a probably negligible performance gain. [The {{not_between}} 
kernel would be implemented something like 
this|https://github.com/bkmgit/arrow/pull/8#issuecomment-1003458024].

> [C++] Implement Not Between ternary kernel
> ------------------------------------------
>
>                 Key: ARROW-15223
>                 URL: https://issues.apache.org/jira/browse/ARROW-15223
>             Project: Apache Arrow
>          Issue Type: New Feature
>          Components: C++
>            Reporter: Eduardo Ponce
>            Priority: Major
>              Labels: good-first-issue
>             Fix For: 8.0.0
>
>
> Add a specialized {{not_between(arr, left_bound, right_bound)}} kernel 
> analogous to {{between()}} in ARROW-9843.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

Reply via email to