15 #ifndef NAV2_MPPI_CONTROLLER__TOOLS__APPLE_UTILS_HPP_
16 #define NAV2_MPPI_CONTROLLER__TOOLS__APPLE_UTILS_HPP_
18 #include <xtensor/xtensor.hpp>
26 xt::xtensor<float, 1> manual_cumsum_1d(
const E & expression)
28 auto shape = expression.shape();
29 xt::xtensor<float, 1> result = xt::zeros<float>(shape);
31 for (
size_t i = 0; i < shape[0]; ++i) {
32 sum +=
static_cast<float>(expression(i));
42 xt::xtensor<float, 2> manual_cumsum_2d(
const E & expression,
int axis)
44 auto shape = expression.shape();
45 xt::xtensor<float, 2> result = xt::zeros<float>(shape);
47 for (
size_t i = 0; i < shape[0]; ++i) {
49 for (
size_t j = 0; j < shape[1]; ++j) {
50 row_sum +=
static_cast<float>(expression(i, j));
51 result(i, j) = row_sum;
55 for (
size_t j = 0; j < shape[1]; ++j) {
57 for (
size_t i = 0; i < shape[0]; ++i) {
58 col_sum +=
static_cast<float>(expression(i, j));
59 result(i, j) = col_sum;