tbb::internal::lambda_scan_body< Range, Value, Scan, ReverseJoin > Class Template Reference

`#include <parallel_scan.h>`

Inheritance diagram for tbb::internal::lambda_scan_body< Range, Value, Scan, ReverseJoin >:
Collaboration diagram for tbb::internal::lambda_scan_body< Range, Value, Scan, ReverseJoin >:

## Public Member Functions

| lambda_scan_body (const Value &identity, const Scan &scan, const ReverseJoin &rev_join)
| lambda_scan_body (lambda_scan_body &b, split)
template<typename Tag >
void | operator() (const Range &r, Tag tag)
void | reverse_join (lambda_scan_body &a)
void | assign (lambda_scan_body &b)
Value | result () const

## Private Attributes

Value | my_sum
const Value & | identity_element
const Scan & | my_scan
const ReverseJoin & | my_reverse_join

## Additional Inherited Members

Private Member Functions inherited from tbb::internal::no_assign
void | operator= (const no_assign &)=delete
| no_assign (const no_assign &)=default
| no_assign ()=default

## Detailed Description

### template<typename Range, typename Value, typename Scan, typename ReverseJoin>
class tbb::internal::lambda_scan_body< Range, Value, Scan, ReverseJoin >

Definition at line 302 of file parallel_scan.h.

## Constructor & Destructor Documentation

## lambda_scan_body() [1/2]

template<typename Range, typename Value, typename Scan, typename ReverseJoin>

tbb::internal::lambda_scan_body< Range, Value, Scan, ReverseJoin >::lambda_scan_body | ( | const Value & | identity,
|  | const Scan & | scan,
|  | const ReverseJoin & | rev_join
| ) |  |

inline

Definition at line 308 of file parallel_scan.h.

: my_sum(identity)
, identity_element(identity)
, my_scan(scan)
, my_reverse_join(rev_join) {}

## lambda_scan_body() [2/2]

template<typename Range, typename Value, typename Scan, typename ReverseJoin>

tbb::internal::lambda_scan_body< Range, Value, Scan, ReverseJoin >::lambda_scan_body | ( | lambda_scan_body< Range, Value, Scan, ReverseJoin > & | b,
|  | split |
| ) |  |

inline

Definition at line 314 of file parallel_scan.h.

: my_sum(b.identity_element)
, identity_element(b.identity_element)
, my_scan(b.my_scan)
, my_reverse_join(b.my_reverse_join) {}

## Member Function Documentation

## assign()

template<typename Range, typename Value, typename Scan, typename ReverseJoin>

void tbb::internal::lambda_scan_body< Range, Value, Scan, ReverseJoin >::assign | ( | lambda_scan_body< Range, Value, Scan, ReverseJoin > & | b | ) |

inline

Definition at line 329 of file parallel_scan.h.

{
my_sum = b.my_sum;
}

References tbb::internal::lambda_scan_body< Range, Value, Scan, ReverseJoin >::my_sum.

## operator()()

template<typename Range, typename Value, typename Scan, typename ReverseJoin>
template<typename Tag >

void tbb::internal::lambda_scan_body< Range, Value, Scan, ReverseJoin >::operator() | ( | const Range & | r,
|  | Tag | tag
| ) |  |

inline

Definition at line 321 of file parallel_scan.h.

{
my_sum = my_scan(r, my_sum, tag);
}

References tbb::internal::lambda_scan_body< Range, Value, Scan, ReverseJoin >::my_scan, and tbb::internal::lambda_scan_body< Range, Value, Scan, ReverseJoin >::my_sum.

## result()

template<typename Range, typename Value, typename Scan, typename ReverseJoin>

Value tbb::internal::lambda_scan_body< Range, Value, Scan, ReverseJoin >::result | ( |  | ) | const

inline

Definition at line 333 of file parallel_scan.h.

{
return my_sum;
}

References tbb::internal::lambda_scan_body< Range, Value, Scan, ReverseJoin >::my_sum.

Referenced by tbb::parallel_scan().

Here is the caller graph for this function:

## reverse_join()

template<typename Range, typename Value, typename Scan, typename ReverseJoin>

void tbb::internal::lambda_scan_body< Range, Value, Scan, ReverseJoin >::reverse_join | ( | lambda_scan_body< Range, Value, Scan, ReverseJoin > & | a | ) |

inline

Definition at line 325 of file parallel_scan.h.

{
my_sum = my_reverse_join(a.my_sum, my_sum);
}

References tbb::internal::lambda_scan_body< Range, Value, Scan, ReverseJoin >::my_reverse_join, and tbb::internal::lambda_scan_body< Range, Value, Scan, ReverseJoin >::my_sum.

## Member Data Documentation

## identity_element

template<typename Range, typename Value, typename Scan, typename ReverseJoin>

const Value& tbb::internal::lambda_scan_body< Range, Value, Scan, ReverseJoin >::identity_element

private

Definition at line 304 of file parallel_scan.h.

## my_reverse_join

template<typename Range, typename Value, typename Scan, typename ReverseJoin>

const ReverseJoin& tbb::internal::lambda_scan_body< Range, Value, Scan, ReverseJoin >::my_reverse_join

private

Definition at line 306 of file parallel_scan.h.

Referenced by tbb::internal::lambda_scan_body< Range, Value, Scan, ReverseJoin >::reverse_join().

## my_scan

template<typename Range, typename Value, typename Scan, typename ReverseJoin>

const Scan& tbb::internal::lambda_scan_body< Range, Value, Scan, ReverseJoin >::my_scan

private

Definition at line 305 of file parallel_scan.h.

Referenced by tbb::internal::lambda_scan_body< Range, Value, Scan, ReverseJoin >::operator()().

## my_sum

template<typename Range, typename Value, typename Scan, typename ReverseJoin>

Value tbb::internal::lambda_scan_body< Range, Value, Scan, ReverseJoin >::my_sum

private

Definition at line 303 of file parallel_scan.h.

Referenced by tbb::internal::lambda_scan_body< Range, Value, Scan, ReverseJoin >::assign(), tbb::internal::lambda_scan_body< Range, Value, Scan, ReverseJoin >::operator()(), tbb::internal::lambda_scan_body< Range, Value, Scan, ReverseJoin >::result(), and tbb::internal::lambda_scan_body< Range, Value, Scan, ReverseJoin >::reverse_join().

The documentation for this class was generated from the following file:

- parallel_scan.h

tbb::internal::lambda_scan_body::my_reverse_join
const ReverseJoin & my_reverse_join
Definition: parallel_scan.h:306
tbb::internal::lambda_scan_body::my_sum
Value my_sum
Definition: parallel_scan.h:303
tbb::internal::lambda_scan_body::my_scan
const Scan & my_scan
Definition: parallel_scan.h:305
tbb::internal::lambda_scan_body::identity_element
const Value & identity_element
Definition: parallel_scan.h:304

Copyright © 2005-2020 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its subsidiaries in the United States and other countries.

* Other names and brands may be claimed as the property of others.