Skip to content

Commit 0b6cb7c

Browse files
committed
Use CumulativeMean and Subtract instead of CallFunction
1 parent e950c52 commit 0b6cb7c

1 file changed

Lines changed: 12 additions & 6 deletions

File tree

cpp/src/arrow/compute/kernels/vector_demean.cc

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@
1717
// under the License.
1818

1919
// Include necessary Arrow headers
20+
#include <arrow/compute/api_vector.h>
21+
#include "arrow/compute/api_scalar.h"
2022
#include "arrow/compute/function.h"
2123
#include "arrow/compute/registry.h"
2224
#include "arrow/util/logging.h"
@@ -57,12 +59,16 @@ class DemeanMetaFunction : public MetaFunction {
5759
private:
5860
template <typename T>
5961
static Result<Datum> Demean(const T& input, ExecContext* ctx) {
60-
arrow::Datum demean_datum;
61-
Datum mean_datum;
62-
ARROW_ASSIGN_OR_RAISE(mean_datum, arrow::compute::CallFunction("mean", {input}));
63-
ARROW_ASSIGN_OR_RAISE(demean_datum,
64-
arrow::compute::CallFunction("subtract", {input, mean_datum}));
65-
return demean_datum;
62+
// TODO: Expose options?
63+
Datum mean_result;
64+
ARROW_ASSIGN_OR_RAISE(
65+
mean_result, arrow::compute::CumulativeMean(input, CumulativeOptions(), ctx));
66+
Datum demean_result;
67+
ARROW_ASSIGN_OR_RAISE(
68+
demean_result,
69+
arrow::compute::Subtract(input, mean_result, ArithmeticOptions(), ctx));
70+
71+
return demean_result;
6672
}
6773
};
6874
} // namespace

0 commit comments

Comments
 (0)