* garrow_numeric_array_mean: * @array: A #GArrowNumericArray. * @error: (nullable): Return location for a #GError or %NULL. * * Returns: The value of the computed mean. * * Since: 0.13.0 */
| 5185 | * Since: 0.13.0 |
| 5186 | */ |
| 5187 | gdouble |
| 5188 | garrow_numeric_array_mean(GArrowNumericArray *array, GError **error) |
| 5189 | { |
| 5190 | auto arrow_array = garrow_array_get_raw(GARROW_ARRAY(array)); |
| 5191 | auto arrow_mean_datum = arrow::compute::Mean(arrow_array); |
| 5192 | if (garrow::check(error, arrow_mean_datum, "[numeric-array][mean]")) { |
| 5193 | using ScalarType = typename arrow::TypeTraits<arrow::DoubleType>::ScalarType; |
| 5194 | auto arrow_numeric_scalar = |
| 5195 | std::dynamic_pointer_cast<ScalarType>((*arrow_mean_datum).scalar()); |
| 5196 | if (arrow_numeric_scalar->is_valid) { |
| 5197 | return arrow_numeric_scalar->value; |
| 5198 | } else { |
| 5199 | return 0.0; |
| 5200 | } |
| 5201 | } else { |
| 5202 | return 0.0; |
| 5203 | } |
| 5204 | } |
| 5205 | |
| 5206 | /** |
| 5207 | * garrow_int8_array_sum: |
nothing calls this directly
no test coverage detected