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

David Li edited comment on ARROW-15571 at 2/4/22, 5:54 PM:
-----------------------------------------------------------

I think we're missing some terminology here.

Note the Python functions are the exact same as the C++ ones. Rok's example can 
be translated to C++ and they both use the same implementation under the hood.

Scalar functions operate on array and scalar values. "Scalar" just means that 
they operate elementwise.

Aggregate functions reduce multiple values to one. It seems they are not what 
you are looking for here. However, again, note that min/max both have aggregate 
versions (min(array) -> scalar) and scalar versions (min(array, array) -> array 
or min(scalar, array) -> array or ...). So I think Rok's suggestion is what you 
are looking for.

If performance is not up to par in benchmarks, then there is opportunity to 
optimize. (The scalar min/max kernels do some extra work because they take any 
number of arguments, for instance - though I don't recall if they have 
specializations for binary inputs.)


was (Author: lidavidm):
I think we're missing some terminology here.

Note the Python functions are the exact same as the C++ ones. Rok's example can 
be translated to C++ and they both use the same implementation here.

Scalar functions operate on array and scalar values. "Scalar" just means that 
they operate elementwise.

Aggregate functions reduce multiple values to one. It seems they are not what 
you are looking for here. However, again, note that min/max both have aggregate 
versions (min(array) -> scalar) and scalar versions (min(array, array) -> array 
or min(scalar, array) -> array or ...). So I think Rok's suggestion is what you 
are looking for.

If performance is not up to par in benchmarks, then there is opportunity to 
optimize. (The scalar min/max kernels do some extra work because they take any 
number of arguments, for instance - though I don't recall if they have 
specializations for binary inputs.)

> [C++] Add min/max/sqrt scalar kernels to execution engine
> ---------------------------------------------------------
>
>                 Key: ARROW-15571
>                 URL: https://issues.apache.org/jira/browse/ARROW-15571
>             Project: Apache Arrow
>          Issue Type: Improvement
>          Components: C++
>            Reporter: Yaron Gvili
>            Priority: Major
>              Labels: kernel, pull-request-available
>          Time Spent: 0.5h
>  Remaining Estimate: 0h
>
> The list of execution engine's scalar kernels currently available in 
> `cpp/src/arrow/compute/kernels/scalar_arithmetic.cc` does not cover the 
> common minimum, maximum, and square-root functions.



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

Reply via email to