1#ifndef CS_ARRAY_REDUCE_H
2#define CS_ARRAY_REDUCE_H
91template <
size_t str
ide>
103 if (v_elt_list ==
nullptr) {
106 for (
size_t k = 0;
k < stride;
k++)
107 res.
r[
k] = v[stride*i +
k];
114 for (
size_t k = 0;
k < stride;
k++)
115 res.
r[
k] = v[stride*v_elt_list[i] +
k];
120 for (
size_t k = 0;
k < stride;
k++)
auto parallel_for_reduce(cs_lnum_t n, T &result, R &reducer, F &&f, Args &&... args)
Definition: cs_dispatch.h:1619
void wait(void)
Wait (synchronize) until launched computations have finished.
Definition: cs_dispatch.h:1635
Definition: cs_dispatch.h:1711
void cs_array_reduce_sum_l(cs_dispatch_context ctx, cs_lnum_t n_elts, const cs_lnum_t *v_elt_list, const cs_real_t v[], double vsum[])
Compute sums of an n-dimensional cs_real_t array's components.
Definition: cs_array_reduce.h:93
void cs_array_reduce_minmax(cs_lnum_t n, const cs_real_t v[], cs_real_t &vmin, cs_real_t &vmax)
Compute the min./max. of a 1-dimensional array.
Definition: cs_array_reduce.cpp:2669
void cs_array_reduce_simple_norms_l(cs_lnum_t n_elts, int dim, const cs_lnum_t *v_elt_list, const cs_lnum_t *w_elt_list, const cs_real_t v[], const cs_real_t w[], double vmin[], double vmax[], double vsum[], double wsum[], double asum[], double ssum[], double wssum[])
Compute simple local stats and norms (minima, maxima, sum, weighted sum, sum of absolute values,...
Definition: cs_array_reduce.cpp:3122
void cs_array_reduce_wsum_components_l(cs_lnum_t n_elts, int dim, const cs_lnum_t *v_elt_list, const cs_lnum_t *w_elt_list, const cs_real_t v[], const cs_real_t w[], double wsum[], double wtot[])
Compute weighted sums of an n-dimensional cs_real_t array's components. Output is both weighted sum a...
Definition: cs_array_reduce.cpp:2881
void cs_array_reduce_simple_stats_l(cs_dispatch_context ctx, const cs_lnum_t n_elts, const int dim, const cs_lnum_t *v_elt_list, const cs_real_t v[], double vmin[], double vmax[], double vsum[])
Compute simple local stats (minima, maxima, sum) of an n-dimensional cs_real_t array's components.
Definition: cs_array_reduce.cpp:2732
void cs_array_reduce_simple_stats_l_w(cs_dispatch_context ctx, cs_lnum_t n_elts, int dim, const cs_lnum_t *v_elt_list, const cs_lnum_t *w_elt_list, const cs_real_t v[], const cs_real_t w[], double vmin[], double vmax[], double vsum[], double wsum[])
Compute simple local stats (minima, maxima, sum, weighted sum) of an n-dimensional cs_real_t array's ...
Definition: cs_array_reduce.cpp:3021
void cs_array_reduce_minmax_l(cs_lnum_t n_elts, int dim, const cs_lnum_t *v_elt_list, const cs_real_t v[], cs_real_t vmin[], cs_real_t vmax[])
Compute sums of an n-dimensional cs_real_t array's components.
Definition: cs_array_reduce.cpp:2953
void cs_array_reduce_wsum_l(cs_lnum_t n_elts, int dim, const cs_lnum_t *v_elt_list, const cs_lnum_t *w_elt_list, const cs_real_t v[], const cs_real_t w[], double wsum[])
Compute weighted sums of an n-dimensional cs_real_t array's components.
Definition: cs_array_reduce.cpp:2800
void cs_array_scatter_reduce_norms_l(cs_lnum_t n_src_elts, const cs_lnum_t *src2v_idx, const cs_lnum_t *src2v_ids, const cs_lnum_t *filter_list, int dim, cs_lnum_t n_v_elts, const cs_real_t v[], const cs_real_t w[], double vsum[], double asum[], double ssum[])
Compute simple local weighted norms (l1, l2) of an n-dimensional cs_real_t array's components The wei...
Definition: cs_array_reduce.cpp:3212
#define CS_F_HOST_DEVICE
Definition: cs_defs.h:585
double cs_real_t
Floating-point value.
Definition: cs_defs.h:357
int cs_lnum_t
local mesh entity id
Definition: cs_defs.h:350
@ k
Definition: cs_field_pointer.h:72
Definition: cs_reducers.h:66
double r[stride]
Definition: cs_reducers.h:67
Definition: cs_reducers.h:203