56template<
size_t str
ide>
61template<
size_t str
ide>
68template<
size_t str
ide>
100template<
size_t str
ide>
107template<
size_t str
ide>
216template<
size_t str
ide>
222 for (
size_t i = 0; i < stride; i++)
228 for (
size_t i = 0; i < stride; i++)
235template<
size_t str
ide>
241 for (
size_t i = 0; i < stride; i++)
247 for (
size_t i = 0; i < stride; i++)
254template<
size_t str
ide>
260 for (
size_t i = 0; i < stride; i++) {
268 for (
size_t i = 0; i < stride; i++) {
270 a.
r[stride + i] =
cs::max(a.
r[stride + i], b.
r[stride + i]);
277template<
size_t str
ide>
283 for (
size_t i = 0; i < stride; i++) {
286 a.
r[2*stride + i] = 0.;
292 for (
size_t i = 0; i < stride; i++) {
294 a.
r[stride + i] =
cs::max(a.
r[stride + i], b.
r[stride + i]);
295 a.
r[2*stride + i] += b.
r[2*stride + i];
364template<
size_t str
ide>
370 const size_t _stride = stride + 1;
371 for (
size_t i = 0; i < _stride; i++) {
374 a.
r[2*_stride + i] = 0.;
381 const size_t _stride = stride + 1;
383 for (
size_t i = 0; i < stride; i++) {
385 a.
r[_stride + i] =
cs::max(a.
r[_stride + i], b.
r[_stride + i]);
386 a.
r[2*_stride + i] += b.
r[2*_stride + i];
388 a.
r[_stride - 1] =
cs::min(a.
r[_stride - 1], b.
r[_stride - 1]);
389 a.
r[2*_stride - 1] =
cs::max(a.
r[2*_stride - 1], b.
r[2*_stride - 1]);
390 a.
r[3*_stride - 1] += b.
r[3*_stride - 1];
394template<
size_t str
ide>
400 for (
size_t i = 0; i < stride; i++) {
403 a.
r[2*stride + i] = 0.;
404 a.
r[3*stride + i] = 0.;
410 for (
size_t i = 0; i < stride; i++) {
412 a.
r[stride + i] =
cs::max(a.
r[stride + i], b.
r[stride + i]);
413 a.
r[2*stride + i] += b.
r[2*stride + i];
414 a.
r[3*stride + i] += b.
r[3*stride + i];
420template<
size_t str
ide>
426 const size_t _stride = stride + 1;
427 for (
size_t i = 0; i < _stride; i++) {
430 a.
r[2*_stride + i] = 0.;
431 a.
r[3*_stride + i] = 0.;
438 const size_t _stride = stride + 1;
439 for (
size_t i = 0; i < stride; i++) {
441 a.
r[_stride + i] =
cs::max(a.
r[_stride + i], b.
r[_stride + i]);
442 a.
r[2*_stride + i] += b.
r[2*_stride + i];
443 a.
r[3*_stride + i] += b.
r[3*_stride + i];
445 a.
r[_stride - 1] =
cs::min(a.
r[_stride - 1], b.
r[_stride - 1]);
446 a.
r[2*_stride - 1] =
cs::max(a.
r[2*_stride - 1], b.
r[2*_stride - 1]);
447 a.
r[3*_stride - 1] += b.
r[3*_stride - 1];
448 a.
r[4*_stride - 1] += b.
r[4*_stride - 1];
466 if (a.
r[3] < b.
r[3]) {
482template<
size_t str
ide>
488 for (
size_t i = 0; i < stride; i++) {
496 for (
size_t i = 0; i < stride; i++) {
499 a.
r[stride+i] =
cs::max(a.
r[stride+i], b.
r[stride+i]);
506template<
size_t str
ide>
512 for (
size_t i = 0; i < stride; i++) {
519 for (
size_t i = 0; i < stride; i++) {
527template<
size_t str
ide>
533 for (
size_t i = 0; i < stride; i++) {
540 for (
size_t i = 0; i < stride; i++) {
548template<
size_t str
ide>
554 for (
size_t i = 0; i < stride; i++) {
558 a.
i[stride + i] = -1.;
564 for (
size_t i = 0; i < stride; i++) {
565 if (a.
r[i] > b.
r[i]) {
569 if (a.
r[stride + i] < b.
r[stride + i]) {
570 a.
r[stride + i] = b.
r[stride + i];
571 a.
i[stride + i] = b.
i[stride + i];
#define CS_F_HOST_DEVICE
Definition: cs_defs.h:555
double cs_real_t
Floating-point value.
Definition: cs_defs.h:332
unsigned cs_gnum_t
global mesh entity number
Definition: cs_defs.h:317
int cs_lnum_t
local mesh entity id
Definition: cs_defs.h:325
static constexpr cs_real_t cs_math_infinite_r
Definition: cs_math.h:105
CS_F_HOST_DEVICE T max(const T a, const T b)
Definition: cs_defs.h:735
CS_F_HOST_DEVICE T min(const T a, const T b)
Definition: cs_defs.h:712
Definition: cs_reducers.h:90
double d[1]
Definition: cs_reducers.h:91
float r[2]
Definition: cs_reducers.h:92
Definition: cs_reducers.h:75
float r[1]
Definition: cs_reducers.h:77
cs_lnum_t i[1]
Definition: cs_reducers.h:76
Definition: cs_reducers.h:80
cs_lnum_t i[1]
Definition: cs_reducers.h:81
float r[2]
Definition: cs_reducers.h:82
Definition: cs_reducers.h:85
cs_lnum_t i[2]
Definition: cs_reducers.h:86
float r[2]
Definition: cs_reducers.h:87
Definition: cs_reducers.h:95
float r1[3]
Definition: cs_reducers.h:96
float r2[3]
Definition: cs_reducers.h:97
Definition: cs_reducers.h:108
double r[stride]
Definition: cs_reducers.h:109
cs_lnum_t i[stride]
Definition: cs_reducers.h:110
Definition: cs_reducers.h:101
double r[stride]
Definition: cs_reducers.h:102
Definition: cs_reducers.h:62
double r[stride]
Definition: cs_reducers.h:63
Definition: cs_reducers.h:57
float r[stride]
Definition: cs_reducers.h:58
Definition: cs_reducers.h:69
cs_lnum_t i[stride]
Definition: cs_reducers.h:70
Definition: cs_reducers.h:452
CS_F_HOST_DEVICE void identity(T &a) const
Definition: cs_reducers.h:456
CS_F_HOST_DEVICE void combine(volatile T &a, volatile const T &b) const
Definition: cs_reducers.h:465
Definition: cs_reducers.h:173
CS_F_HOST_DEVICE void combine(volatile cs_real_t &a, volatile const cs_real_t &b) const
Definition: cs_reducers.h:181
CS_F_HOST_DEVICE void identity(cs_real_t &a) const
Definition: cs_reducers.h:176
Definition: cs_reducers.h:579
CS_F_HOST_DEVICE void identity(T &a) const
Definition: cs_reducers.h:583
CS_F_HOST_DEVICE void combine(volatile T &a, volatile const T &b) const
Definition: cs_reducers.h:595
Definition: cs_reducers.h:158
CS_F_HOST_DEVICE void identity(cs_gnum_t &a) const
Definition: cs_reducers.h:161
CS_F_HOST_DEVICE void combine(volatile cs_gnum_t &a, volatile const cs_gnum_t &b) const
Definition: cs_reducers.h:166
Definition: cs_reducers.h:528
CS_F_HOST_DEVICE void identity(T &a) const
Definition: cs_reducers.h:532
CS_F_HOST_DEVICE void combine(volatile T &a, volatile const T &b) const
Definition: cs_reducers.h:539
Definition: cs_reducers.h:302
CS_F_HOST_DEVICE void identity(T &a) const
Definition: cs_reducers.h:306
CS_F_HOST_DEVICE void combine(volatile T &a, volatile const T &b) const
Definition: cs_reducers.h:313
Definition: cs_reducers.h:322
CS_F_HOST_DEVICE void identity(T &a) const
Definition: cs_reducers.h:326
CS_F_HOST_DEVICE void combine(volatile T &a, volatile const T &b) const
Definition: cs_reducers.h:334
Definition: cs_reducers.h:118
CS_F_HOST_DEVICE void identity(T &a) const
Definition: cs_reducers.h:122
CS_F_HOST_DEVICE void combine(volatile T &a, volatile const T &b) const
Definition: cs_reducers.h:130
Definition: cs_reducers.h:188
CS_F_HOST_DEVICE void identity(T &a) const
Definition: cs_reducers.h:192
CS_F_HOST_DEVICE void combine(volatile T &a, volatile const T &b) const
Definition: cs_reducers.h:203
Definition: cs_reducers.h:255
CS_F_HOST_DEVICE void identity(T &a) const
Definition: cs_reducers.h:259
CS_F_HOST_DEVICE void combine(volatile T &a, volatile const T &b) const
Definition: cs_reducers.h:267
Definition: cs_reducers.h:365
CS_F_HOST_DEVICE void identity(T &a) const
Definition: cs_reducers.h:369
CS_F_HOST_DEVICE void combine(volatile T &a, volatile const T &b) const
Definition: cs_reducers.h:379
Definition: cs_reducers.h:278
CS_F_HOST_DEVICE void identity(T &a) const
Definition: cs_reducers.h:282
CS_F_HOST_DEVICE void combine(volatile T &a, volatile const T &b) const
Definition: cs_reducers.h:291
Definition: cs_reducers.h:421
CS_F_HOST_DEVICE void identity(T &a) const
Definition: cs_reducers.h:425
CS_F_HOST_DEVICE void combine(volatile T &a, volatile const T &b) const
Definition: cs_reducers.h:436
Definition: cs_reducers.h:395
CS_F_HOST_DEVICE void identity(T &a) const
Definition: cs_reducers.h:399
CS_F_HOST_DEVICE void combine(volatile T &a, volatile const T &b) const
Definition: cs_reducers.h:409
Definition: cs_reducers.h:507
CS_F_HOST_DEVICE void identity(T &a) const
Definition: cs_reducers.h:511
CS_F_HOST_DEVICE void combine(volatile T &a, volatile const T &b) const
Definition: cs_reducers.h:518
Definition: cs_reducers.h:483
CS_F_HOST_DEVICE void identity(T &a) const
Definition: cs_reducers.h:487
CS_F_HOST_DEVICE void combine(volatile T &a, volatile const T &b) const
Definition: cs_reducers.h:495
Definition: cs_reducers.h:549
CS_F_HOST_DEVICE void identity(T &a) const
Definition: cs_reducers.h:553
CS_F_HOST_DEVICE void combine(volatile T &a, volatile const T &b) const
Definition: cs_reducers.h:563
Definition: cs_reducers.h:344
CS_F_HOST_DEVICE void identity(T &a) const
Definition: cs_reducers.h:348
CS_F_HOST_DEVICE void combine(volatile T &a, volatile const T &b) const
Definition: cs_reducers.h:356
Definition: cs_reducers.h:140
CS_F_HOST_DEVICE void identity(T &a) const
Definition: cs_reducers.h:144
CS_F_HOST_DEVICE void combine(volatile T &a, volatile const T &b) const
Definition: cs_reducers.h:150
Definition: cs_reducers.h:236
CS_F_HOST_DEVICE void identity(T &a) const
Definition: cs_reducers.h:240
CS_F_HOST_DEVICE void combine(volatile T &a, volatile const T &b) const
Definition: cs_reducers.h:246
Definition: cs_reducers.h:217
CS_F_HOST_DEVICE void identity(T &a) const
Definition: cs_reducers.h:221
CS_F_HOST_DEVICE void combine(volatile T &a, volatile const T &b) const
Definition: cs_reducers.h:227