TensorAgg¶
The TensorAgg
class of txeo library provides aggregation functions to simplify statistical and reduction operations on tensors in the txeo library.
Overview¶
TensorAgg
provides methods for computing sums, products, statistical measures (mean, variance, median), norms, and logical reductions along specified tensor axes.
API Reference¶
Method | Description |
---|---|
reduce_sum(tensor, axes) |
Computes sum along axes |
reduce_prod(tensor, axes) |
Computes product along axes |
reduce_mean(tensor, axes) |
Computes mean along axes |
reduce_max(tensor, axes) |
Finds maximum values along axes |
reduce_min(tensor, axes) |
Finds minimum values along axes |
reduce_euclidean_norm(tensor, axes) |
Computes Euclidean norm along axes |
reduce_maximum_norm(tensor, axis) |
Computes maximum norm along axis |
reduce_variance(tensor, axis) |
Computes variance along axis |
reduce_standard_deviation(tensor, axis) |
Computes standard deviation along axis |
reduce_median(tensor, axis) |
Computes median along axis |
reduce_geometric_mean(tensor, axis) |
Computes geometric mean along axis |
reduce_all(tensor, axes) |
Computes logical AND along axes |
reduce_any(tensor, axes) |
Computes logical OR along axes |
cumulative_sum(tensor, axis) |
Computes cumulative sum along axis |
cumulative_prod(tensor, axis) |
Computes cumulative product along axis |
arg_max(tensor, axis) |
Indices of max values along axis |
arg_min(tensor, axis) |
Indices of min values along axis |
count_non_zero(tensor, axis) |
Counts non-zero elements along axis |
sum_all(tensor) |
Sums all elements in tensor |
Aggregation Operations¶
Reduction Operations¶
Compute sum, product, mean, max, min along specified axes:
#include "txeo/Tensor.h"
#include "txeo/TensorAgg.h"
int main() {
txeo::Tensor<int> tensor({2, 3}, {1, 2, 3, 4, 5, 6});
auto sum_result = txeo::TensorAgg<int>::reduce_sum(tensor, {1}); // [6, 15]
auto prod_result = txeo::TensorAgg<int>::reduce_prod(tensor, {1}); // [6, 120]
auto mean_result = txeo::TensorAgg<int>::reduce_mean(tensor, {1}); // [2, 5]
auto max_result = txeo::TensorAgg<int>::reduce_max(tensor, {1}); // [3, 6]
auto min_result = txeo::TensorAgg<int>::reduce_min(tensor, {1}); // [1, 4]
}
Norm Operations¶
Compute various norms along specified axes:
// Euclidean norm
auto norm_result = txeo::TensorAgg<double>::reduce_euclidean_norm(tensor, {1}); // [3.74166, 8.77496]
// Maximum norm
auto max_norm_result = txeo::TensorAgg<int>::reduce_maximum_norm(tensor, 1); // [3, 6]
Statistical Operations¶
Calculate variance, standard deviation, median, and geometric mean:
auto var_result = txeo::TensorAgg<double>::reduce_variance(tensor, 1); // [1.0, 1.0]
auto std_result = txeo::TensorAgg<double>::reduce_standard_deviation(tensor, 1); // [1.0, 1.0]
auto median_result = txeo::TensorAgg<int>::reduce_median(tensor, 1); // [2, 5]
auto geo_mean_result = txeo::TensorAgg<double>::reduce_geometric_mean(tensor, 1); // [1.81712, 4.93242]
Logical Operations¶
Perform logical reductions (all
, any
):
txeo::Tensor<bool> logical_tensor({2, 3}, {true, false, true, true, true, false});
auto all_result = txeo::TensorAgg<bool>::reduce_all(logical_tensor, {1}); // [false, false]
auto any_result = txeo::TensorAgg<bool>::reduce_any(logical_tensor, {1}); // [true, true]
Cumulative Operations¶
Calculate cumulative sums and products:
auto cum_sum_result = txeo::TensorAgg<int>::cumulative_sum(tensor, 1); // [[1,3,6],[4,9,15]]
auto cum_prod_result = txeo::TensorAgg<int>::cumulative_prod(tensor, 1); // [[1,2,6],[4,20,120]]
Argmax and Argmin¶
Identify indices of max/min elements:
auto argmax_result = txeo::TensorAgg<int>::arg_max(tensor, 1); // [2, 2]
auto argmin_result = txeo::TensorAgg<int>::arg_min(tensor, 1); // [0, 0]
Count Operations¶
Count non-zero elements:
auto count_result = txeo::TensorAgg<int>::count_non_zero(tensor, 1); // [3, 3]
Global Sum¶
Compute sum of all tensor elements:
auto total_sum = txeo::TensorAgg<int>::sum_all(tensor); // 21
For detailed API references, see individual method documentation at txeo::TensorAgg.