Intel® C++ Compiler 16.0 User and Reference Guide

Reducer Library

The provided reducer library contains the reducers shown in the following table. Note that the name in the first column is the name of the monoid class; the corresponding reducer would be written as reducer<monoid>.

A description of each reducer is described in the comments that appear in the corresponding header file.

In the following table, the second column shows each reducer’s identity element and the third column shows the Update operation (there may be several).

Monoid/Header File

Identity element

Update operation

Description

op_list_append

<cilk/reducer_list.h>

empty list

push_back()

Creates a list by appending elements at the back.

op_list_prepend

<cilk/reducer_list.h>

empty list

push_front()

Creates a list by adding elements at the front.

op_max

<cilk/reducer_max.h>

(implicit)

calc_max

cilk::max_of

Finds the maximum value over a set of values.

rop_max_index

<cilk/reducer_max.h>

(implicit)

calc_max

cilk::max_of

Finds the maximum value and the index of the element containing the maximum value over a set of values.

op_min

<cilk/reducer_min.h>

(implicit)

calc_min

cilk::min_of

Finds the minimum value over a set of values.

op_min_index

<cilk/reducer_min.h>

(implicit)

calc_min

cilk::min_of

Finds the minimum value and the index of the element containing the minimum value over a set of values.

op_add

<cilk/reducer_opadd.h>

0

+, +=, ++, -, -=, --

Performs a sum.

op_and

<cilk/reducer_opand.h>

~0

&, &=

Perform bitwise AND.

op_or

<cilk/reducer_opor.h>

0

|, |=

Perform bitwise OR.

op_xor

<cilk/reducer_opxor.h>

0

^, ^=

Perform bitwise XOR.

op_basic_ostream

<cilk/reducer_ostream.h>

empty string

<<

Provides an output stream that can be written in parallel.

op_ostream

<cilk/reducer_string.h>

empty string

<<

Shorthand for op_basic_ostream<char>.

op_wostream

<cilk/reducer_string.h>

empty string

<<

Shorthand for op_basic_ostream<wchar t>.

op_basic_string

<cilk/reducer_string.h>

empty string

+=, append

Creates a string using append or += operations.

op_string

<cilk/reducer_string.h>

empty string

+=, append

Shorthand for op_basic_string<char>.

op_wstring

<cilk/reducer_string.h>

empty string

+=, append

Shorthand for op_basic_string<wchar_t>.

op_vector

<cilk/reducer_vector.h>

empty vector

push_back()

Creates a vector by appending elements at the back.