HOME
| OPENMP API Specification: "Version 5.2 -- GIT rev 95b2e3a44"

5.5.3  Implicitly Declared OpenMP Reduction Identifiers

5.1 lists each reduction identifier that is implicitly declared at every scope for arithmetic types and its semantic initializer value. The actual initializer value is that value as expressed in the data type of the reduction list item.

tableImplicitly Declared C/C++ Reduction Identifiers

TABLE 5.1: Implicitly Declared C/C++ Reduction Identifiers
Identifier Initializer Combiner
+ omp_priv = 0 omp_out += omp_in
- (deprecated) omp_priv = 0 omp_out += omp_in
* omp_priv = 1 omp_out *= omp_in
& omp_priv = ~ 0 omp_out &= omp_in
| omp_priv = 0 omp_out |= omp_in
^ omp_priv = 0 omp_out ^= omp_in
&& omp_priv = 1 omp_out = omp_in && omp_out
|| omp_priv = 0 omp_out = omp_in || omp_out
max omp_priv = Minimal representable number in the reduction list item type omp_out = omp_in > omp_out ? omp_in : omp_out
min omp_priv = Maximal representable number in the reduction list item type omp_out = omp_in < omp_out ? omp_in : omp_out
5.2 lists each reduction identifier that is implicitly declared for numeric and logical types and its semantic initializer value. The actual initializer value is that value as expressed in the data type of the reduction list item.

tableImplicitly Declared Fortran Reduction Identifiers

TABLE 5.2: Implicitly Declared Fortran Reduction Identifiers

Identifier Initializer Combiner
+ omp_priv = 0 omp_out = omp_in + omp_out
- (deprecated) omp_priv = 0 omp_out = omp_in + omp_out
* omp_priv = 1 omp_out = omp_in * omp_out
.and. omp_priv = .true. omp_out = omp_in .and. omp_out
.or. omp_priv = .false. omp_out = omp_in .or. omp_out
.eqv. omp_priv = .true. omp_out = omp_in .eqv. omp_out
.neqv. omp_priv = .false. omp_out = omp_in .neqv. omp_out
max omp_priv = Minimal representable number in the reduction list item type omp_out = max(omp_in, omp_out)
min omp_priv = Maximal representable number in the reduction list item type omp_out = min(omp_in, omp_out)
iand omp_priv = All bits on omp_out = iand(omp_in, omp_out)
ior omp_priv = 0 omp_out = ior(omp_in, omp_out)
ieor omp_priv = 0 omp_out = ieor(omp_in, omp_out)