Intel(R) Threading Building Blocks Doxygen Documentation  version 4.2.3
Algorithms

Classes

class  tbb::blocked_range< Value >
 A range over which to iterate. More...
 
class  tbb::blocked_range2d< RowValue, ColValue >
 A 2-dimensional range that models the Range concept. More...
 
class  tbb::blocked_range3d< PageValue, RowValue, ColValue >
 A 3-dimensional range that models the Range concept. More...
 
class  tbb::interface9::internal::parallel_do_operator_selector< Body, Item >
 For internal use only. More...
 
class  tbb::interface9::internal::do_iteration_task< Body, Item >
 For internal use only. More...
 
class  tbb::interface9::internal::parallel_do_feeder_impl< Body, Item >
 For internal use only. More...
 
class  tbb::interface9::internal::do_group_task_forward< Iterator, Body, Item >
 For internal use only. More...
 
class  tbb::interface9::internal::do_task_iter< Iterator, Body, Item >
 For internal use only. More...
 
class  tbb::interface9::internal::start_for< Range, Body, Partitioner >
 Task type used in parallel_for. More...
 
class  tbb::interface9::internal::finish_reduce< Body >
 Task type used to combine the partial results of parallel_reduce. More...
 
class  tbb::interface9::internal::start_reduce< Range, Body, Partitioner >
 Task type used to split the work of parallel_reduce. More...
 
class  tbb::interface9::internal::finish_deterministic_reduce< Body >
 Task type used to combine the partial results of parallel_deterministic_reduce. More...
 
class  tbb::interface9::internal::start_deterministic_reduce< Range, Body, Partitioner >
 Task type used to split the work of parallel_deterministic_reduce. More...
 
class  tbb::internal::lambda_reduce_body< Range, Value, RealBody, Reduction >
 Auxiliary class for parallel_reduce; for internal use only. More...
 
struct  tbb::pre_scan_tag
 Used to indicate that the initial scan is being performed. More...
 
struct  tbb::final_scan_tag
 Used to indicate that the final scan is being performed. More...
 
class  tbb::internal::final_sum< Range, Body >
 Performs final scan for a leaf. More...
 
class  tbb::internal::sum_node< Range, Body >
 Split work to be done in the scan. More...
 
class  tbb::internal::finish_scan< Range, Body >
 Combine partial results. More...
 
class  tbb::internal::start_scan< Range, Body, Partitioner >
 Initial task to split the work. More...
 
class  tbb::interface9::internal::quick_sort_range< RandomAccessIterator, Compare >
 Range used in quicksort to split elements into subranges based on a value. More...
 
class  tbb::interface9::internal::quick_sort_pretest_body< RandomAccessIterator, Compare >
 Body class used to test if elements in a range are presorted. More...
 
struct  tbb::interface9::internal::quick_sort_body< RandomAccessIterator, Compare >
 Body class used to sort elements in a range that is smaller than the grainsize. More...
 
class  tbb::internal::while_iteration_task< Body >
 For internal use only. More...
 
class  tbb::internal::while_group_task< Body >
 For internal use only. More...
 
class  tbb::internal::while_task< Stream, Body >
 For internal use only. More...
 
class  tbb::parallel_while< Body >
 Parallel iteration over a stream, with optional addition of more work. More...
 
class  tbb::simple_partitioner
 A simple partitioner. More...
 
class  tbb::auto_partitioner
 An auto partitioner. More...
 
class  tbb::filter
 A stage in a pipeline. More...
 
class  tbb::thread_bound_filter
 A stage in a pipeline served by a user thread. More...
 
class  tbb::pipeline
 A processing pipeline that applies filters to items. More...
 
class  tbb::split
 Dummy type that distinguishes splitting constructor from copy constructor. More...
 

Functions

template<typename Range , typename Body >
void tbb::serial::interface9::parallel_for (const Range &range, const Body &body)
 Parallel iteration over range with default partitioner. More...
 
template<typename Range , typename Body >
void tbb::serial::interface9::parallel_for (const Range &range, const Body &body, const simple_partitioner &partitioner)
 Parallel iteration over range with simple partitioner. More...
 
template<typename Range , typename Body >
void tbb::serial::interface9::parallel_for (const Range &range, const Body &body, const auto_partitioner &partitioner)
 Parallel iteration over range with auto_partitioner. More...
 
template<typename Range , typename Body >
void tbb::serial::interface9::parallel_for (const Range &range, const Body &body, const static_partitioner &partitioner)
 Parallel iteration over range with static_partitioner. More...
 
template<typename Range , typename Body >
void tbb::serial::interface9::parallel_for (const Range &range, const Body &body, affinity_partitioner &partitioner)
 Parallel iteration over range with affinity_partitioner. More...
 
template<typename Iterator , typename Body , typename Item >
void tbb::interface9::internal::run_parallel_do (Iterator first, Iterator last, const Body &body, task_group_context &context)
 For internal use only. More...
 
template<typename Iterator , typename Body , typename Item >
void tbb::interface9::internal::select_parallel_do (Iterator first, Iterator last, const Body &body, void(Body::*)(Item) const, task_group_context &context)
 For internal use only. More...
 
template<typename Iterator , typename Body , typename Item , typename _Item >
void tbb::interface9::internal::select_parallel_do (Iterator first, Iterator last, const Body &body, void(Body::*)(Item, parallel_do_feeder< _Item > &) const, task_group_context &context)
 For internal use only. More...
 
template<typename RandomAccessIterator , typename Compare >
void tbb::interface9::internal::parallel_quick_sort (RandomAccessIterator begin, RandomAccessIterator end, const Compare &comp)
 Wrapper method to initiate the sort by calling parallel_for. More...
 

parallel_do

See also requirements on parallel_do Body.

template<typename Iterator , typename Body >
void tbb::parallel_do (Iterator first, Iterator last, const Body &body)
 Parallel iteration over a range, with optional addition of more work. More...
 
template<typename Iterator , typename Body >
void tbb::parallel_do (Iterator first, Iterator last, const Body &body, task_group_context &context)
 Parallel iteration over a range, with optional addition of more work and user-supplied context. More...
 
template<typename Range , typename Body >
void tbb::parallel_do (Range &rng, const Body &body)
 
template<typename Range , typename Body >
void tbb::parallel_do (const Range &rng, const Body &body)
 
template<typename Range , typename Body >
void tbb::parallel_do (Range &rng, const Body &body, task_group_context &context)
 
template<typename Range , typename Body >
void tbb::parallel_do (const Range &rng, const Body &body, task_group_context &context)
 

parallel_for

See also requirements on Range and parallel_for Body.

template<typename Range , typename Body >
void tbb::parallel_for (const Range &range, const Body &body)
 Parallel iteration over range with default partitioner. More...
 
template<typename Range , typename Body >
void tbb::parallel_for (const Range &range, const Body &body, const simple_partitioner &partitioner)
 Parallel iteration over range with simple partitioner. More...
 
template<typename Range , typename Body >
void tbb::parallel_for (const Range &range, const Body &body, const auto_partitioner &partitioner)
 Parallel iteration over range with auto_partitioner. More...
 
template<typename Range , typename Body >
void tbb::parallel_for (const Range &range, const Body &body, const static_partitioner &partitioner)
 Parallel iteration over range with static_partitioner. More...
 
template<typename Range , typename Body >
void tbb::parallel_for (const Range &range, const Body &body, affinity_partitioner &partitioner)
 Parallel iteration over range with affinity_partitioner. More...
 
template<typename Range , typename Body >
void tbb::parallel_for (const Range &range, const Body &body, task_group_context &context)
 Parallel iteration over range with default partitioner and user-supplied context. More...
 
template<typename Range , typename Body >
void tbb::parallel_for (const Range &range, const Body &body, const simple_partitioner &partitioner, task_group_context &context)
 Parallel iteration over range with simple partitioner and user-supplied context. More...
 
template<typename Range , typename Body >
void tbb::parallel_for (const Range &range, const Body &body, const auto_partitioner &partitioner, task_group_context &context)
 Parallel iteration over range with auto_partitioner and user-supplied context. More...
 
template<typename Range , typename Body >
void tbb::parallel_for (const Range &range, const Body &body, const static_partitioner &partitioner, task_group_context &context)
 Parallel iteration over range with static_partitioner and user-supplied context. More...
 
template<typename Range , typename Body >
void tbb::parallel_for (const Range &range, const Body &body, affinity_partitioner &partitioner, task_group_context &context)
 Parallel iteration over range with affinity_partitioner and user-supplied context. More...
 

parallel_for_each

template<typename Iterator , typename Function >
void tbb::parallel_for_each (Iterator first, Iterator last, const Function &f, task_group_context &context)
 Calls function f for all items from [first, last) interval using user-supplied context. More...
 
template<typename Range , typename Function >
void tbb::parallel_for_each (Range &rng, const Function &f, task_group_context &context)
 Calls function f for all items from rng using user-supplied context. More...
 
template<typename Range , typename Function >
void tbb::parallel_for_each (const Range &rng, const Function &f, task_group_context &context)
 Calls function f for all items from const rng user-supplied context. More...
 
template<typename Iterator , typename Function >
void tbb::parallel_for_each (Iterator first, Iterator last, const Function &f)
 Uses default context. More...
 
template<typename Range , typename Function >
void tbb::parallel_for_each (Range &rng, const Function &f)
 Uses default context. More...
 
template<typename Range , typename Function >
void tbb::parallel_for_each (const Range &rng, const Function &f)
 Uses default context. More...
 

parallel_invoke

template<typename F0 , typename F1 >
void tbb::parallel_invoke (const F0 &f0, const F1 &f1, tbb::task_group_context &context)
 Executes a list of tasks in parallel and waits for all tasks to complete. More...
 
template<typename F0 , typename F1 , typename F2 >
void tbb::parallel_invoke (const F0 &f0, const F1 &f1, const F2 &f2, tbb::task_group_context &context)
 
template<typename F0 , typename F1 , typename F2 , typename F3 >
void tbb::parallel_invoke (const F0 &f0, const F1 &f1, const F2 &f2, const F3 &f3, tbb::task_group_context &context)
 
template<typename F0 , typename F1 , typename F2 , typename F3 , typename F4 >
void tbb::parallel_invoke (const F0 &f0, const F1 &f1, const F2 &f2, const F3 &f3, const F4 &f4, tbb::task_group_context &context)
 
template<typename F0 , typename F1 , typename F2 , typename F3 , typename F4 , typename F5 >
void tbb::parallel_invoke (const F0 &f0, const F1 &f1, const F2 &f2, const F3 &f3, const F4 &f4, const F5 &f5, tbb::task_group_context &context)
 
template<typename F0 , typename F1 , typename F2 , typename F3 , typename F4 , typename F5 , typename F6 >
void tbb::parallel_invoke (const F0 &f0, const F1 &f1, const F2 &f2, const F3 &f3, const F4 &f4, const F5 &f5, const F6 &f6, tbb::task_group_context &context)
 
template<typename F0 , typename F1 , typename F2 , typename F3 , typename F4 , typename F5 , typename F6 , typename F7 >
void tbb::parallel_invoke (const F0 &f0, const F1 &f1, const F2 &f2, const F3 &f3, const F4 &f4, const F5 &f5, const F6 &f6, const F7 &f7, tbb::task_group_context &context)
 
template<typename F0 , typename F1 , typename F2 , typename F3 , typename F4 , typename F5 , typename F6 , typename F7 , typename F8 >
void tbb::parallel_invoke (const F0 &f0, const F1 &f1, const F2 &f2, const F3 &f3, const F4 &f4, const F5 &f5, const F6 &f6, const F7 &f7, const F8 &f8, tbb::task_group_context &context)
 
template<typename F0 , typename F1 , typename F2 , typename F3 , typename F4 , typename F5 , typename F6 , typename F7 , typename F8 , typename F9 >
void tbb::parallel_invoke (const F0 &f0, const F1 &f1, const F2 &f2, const F3 &f3, const F4 &f4, const F5 &f5, const F6 &f6, const F7 &f7, const F8 &f8, const F9 &f9, tbb::task_group_context &context)
 
template<typename F0 , typename F1 >
void tbb::parallel_invoke (const F0 &f0, const F1 &f1)
 
template<typename F0 , typename F1 , typename F2 >
void tbb::parallel_invoke (const F0 &f0, const F1 &f1, const F2 &f2)
 
template<typename F0 , typename F1 , typename F2 , typename F3 >
void tbb::parallel_invoke (const F0 &f0, const F1 &f1, const F2 &f2, const F3 &f3)
 
template<typename F0 , typename F1 , typename F2 , typename F3 , typename F4 >
void tbb::parallel_invoke (const F0 &f0, const F1 &f1, const F2 &f2, const F3 &f3, const F4 &f4)
 
template<typename F0 , typename F1 , typename F2 , typename F3 , typename F4 , typename F5 >
void tbb::parallel_invoke (const F0 &f0, const F1 &f1, const F2 &f2, const F3 &f3, const F4 &f4, const F5 &f5)
 
template<typename F0 , typename F1 , typename F2 , typename F3 , typename F4 , typename F5 , typename F6 >
void tbb::parallel_invoke (const F0 &f0, const F1 &f1, const F2 &f2, const F3 &f3, const F4 &f4, const F5 &f5, const F6 &f6)
 
template<typename F0 , typename F1 , typename F2 , typename F3 , typename F4 , typename F5 , typename F6 , typename F7 >
void tbb::parallel_invoke (const F0 &f0, const F1 &f1, const F2 &f2, const F3 &f3, const F4 &f4, const F5 &f5, const F6 &f6, const F7 &f7)
 
template<typename F0 , typename F1 , typename F2 , typename F3 , typename F4 , typename F5 , typename F6 , typename F7 , typename F8 >
void tbb::parallel_invoke (const F0 &f0, const F1 &f1, const F2 &f2, const F3 &f3, const F4 &f4, const F5 &f5, const F6 &f6, const F7 &f7, const F8 &f8)
 
template<typename F0 , typename F1 , typename F2 , typename F3 , typename F4 , typename F5 , typename F6 , typename F7 , typename F8 , typename F9 >
void tbb::parallel_invoke (const F0 &f0, const F1 &f1, const F2 &f2, const F3 &f3, const F4 &f4, const F5 &f5, const F6 &f6, const F7 &f7, const F8 &f8, const F9 &f9)
 

parallel_reduce

See also requirements on Range and parallel_reduce Body.

template<typename Range , typename Body >
void tbb::parallel_reduce (const Range &range, Body &body)
 Parallel iteration with reduction and default partitioner. More...
 
template<typename Range , typename Body >
void tbb::parallel_reduce (const Range &range, Body &body, const simple_partitioner &partitioner)
 Parallel iteration with reduction and simple_partitioner. More...
 
template<typename Range , typename Body >
void tbb::parallel_reduce (const Range &range, Body &body, const auto_partitioner &partitioner)
 Parallel iteration with reduction and auto_partitioner. More...
 
template<typename Range , typename Body >
void tbb::parallel_reduce (const Range &range, Body &body, const static_partitioner &partitioner)
 Parallel iteration with reduction and static_partitioner. More...
 
template<typename Range , typename Body >
void tbb::parallel_reduce (const Range &range, Body &body, affinity_partitioner &partitioner)
 Parallel iteration with reduction and affinity_partitioner. More...
 
template<typename Range , typename Body >
void tbb::parallel_reduce (const Range &range, Body &body, task_group_context &context)
 Parallel iteration with reduction, default partitioner and user-supplied context. More...
 
template<typename Range , typename Body >
void tbb::parallel_reduce (const Range &range, Body &body, const simple_partitioner &partitioner, task_group_context &context)
 Parallel iteration with reduction, simple partitioner and user-supplied context. More...
 
template<typename Range , typename Body >
void tbb::parallel_reduce (const Range &range, Body &body, const auto_partitioner &partitioner, task_group_context &context)
 Parallel iteration with reduction, auto_partitioner and user-supplied context. More...
 
template<typename Range , typename Body >
void tbb::parallel_reduce (const Range &range, Body &body, const static_partitioner &partitioner, task_group_context &context)
 Parallel iteration with reduction, static_partitioner and user-supplied context. More...
 
template<typename Range , typename Body >
void tbb::parallel_reduce (const Range &range, Body &body, affinity_partitioner &partitioner, task_group_context &context)
 Parallel iteration with reduction, affinity_partitioner and user-supplied context. More...
 
template<typename Range , typename Value , typename RealBody , typename Reduction >
Value tbb::parallel_reduce (const Range &range, const Value &identity, const RealBody &real_body, const Reduction &reduction)
 Parallel iteration with reduction and default partitioner. More...
 
template<typename Range , typename Value , typename RealBody , typename Reduction >
Value tbb::parallel_reduce (const Range &range, const Value &identity, const RealBody &real_body, const Reduction &reduction, const simple_partitioner &partitioner)
 Parallel iteration with reduction and simple_partitioner. More...
 
template<typename Range , typename Value , typename RealBody , typename Reduction >
Value tbb::parallel_reduce (const Range &range, const Value &identity, const RealBody &real_body, const Reduction &reduction, const auto_partitioner &partitioner)
 Parallel iteration with reduction and auto_partitioner. More...
 
template<typename Range , typename Value , typename RealBody , typename Reduction >
Value tbb::parallel_reduce (const Range &range, const Value &identity, const RealBody &real_body, const Reduction &reduction, const static_partitioner &partitioner)
 Parallel iteration with reduction and static_partitioner. More...
 
template<typename Range , typename Value , typename RealBody , typename Reduction >
Value tbb::parallel_reduce (const Range &range, const Value &identity, const RealBody &real_body, const Reduction &reduction, affinity_partitioner &partitioner)
 Parallel iteration with reduction and affinity_partitioner. More...
 
template<typename Range , typename Value , typename RealBody , typename Reduction >
Value tbb::parallel_reduce (const Range &range, const Value &identity, const RealBody &real_body, const Reduction &reduction, task_group_context &context)
 Parallel iteration with reduction, default partitioner and user-supplied context. More...
 
template<typename Range , typename Value , typename RealBody , typename Reduction >
Value tbb::parallel_reduce (const Range &range, const Value &identity, const RealBody &real_body, const Reduction &reduction, const simple_partitioner &partitioner, task_group_context &context)
 Parallel iteration with reduction, simple partitioner and user-supplied context. More...
 
template<typename Range , typename Value , typename RealBody , typename Reduction >
Value tbb::parallel_reduce (const Range &range, const Value &identity, const RealBody &real_body, const Reduction &reduction, const auto_partitioner &partitioner, task_group_context &context)
 Parallel iteration with reduction, auto_partitioner and user-supplied context. More...
 
template<typename Range , typename Value , typename RealBody , typename Reduction >
Value tbb::parallel_reduce (const Range &range, const Value &identity, const RealBody &real_body, const Reduction &reduction, const static_partitioner &partitioner, task_group_context &context)
 Parallel iteration with reduction, static_partitioner and user-supplied context. More...
 
template<typename Range , typename Value , typename RealBody , typename Reduction >
Value tbb::parallel_reduce (const Range &range, const Value &identity, const RealBody &real_body, const Reduction &reduction, affinity_partitioner &partitioner, task_group_context &context)
 Parallel iteration with reduction, affinity_partitioner and user-supplied context. More...
 
template<typename Range , typename Body >
void tbb::parallel_deterministic_reduce (const Range &range, Body &body)
 Parallel iteration with deterministic reduction and default simple partitioner. More...
 
template<typename Range , typename Body >
void tbb::parallel_deterministic_reduce (const Range &range, Body &body, const simple_partitioner &partitioner)
 Parallel iteration with deterministic reduction and simple partitioner. More...
 
template<typename Range , typename Body >
void tbb::parallel_deterministic_reduce (const Range &range, Body &body, const static_partitioner &partitioner)
 Parallel iteration with deterministic reduction and static partitioner. More...
 
template<typename Range , typename Body >
void tbb::parallel_deterministic_reduce (const Range &range, Body &body, task_group_context &context)
 Parallel iteration with deterministic reduction, default simple partitioner and user-supplied context. More...
 
template<typename Range , typename Body >
void tbb::parallel_deterministic_reduce (const Range &range, Body &body, const simple_partitioner &partitioner, task_group_context &context)
 Parallel iteration with deterministic reduction, simple partitioner and user-supplied context. More...
 
template<typename Range , typename Body >
void tbb::parallel_deterministic_reduce (const Range &range, Body &body, const static_partitioner &partitioner, task_group_context &context)
 Parallel iteration with deterministic reduction, static partitioner and user-supplied context. More...
 
template<typename Range , typename Value , typename RealBody , typename Reduction >
Value tbb::parallel_deterministic_reduce (const Range &range, const Value &identity, const RealBody &real_body, const Reduction &reduction)
 Parallel iteration with deterministic reduction and default simple partitioner. More...
 
template<typename Range , typename Value , typename RealBody , typename Reduction >
Value tbb::parallel_deterministic_reduce (const Range &range, const Value &identity, const RealBody &real_body, const Reduction &reduction, const simple_partitioner &partitioner)
 Parallel iteration with deterministic reduction and simple partitioner. More...
 
template<typename Range , typename Value , typename RealBody , typename Reduction >
Value tbb::parallel_deterministic_reduce (const Range &range, const Value &identity, const RealBody &real_body, const Reduction &reduction, const static_partitioner &partitioner)
 Parallel iteration with deterministic reduction and static partitioner. More...
 
template<typename Range , typename Value , typename RealBody , typename Reduction >
Value tbb::parallel_deterministic_reduce (const Range &range, const Value &identity, const RealBody &real_body, const Reduction &reduction, task_group_context &context)
 Parallel iteration with deterministic reduction, default simple partitioner and user-supplied context. More...
 
template<typename Range , typename Value , typename RealBody , typename Reduction >
Value tbb::parallel_deterministic_reduce (const Range &range, const Value &identity, const RealBody &real_body, const Reduction &reduction, const simple_partitioner &partitioner, task_group_context &context)
 Parallel iteration with deterministic reduction, simple partitioner and user-supplied context. More...
 
template<typename Range , typename Value , typename RealBody , typename Reduction >
Value tbb::parallel_deterministic_reduce (const Range &range, const Value &identity, const RealBody &real_body, const Reduction &reduction, const static_partitioner &partitioner, task_group_context &context)
 Parallel iteration with deterministic reduction, static partitioner and user-supplied context. More...
 

parallel_scan

See also requirements on Range and parallel_scan Body.

template<typename Range , typename Body >
void tbb::parallel_scan (const Range &range, Body &body)
 Parallel prefix with default partitioner. More...
 
template<typename Range , typename Body >
void tbb::parallel_scan (const Range &range, Body &body, const simple_partitioner &partitioner)
 Parallel prefix with simple_partitioner. More...
 
template<typename Range , typename Body >
void tbb::parallel_scan (const Range &range, Body &body, const auto_partitioner &partitioner)
 Parallel prefix with auto_partitioner. More...
 
template<typename Range , typename Value , typename Scan , typename ReverseJoin >
Value tbb::parallel_scan (const Range &range, const Value &identity, const Scan &scan, const ReverseJoin &reverse_join)
 Parallel prefix with default partitioner. More...
 
template<typename Range , typename Value , typename Scan , typename ReverseJoin >
Value tbb::parallel_scan (const Range &range, const Value &identity, const Scan &scan, const ReverseJoin &reverse_join, const simple_partitioner &partitioner)
 Parallel prefix with simple_partitioner. More...
 
template<typename Range , typename Value , typename Scan , typename ReverseJoin >
Value tbb::parallel_scan (const Range &range, const Value &identity, const Scan &scan, const ReverseJoin &reverse_join, const auto_partitioner &partitioner)
 Parallel prefix with auto_partitioner. More...
 

parallel_sort

See also requirements on iterators for parallel_sort.

template<typename RandomAccessIterator , typename Compare >
void tbb::parallel_sort (RandomAccessIterator begin, RandomAccessIterator end, const Compare &comp)
 Sorts the data in [begin,end) using the given comparator. More...
 
template<typename RandomAccessIterator >
void tbb::parallel_sort (RandomAccessIterator begin, RandomAccessIterator end)
 Sorts the data in [begin,end) with a default comparator std::less<RandomAccessIterator> More...
 
template<typename Range , typename Compare >
void tbb::parallel_sort (Range &rng, const Compare &comp)
 Sorts the data in rng using the given comparator. More...
 
template<typename Range >
void tbb::parallel_sort (Range &rng)
 Sorts the data in rng with a default comparator std::less<RandomAccessIterator> More...
 
template<typename T >
void tbb::parallel_sort (T *begin, T *end)
 Sorts the data in the range [begin,end) with a default comparator std::less<T> More...
 

Detailed Description

Function Documentation

◆ parallel_deterministic_reduce() [1/12]

template<typename Range , typename Body >
void tbb::parallel_deterministic_reduce ( const Range &  range,
Body &  body 
)

Parallel iteration with deterministic reduction and default simple partitioner.

Definition at line 545 of file parallel_reduce.h.

References tbb::interface9::internal::start_deterministic_reduce< Range, Body, Partitioner >::run().

Referenced by tbb::parallel_deterministic_reduce().

545  {
546  internal::start_deterministic_reduce<Range, Body, const simple_partitioner>::run(range, body, simple_partitioner());
547 }
Here is the call graph for this function:
Here is the caller graph for this function:

◆ parallel_deterministic_reduce() [2/12]

template<typename Range , typename Body >
void tbb::parallel_deterministic_reduce ( const Range &  range,
Body &  body,
const simple_partitioner partitioner 
)

Parallel iteration with deterministic reduction and simple partitioner.

Definition at line 552 of file parallel_reduce.h.

References tbb::interface9::internal::start_deterministic_reduce< Range, Body, Partitioner >::run().

552  {
553  internal::start_deterministic_reduce<Range, Body, const simple_partitioner>::run(range, body, partitioner);
554 }
Here is the call graph for this function:

◆ parallel_deterministic_reduce() [3/12]

template<typename Range , typename Body >
void tbb::parallel_deterministic_reduce ( const Range &  range,
Body &  body,
const static_partitioner partitioner 
)

Parallel iteration with deterministic reduction and static partitioner.

Definition at line 559 of file parallel_reduce.h.

References tbb::interface9::internal::start_deterministic_reduce< Range, Body, Partitioner >::run().

559  {
560  internal::start_deterministic_reduce<Range, Body, const static_partitioner>::run(range, body, partitioner);
561 }
Here is the call graph for this function:

◆ parallel_deterministic_reduce() [4/12]

template<typename Range , typename Body >
void tbb::parallel_deterministic_reduce ( const Range &  range,
Body &  body,
task_group_context context 
)

Parallel iteration with deterministic reduction, default simple partitioner and user-supplied context.

Definition at line 567 of file parallel_reduce.h.

References tbb::interface9::internal::start_deterministic_reduce< Range, Body, Partitioner >::run().

567  {
568  internal::start_deterministic_reduce<Range,Body, const simple_partitioner>::run( range, body, simple_partitioner(), context );
569 }
Here is the call graph for this function:

◆ parallel_deterministic_reduce() [5/12]

template<typename Range , typename Body >
void tbb::parallel_deterministic_reduce ( const Range &  range,
Body &  body,
const simple_partitioner partitioner,
task_group_context context 
)

Parallel iteration with deterministic reduction, simple partitioner and user-supplied context.

Definition at line 574 of file parallel_reduce.h.

References tbb::interface9::internal::start_deterministic_reduce< Range, Body, Partitioner >::run().

574  {
575  internal::start_deterministic_reduce<Range, Body, const simple_partitioner>::run(range, body, partitioner, context);
576 }
Here is the call graph for this function:

◆ parallel_deterministic_reduce() [6/12]

template<typename Range , typename Body >
void tbb::parallel_deterministic_reduce ( const Range &  range,
Body &  body,
const static_partitioner partitioner,
task_group_context context 
)

Parallel iteration with deterministic reduction, static partitioner and user-supplied context.

Definition at line 581 of file parallel_reduce.h.

References tbb::interface9::internal::start_deterministic_reduce< Range, Body, Partitioner >::run().

581  {
582  internal::start_deterministic_reduce<Range, Body, const static_partitioner>::run(range, body, partitioner, context);
583 }
Here is the call graph for this function:

◆ parallel_deterministic_reduce() [7/12]

template<typename Range , typename Value , typename RealBody , typename Reduction >
Value tbb::parallel_deterministic_reduce ( const Range &  range,
const Value &  identity,
const RealBody &  real_body,
const Reduction &  reduction 
)

Parallel iteration with deterministic reduction and default simple partitioner.

parallel_reduce overloads that work with anonymous function objects (see also requirements on parallel_reduce anonymous function objects).

Definition at line 593 of file parallel_reduce.h.

References tbb::parallel_deterministic_reduce().

593  {
594  return parallel_deterministic_reduce(range, identity, real_body, reduction, simple_partitioner());
595 }
Value parallel_deterministic_reduce(const Range &range, const Value &identity, const RealBody &real_body, const Reduction &reduction, const static_partitioner &partitioner, task_group_context &context)
Parallel iteration with deterministic reduction, static partitioner and user-supplied context...
Here is the call graph for this function:

◆ parallel_deterministic_reduce() [8/12]

template<typename Range , typename Value , typename RealBody , typename Reduction >
Value tbb::parallel_deterministic_reduce ( const Range &  range,
const Value &  identity,
const RealBody &  real_body,
const Reduction &  reduction,
const simple_partitioner partitioner 
)

Parallel iteration with deterministic reduction and simple partitioner.

Definition at line 600 of file parallel_reduce.h.

600  {
601  internal::lambda_reduce_body<Range,Value,RealBody,Reduction> body(identity, real_body, reduction);
602  internal::start_deterministic_reduce<Range,internal::lambda_reduce_body<Range,Value,RealBody,Reduction>, const simple_partitioner>
603  ::run(range, body, partitioner);
604  return body.result();
605 }

◆ parallel_deterministic_reduce() [9/12]

template<typename Range , typename Value , typename RealBody , typename Reduction >
Value tbb::parallel_deterministic_reduce ( const Range &  range,
const Value &  identity,
const RealBody &  real_body,
const Reduction &  reduction,
const static_partitioner partitioner 
)

Parallel iteration with deterministic reduction and static partitioner.

Definition at line 610 of file parallel_reduce.h.

610  {
611  internal::lambda_reduce_body<Range, Value, RealBody, Reduction> body(identity, real_body, reduction);
612  internal::start_deterministic_reduce<Range, internal::lambda_reduce_body<Range, Value, RealBody, Reduction>, const static_partitioner>
613  ::run(range, body, partitioner);
614  return body.result();
615 }

◆ parallel_deterministic_reduce() [10/12]

template<typename Range , typename Value , typename RealBody , typename Reduction >
Value tbb::parallel_deterministic_reduce ( const Range &  range,
const Value &  identity,
const RealBody &  real_body,
const Reduction &  reduction,
task_group_context context 
)

Parallel iteration with deterministic reduction, default simple partitioner and user-supplied context.

Definition at line 620 of file parallel_reduce.h.

References tbb::parallel_deterministic_reduce().

621  {
622  return parallel_deterministic_reduce(range, identity, real_body, reduction, simple_partitioner(), context);
623 }
Value parallel_deterministic_reduce(const Range &range, const Value &identity, const RealBody &real_body, const Reduction &reduction, const static_partitioner &partitioner, task_group_context &context)
Parallel iteration with deterministic reduction, static partitioner and user-supplied context...
Here is the call graph for this function:

◆ parallel_deterministic_reduce() [11/12]

template<typename Range , typename Value , typename RealBody , typename Reduction >
Value tbb::parallel_deterministic_reduce ( const Range &  range,
const Value &  identity,
const RealBody &  real_body,
const Reduction &  reduction,
const simple_partitioner partitioner,
task_group_context context 
)

Parallel iteration with deterministic reduction, simple partitioner and user-supplied context.

Definition at line 628 of file parallel_reduce.h.

629  {
630  internal::lambda_reduce_body<Range, Value, RealBody, Reduction> body(identity, real_body, reduction);
631  internal::start_deterministic_reduce<Range, internal::lambda_reduce_body<Range, Value, RealBody, Reduction>, const simple_partitioner>
632  ::run(range, body, partitioner, context);
633  return body.result();
634 }

◆ parallel_deterministic_reduce() [12/12]

template<typename Range , typename Value , typename RealBody , typename Reduction >
Value tbb::parallel_deterministic_reduce ( const Range &  range,
const Value &  identity,
const RealBody &  real_body,
const Reduction &  reduction,
const static_partitioner partitioner,
task_group_context context 
)

Parallel iteration with deterministic reduction, static partitioner and user-supplied context.

Definition at line 639 of file parallel_reduce.h.

640  {
641  internal::lambda_reduce_body<Range, Value, RealBody, Reduction> body(identity, real_body, reduction);
642  internal::start_deterministic_reduce<Range, internal::lambda_reduce_body<Range, Value, RealBody, Reduction>, const static_partitioner>
643  ::run(range, body, partitioner, context);
644  return body.result();
645 }

◆ parallel_do() [1/6]

template<typename Iterator , typename Body >
void tbb::parallel_do ( Iterator  first,
Iterator  last,
const Body &  body 
)

Parallel iteration over a range, with optional addition of more work.

Definition at line 494 of file parallel_do.h.

References __TBB_TASK_GROUP_CONTEXT, and tbb::interface9::internal::select_parallel_do().

Referenced by tbb::internal::parallel_for_each_impl< Iterator, Function, Generic >::doit(), and tbb::parallel_do().

495 {
496  if ( first == last )
497  return;
498 #if __TBB_TASK_GROUP_CONTEXT
499  task_group_context context(internal::PARALLEL_DO);
500 #endif
501  interface9::internal::select_parallel_do( first, last, body, &Body::operator()
503  , context
504 #endif
505  );
506 }
auto last(Container &c) -> decltype(begin(c))
auto first(Container &c) -> decltype(begin(c))
void select_parallel_do(Iterator first, Iterator last, const Body &body, void(Body::*)(Item, parallel_do_feeder< _Item > &) const, task_group_context &context)
For internal use only.
Definition: parallel_do.h:452
#define __TBB_TASK_GROUP_CONTEXT
Definition: tbb_config.h:545
Here is the call graph for this function:
Here is the caller graph for this function:

◆ parallel_do() [2/6]

template<typename Range , typename Body >
void tbb::parallel_do ( Range &  rng,
const Body &  body 
)

Definition at line 509 of file parallel_do.h.

References tbb::internal::first(), tbb::internal::last(), and tbb::parallel_do().

509  {
511 }
void parallel_do(const Range &rng, const Body &body, task_group_context &context)
Definition: parallel_do.h:535
auto last(Container &c) -> decltype(begin(c))
auto first(Container &c) -> decltype(begin(c))
Here is the call graph for this function:

◆ parallel_do() [3/6]

template<typename Range , typename Body >
void tbb::parallel_do ( const Range &  rng,
const Body &  body 
)

Definition at line 514 of file parallel_do.h.

References tbb::internal::first(), tbb::internal::last(), and tbb::parallel_do().

514  {
516 }
void parallel_do(const Range &rng, const Body &body, task_group_context &context)
Definition: parallel_do.h:535
auto last(Container &c) -> decltype(begin(c))
auto first(Container &c) -> decltype(begin(c))
Here is the call graph for this function:

◆ parallel_do() [4/6]

template<typename Iterator , typename Body >
void tbb::parallel_do ( Iterator  first,
Iterator  last,
const Body &  body,
task_group_context context 
)

Parallel iteration over a range, with optional addition of more work and user-supplied context.

Definition at line 522 of file parallel_do.h.

References tbb::interface9::internal::select_parallel_do().

523 {
524  if ( first == last )
525  return;
526  interface9::internal::select_parallel_do( first, last, body, &Body::operator(), context );
527 }
auto last(Container &c) -> decltype(begin(c))
auto first(Container &c) -> decltype(begin(c))
void select_parallel_do(Iterator first, Iterator last, const Body &body, void(Body::*)(Item, parallel_do_feeder< _Item > &) const, task_group_context &context)
For internal use only.
Definition: parallel_do.h:452
Here is the call graph for this function:

◆ parallel_do() [5/6]

template<typename Range , typename Body >
void tbb::parallel_do ( Range &  rng,
const Body &  body,
task_group_context context 
)

Definition at line 530 of file parallel_do.h.

References tbb::internal::first(), tbb::internal::last(), and tbb::parallel_do().

530  {
531  parallel_do(tbb::internal::first(rng), tbb::internal::last(rng), body, context);
532 }
void parallel_do(const Range &rng, const Body &body, task_group_context &context)
Definition: parallel_do.h:535
auto last(Container &c) -> decltype(begin(c))
auto first(Container &c) -> decltype(begin(c))
Here is the call graph for this function:

◆ parallel_do() [6/6]

template<typename Range , typename Body >
void tbb::parallel_do ( const Range &  rng,
const Body &  body,
task_group_context context 
)

Definition at line 535 of file parallel_do.h.

References tbb::internal::first(), tbb::internal::last(), and tbb::parallel_do().

535  {
536  parallel_do(tbb::internal::first(rng), tbb::internal::last(rng), body, context);
537 }
void parallel_do(const Range &rng, const Body &body, task_group_context &context)
Definition: parallel_do.h:535
auto last(Container &c) -> decltype(begin(c))
auto first(Container &c) -> decltype(begin(c))
Here is the call graph for this function:

◆ parallel_for() [1/15]

template<typename Range , typename Body >
void tbb::serial::interface9::parallel_for ( const Range &  range,
const Body &  body 
)

Parallel iteration over range with default partitioner.

Definition at line 97 of file serial/tbb/parallel_for.h.

References __TBB_DEFAULT_PARTITIONER, and tbb::serial::interface9::start_for< Range, Body, Partitioner >::run().

Referenced by tbb::serial::interface9::parallel_for().

97  {
98  serial::interface9::start_for<Range,Body,const __TBB_DEFAULT_PARTITIONER>::run(range,body,__TBB_DEFAULT_PARTITIONER());
99 }
#define __TBB_DEFAULT_PARTITIONER
Definition: tbb_config.h:596
Here is the call graph for this function:
Here is the caller graph for this function:

◆ parallel_for() [2/15]

template<typename Range , typename Body >
void tbb::serial::interface9::parallel_for ( const Range &  range,
const Body &  body,
const simple_partitioner partitioner 
)

Parallel iteration over range with simple partitioner.

Definition at line 104 of file serial/tbb/parallel_for.h.

References tbb::serial::interface9::start_for< Range, Body, Partitioner >::run().

104  {
105  serial::interface9::start_for<Range,Body,const simple_partitioner>::run(range,body,partitioner);
106 }
Here is the call graph for this function:

◆ parallel_for() [3/15]

template<typename Range , typename Body >
void tbb::serial::interface9::parallel_for ( const Range &  range,
const Body &  body,
const auto_partitioner partitioner 
)

Parallel iteration over range with auto_partitioner.

Definition at line 111 of file serial/tbb/parallel_for.h.

References tbb::serial::interface9::start_for< Range, Body, Partitioner >::run().

111  {
112  serial::interface9::start_for<Range,Body,const auto_partitioner>::run(range,body,partitioner);
113 }
Here is the call graph for this function:

◆ parallel_for() [4/15]

template<typename Range , typename Body >
void tbb::serial::interface9::parallel_for ( const Range &  range,
const Body &  body,
const static_partitioner partitioner 
)

Parallel iteration over range with static_partitioner.

Definition at line 118 of file serial/tbb/parallel_for.h.

References tbb::serial::interface9::start_for< Range, Body, Partitioner >::run().

118  {
119  serial::interface9::start_for<Range,Body,const static_partitioner>::run(range,body,partitioner);
120 }
Here is the call graph for this function:

◆ parallel_for() [5/15]

template<typename Range , typename Body >
void tbb::serial::interface9::parallel_for ( const Range &  range,
const Body &  body,
affinity_partitioner partitioner 
)

Parallel iteration over range with affinity_partitioner.

Definition at line 125 of file serial/tbb/parallel_for.h.

References tbb::serial::interface9::start_for< Range, Body, Partitioner >::run().

125  {
126  serial::interface9::start_for<Range,Body,affinity_partitioner>::run(range,body,partitioner);
127 }
Here is the call graph for this function:

◆ parallel_for() [6/15]

template<typename Range , typename Body >
void tbb::parallel_for ( const Range &  range,
const Body &  body 
)

Parallel iteration over range with default partitioner.

Definition at line 197 of file tbb/parallel_for.h.

References __TBB_DEFAULT_PARTITIONER, and tbb::interface9::internal::start_for< Range, Body, Partitioner >::run().

Referenced by tbb::internal::parallel_for_each_impl< Iterator, Function, std::random_access_iterator_tag >::doit(), tbb::strict_ppl::parallel_for_impl(), and tbb::interface9::internal::parallel_quick_sort().

197  {
198  internal::start_for<Range,Body,const __TBB_DEFAULT_PARTITIONER>::run(range,body,__TBB_DEFAULT_PARTITIONER());
199 }
#define __TBB_DEFAULT_PARTITIONER
Definition: tbb_config.h:596
Here is the call graph for this function:
Here is the caller graph for this function:

◆ parallel_for() [7/15]

template<typename Range , typename Body >
void tbb::parallel_for ( const Range &  range,
const Body &  body,
const simple_partitioner partitioner 
)

Parallel iteration over range with simple partitioner.

Definition at line 204 of file tbb/parallel_for.h.

References tbb::interface9::internal::start_for< Range, Body, Partitioner >::run().

204  {
205  internal::start_for<Range,Body,const simple_partitioner>::run(range,body,partitioner);
206 }
Here is the call graph for this function:

◆ parallel_for() [8/15]

template<typename Range , typename Body >
void tbb::parallel_for ( const Range &  range,
const Body &  body,
const auto_partitioner partitioner 
)

Parallel iteration over range with auto_partitioner.

Definition at line 211 of file tbb/parallel_for.h.

References tbb::interface9::internal::start_for< Range, Body, Partitioner >::run().

211  {
212  internal::start_for<Range,Body,const auto_partitioner>::run(range,body,partitioner);
213 }
Here is the call graph for this function:

◆ parallel_for() [9/15]

template<typename Range , typename Body >
void tbb::parallel_for ( const Range &  range,
const Body &  body,
const static_partitioner partitioner 
)

Parallel iteration over range with static_partitioner.

Definition at line 218 of file tbb/parallel_for.h.

References tbb::interface9::internal::start_for< Range, Body, Partitioner >::run().

218  {
219  internal::start_for<Range,Body,const static_partitioner>::run(range,body,partitioner);
220 }
Here is the call graph for this function:

◆ parallel_for() [10/15]

template<typename Range , typename Body >
void tbb::parallel_for ( const Range &  range,
const Body &  body,
affinity_partitioner partitioner 
)

Parallel iteration over range with affinity_partitioner.

Definition at line 225 of file tbb/parallel_for.h.

References tbb::interface9::internal::start_for< Range, Body, Partitioner >::run().

225  {
226  internal::start_for<Range,Body,affinity_partitioner>::run(range,body,partitioner);
227 }
Here is the call graph for this function:

◆ parallel_for() [11/15]

template<typename Range , typename Body >
void tbb::parallel_for ( const Range &  range,
const Body &  body,
task_group_context context 
)

Parallel iteration over range with default partitioner and user-supplied context.

Definition at line 233 of file tbb/parallel_for.h.

References __TBB_DEFAULT_PARTITIONER, and tbb::interface9::internal::start_for< Range, Body, Partitioner >::run().

233  {
234  internal::start_for<Range,Body,const __TBB_DEFAULT_PARTITIONER>::run(range, body, __TBB_DEFAULT_PARTITIONER(), context);
235 }
#define __TBB_DEFAULT_PARTITIONER
Definition: tbb_config.h:596
Here is the call graph for this function:

◆ parallel_for() [12/15]

template<typename Range , typename Body >
void tbb::parallel_for ( const Range &  range,
const Body &  body,
const simple_partitioner partitioner,
task_group_context context 
)

Parallel iteration over range with simple partitioner and user-supplied context.

Definition at line 240 of file tbb/parallel_for.h.

References tbb::interface9::internal::start_for< Range, Body, Partitioner >::run().

240  {
241  internal::start_for<Range,Body,const simple_partitioner>::run(range, body, partitioner, context);
242 }
Here is the call graph for this function:

◆ parallel_for() [13/15]

template<typename Range , typename Body >
void tbb::parallel_for ( const Range &  range,
const Body &  body,
const auto_partitioner partitioner,
task_group_context context 
)

Parallel iteration over range with auto_partitioner and user-supplied context.

Definition at line 247 of file tbb/parallel_for.h.

References tbb::interface9::internal::start_for< Range, Body, Partitioner >::run().

247  {
248  internal::start_for<Range,Body,const auto_partitioner>::run(range, body, partitioner, context);
249 }
Here is the call graph for this function:

◆ parallel_for() [14/15]

template<typename Range , typename Body >
void tbb::parallel_for ( const Range &  range,
const Body &  body,
const static_partitioner partitioner,
task_group_context context 
)

Parallel iteration over range with static_partitioner and user-supplied context.

Definition at line 254 of file tbb/parallel_for.h.

References tbb::interface9::internal::start_for< Range, Body, Partitioner >::run().

254  {
255  internal::start_for<Range,Body,const static_partitioner>::run(range, body, partitioner, context);
256 }
Here is the call graph for this function:

◆ parallel_for() [15/15]

template<typename Range , typename Body >
void tbb::parallel_for ( const Range &  range,
const Body &  body,
affinity_partitioner partitioner,
task_group_context context 
)

Parallel iteration over range with affinity_partitioner and user-supplied context.

Definition at line 261 of file tbb/parallel_for.h.

References tbb::interface9::internal::start_for< Range, Body, Partitioner >::run().

261  {
262  internal::start_for<Range,Body,affinity_partitioner>::run(range,body,partitioner, context);
263 }
Here is the call graph for this function:

◆ parallel_for_each() [1/6]

template<typename Iterator , typename Function >
void tbb::parallel_for_each ( Iterator  first,
Iterator  last,
const Function &  f,
task_group_context context 
)

Calls function f for all items from [first, last) interval using user-supplied context.

Definition at line 92 of file parallel_for_each.h.

Referenced by tbb::parallel_for_each().

92  {
93  internal::parallel_for_each_impl<Iterator, Function, typename std::iterator_traits<Iterator>::iterator_category>::doit(first, last, f, context);
94 }
auto last(Container &c) -> decltype(begin(c))
auto first(Container &c) -> decltype(begin(c))
Here is the caller graph for this function:

◆ parallel_for_each() [2/6]

template<typename Range , typename Function >
void tbb::parallel_for_each ( Range &  rng,
const Function &  f,
task_group_context context 
)

Calls function f for all items from rng using user-supplied context.

Definition at line 99 of file parallel_for_each.h.

References tbb::internal::first(), tbb::internal::last(), and tbb::parallel_for_each().

99  {
101 }
auto last(Container &c) -> decltype(begin(c))
auto first(Container &c) -> decltype(begin(c))
void parallel_for_each(const Range &rng, const Function &f)
Uses default context.
Here is the call graph for this function:

◆ parallel_for_each() [3/6]

template<typename Range , typename Function >
void tbb::parallel_for_each ( const Range &  rng,
const Function &  f,
task_group_context context 
)

Calls function f for all items from const rng user-supplied context.

Definition at line 106 of file parallel_for_each.h.

References tbb::internal::first(), tbb::internal::last(), and tbb::parallel_for_each().

106  {
108 }
auto last(Container &c) -> decltype(begin(c))
auto first(Container &c) -> decltype(begin(c))
void parallel_for_each(const Range &rng, const Function &f)
Uses default context.
Here is the call graph for this function:

◆ parallel_for_each() [4/6]

template<typename Iterator , typename Function >
void tbb::parallel_for_each ( Iterator  first,
Iterator  last,
const Function &  f 
)

Uses default context.

Definition at line 113 of file parallel_for_each.h.

113  {
114  internal::parallel_for_each_impl<Iterator, Function, typename std::iterator_traits<Iterator>::iterator_category>::doit(first, last, f);
115 }
auto last(Container &c) -> decltype(begin(c))
auto first(Container &c) -> decltype(begin(c))

◆ parallel_for_each() [5/6]

template<typename Range , typename Function >
void tbb::parallel_for_each ( Range &  rng,
const Function &  f 
)

Uses default context.

Definition at line 119 of file parallel_for_each.h.

References tbb::internal::first(), tbb::internal::last(), and tbb::parallel_for_each().

119  {
121 }
auto last(Container &c) -> decltype(begin(c))
auto first(Container &c) -> decltype(begin(c))
void parallel_for_each(const Range &rng, const Function &f)
Uses default context.
Here is the call graph for this function:

◆ parallel_for_each() [6/6]

template<typename Range , typename Function >
void tbb::parallel_for_each ( const Range &  rng,
const Function &  f 
)

Uses default context.

Definition at line 125 of file parallel_for_each.h.

References tbb::internal::first(), tbb::internal::last(), and tbb::parallel_for_each().

125  {
127 }
auto last(Container &c) -> decltype(begin(c))
auto first(Container &c) -> decltype(begin(c))
void parallel_for_each(const Range &rng, const Function &f)
Uses default context.
Here is the call graph for this function:

◆ parallel_invoke() [1/18]

template<typename F0 , typename F1 >
void tbb::parallel_invoke ( const F0 &  f0,
const F1 &  f1,
tbb::task_group_context context 
)

Executes a list of tasks in parallel and waits for all tasks to complete.

Definition at line 254 of file parallel_invoke.h.

References tbb::internal::parallel_invoke_helper::add_children().

254  {
255  internal::parallel_invoke_cleaner cleaner(2, context);
256  internal::parallel_invoke_helper& root = cleaner.root;
257 
258  root.add_children(f1);
259 
260  root.run_and_finish(f0);
261 }
Here is the call graph for this function:

◆ parallel_invoke() [2/18]

template<typename F0 , typename F1 , typename F2 >
void tbb::parallel_invoke ( const F0 &  f0,
const F1 &  f1,
const F2 &  f2,
tbb::task_group_context context 
)

Definition at line 265 of file parallel_invoke.h.

References tbb::internal::parallel_invoke_helper::add_children().

265  {
266  internal::parallel_invoke_cleaner cleaner(3, context);
267  internal::parallel_invoke_helper& root = cleaner.root;
268 
269  root.add_children(f2);
270  root.add_children(f1);
271 
272  root.run_and_finish(f0);
273 }
Here is the call graph for this function:

◆ parallel_invoke() [3/18]

template<typename F0 , typename F1 , typename F2 , typename F3 >
void tbb::parallel_invoke ( const F0 &  f0,
const F1 &  f1,
const F2 &  f2,
const F3 &  f3,
tbb::task_group_context context 
)

Definition at line 277 of file parallel_invoke.h.

References tbb::internal::parallel_invoke_helper::add_children().

279 {
280  internal::parallel_invoke_cleaner cleaner(4, context);
281  internal::parallel_invoke_helper& root = cleaner.root;
282 
283  root.add_children(f3);
284  root.add_children(f2);
285  root.add_children(f1);
286 
287  root.run_and_finish(f0);
288 }
Here is the call graph for this function:

◆ parallel_invoke() [4/18]

template<typename F0 , typename F1 , typename F2 , typename F3 , typename F4 >
void tbb::parallel_invoke ( const F0 &  f0,
const F1 &  f1,
const F2 &  f2,
const F3 &  f3,
const F4 &  f4,
tbb::task_group_context context 
)

Definition at line 292 of file parallel_invoke.h.

References tbb::internal::parallel_invoke_helper::add_children().

294 {
295  internal::parallel_invoke_cleaner cleaner(3, context);
296  internal::parallel_invoke_helper& root = cleaner.root;
297 
298  root.add_children(f4, f3);
299  root.add_children(f2, f1);
300 
301  root.run_and_finish(f0);
302 }
Here is the call graph for this function:

◆ parallel_invoke() [5/18]

template<typename F0 , typename F1 , typename F2 , typename F3 , typename F4 , typename F5 >
void tbb::parallel_invoke ( const F0 &  f0,
const F1 &  f1,
const F2 &  f2,
const F3 &  f3,
const F4 &  f4,
const F5 &  f5,
tbb::task_group_context context 
)

Definition at line 306 of file parallel_invoke.h.

References tbb::internal::parallel_invoke_helper::add_children().

308 {
309  internal::parallel_invoke_cleaner cleaner(3, context);
310  internal::parallel_invoke_helper& root = cleaner.root;
311 
312  root.add_children(f5, f4, f3);
313  root.add_children(f2, f1);
314 
315  root.run_and_finish(f0);
316 }
Here is the call graph for this function:

◆ parallel_invoke() [6/18]

template<typename F0 , typename F1 , typename F2 , typename F3 , typename F4 , typename F5 , typename F6 >
void tbb::parallel_invoke ( const F0 &  f0,
const F1 &  f1,
const F2 &  f2,
const F3 &  f3,
const F4 &  f4,
const F5 &  f5,
const F6 &  f6,
tbb::task_group_context context 
)

Definition at line 320 of file parallel_invoke.h.

References tbb::internal::parallel_invoke_helper::add_children().

323 {
324  internal::parallel_invoke_cleaner cleaner(3, context);
325  internal::parallel_invoke_helper& root = cleaner.root;
326 
327  root.add_children(f6, f5, f4);
328  root.add_children(f3, f2, f1);
329 
330  root.run_and_finish(f0);
331 }
Here is the call graph for this function:

◆ parallel_invoke() [7/18]

template<typename F0 , typename F1 , typename F2 , typename F3 , typename F4 , typename F5 , typename F6 , typename F7 >
void tbb::parallel_invoke ( const F0 &  f0,
const F1 &  f1,
const F2 &  f2,
const F3 &  f3,
const F4 &  f4,
const F5 &  f5,
const F6 &  f6,
const F7 &  f7,
tbb::task_group_context context 
)

Definition at line 336 of file parallel_invoke.h.

References tbb::internal::parallel_invoke_helper::add_children().

339 {
340  internal::parallel_invoke_cleaner cleaner(4, context);
341  internal::parallel_invoke_helper& root = cleaner.root;
342 
343  root.add_children(f7, f6, f5);
344  root.add_children(f4, f3);
345  root.add_children(f2, f1);
346 
347  root.run_and_finish(f0);
348 }
Here is the call graph for this function:

◆ parallel_invoke() [8/18]

template<typename F0 , typename F1 , typename F2 , typename F3 , typename F4 , typename F5 , typename F6 , typename F7 , typename F8 >
void tbb::parallel_invoke ( const F0 &  f0,
const F1 &  f1,
const F2 &  f2,
const F3 &  f3,
const F4 &  f4,
const F5 &  f5,
const F6 &  f6,
const F7 &  f7,
const F8 &  f8,
tbb::task_group_context context 
)

Definition at line 353 of file parallel_invoke.h.

References tbb::internal::parallel_invoke_helper::add_children().

356 {
357  internal::parallel_invoke_cleaner cleaner(4, context);
358  internal::parallel_invoke_helper& root = cleaner.root;
359 
360  root.add_children(f8, f7, f6);
361  root.add_children(f5, f4, f3);
362  root.add_children(f2, f1);
363 
364  root.run_and_finish(f0);
365 }
Here is the call graph for this function:

◆ parallel_invoke() [9/18]

template<typename F0 , typename F1 , typename F2 , typename F3 , typename F4 , typename F5 , typename F6 , typename F7 , typename F8 , typename F9 >
void tbb::parallel_invoke ( const F0 &  f0,
const F1 &  f1,
const F2 &  f2,
const F3 &  f3,
const F4 &  f4,
const F5 &  f5,
const F6 &  f6,
const F7 &  f7,
const F8 &  f8,
const F9 &  f9,
tbb::task_group_context context 
)

Definition at line 370 of file parallel_invoke.h.

References tbb::internal::parallel_invoke_helper::add_children().

373 {
374  internal::parallel_invoke_cleaner cleaner(4, context);
375  internal::parallel_invoke_helper& root = cleaner.root;
376 
377  root.add_children(f9, f8, f7);
378  root.add_children(f6, f5, f4);
379  root.add_children(f3, f2, f1);
380 
381  root.run_and_finish(f0);
382 }
Here is the call graph for this function:

◆ parallel_invoke() [10/18]

template<typename F0 , typename F1 >
void tbb::parallel_invoke ( const F0 &  f0,
const F1 &  f1 
)

Definition at line 386 of file parallel_invoke.h.

386  {
387  task_group_context context(internal::PARALLEL_INVOKE);
388  parallel_invoke<F0, F1>(f0, f1, context);
389 }

◆ parallel_invoke() [11/18]

template<typename F0 , typename F1 , typename F2 >
void tbb::parallel_invoke ( const F0 &  f0,
const F1 &  f1,
const F2 &  f2 
)

Definition at line 392 of file parallel_invoke.h.

392  {
393  task_group_context context(internal::PARALLEL_INVOKE);
394  parallel_invoke<F0, F1, F2>(f0, f1, f2, context);
395 }

◆ parallel_invoke() [12/18]

template<typename F0 , typename F1 , typename F2 , typename F3 >
void tbb::parallel_invoke ( const F0 &  f0,
const F1 &  f1,
const F2 &  f2,
const F3 &  f3 
)

Definition at line 398 of file parallel_invoke.h.

398  {
399  task_group_context context(internal::PARALLEL_INVOKE);
400  parallel_invoke<F0, F1, F2, F3>(f0, f1, f2, f3, context);
401 }

◆ parallel_invoke() [13/18]

template<typename F0 , typename F1 , typename F2 , typename F3 , typename F4 >
void tbb::parallel_invoke ( const F0 &  f0,
const F1 &  f1,
const F2 &  f2,
const F3 &  f3,
const F4 &  f4 
)

Definition at line 404 of file parallel_invoke.h.

404  {
405  task_group_context context(internal::PARALLEL_INVOKE);
406  parallel_invoke<F0, F1, F2, F3, F4>(f0, f1, f2, f3, f4, context);
407 }

◆ parallel_invoke() [14/18]

template<typename F0 , typename F1 , typename F2 , typename F3 , typename F4 , typename F5 >
void tbb::parallel_invoke ( const F0 &  f0,
const F1 &  f1,
const F2 &  f2,
const F3 &  f3,
const F4 &  f4,
const F5 &  f5 
)

Definition at line 410 of file parallel_invoke.h.

410  {
411  task_group_context context(internal::PARALLEL_INVOKE);
412  parallel_invoke<F0, F1, F2, F3, F4, F5>(f0, f1, f2, f3, f4, f5, context);
413 }

◆ parallel_invoke() [15/18]

template<typename F0 , typename F1 , typename F2 , typename F3 , typename F4 , typename F5 , typename F6 >
void tbb::parallel_invoke ( const F0 &  f0,
const F1 &  f1,
const F2 &  f2,
const F3 &  f3,
const F4 &  f4,
const F5 &  f5,
const F6 &  f6 
)

Definition at line 416 of file parallel_invoke.h.

418 {
419  task_group_context context(internal::PARALLEL_INVOKE);
420  parallel_invoke<F0, F1, F2, F3, F4, F5, F6>(f0, f1, f2, f3, f4, f5, f6, context);
421 }

◆ parallel_invoke() [16/18]

template<typename F0 , typename F1 , typename F2 , typename F3 , typename F4 , typename F5 , typename F6 , typename F7 >
void tbb::parallel_invoke ( const F0 &  f0,
const F1 &  f1,
const F2 &  f2,
const F3 &  f3,
const F4 &  f4,
const F5 &  f5,
const F6 &  f6,
const F7 &  f7 
)

Definition at line 425 of file parallel_invoke.h.

427 {
428  task_group_context context(internal::PARALLEL_INVOKE);
429  parallel_invoke<F0, F1, F2, F3, F4, F5, F6, F7>(f0, f1, f2, f3, f4, f5, f6, f7, context);
430 }

◆ parallel_invoke() [17/18]

template<typename F0 , typename F1 , typename F2 , typename F3 , typename F4 , typename F5 , typename F6 , typename F7 , typename F8 >
void tbb::parallel_invoke ( const F0 &  f0,
const F1 &  f1,
const F2 &  f2,
const F3 &  f3,
const F4 &  f4,
const F5 &  f5,
const F6 &  f6,
const F7 &  f7,
const F8 &  f8 
)

Definition at line 434 of file parallel_invoke.h.

436 {
437  task_group_context context(internal::PARALLEL_INVOKE);
438  parallel_invoke<F0, F1, F2, F3, F4, F5, F6, F7, F8>(f0, f1, f2, f3, f4, f5, f6, f7, f8, context);
439 }

◆ parallel_invoke() [18/18]

template<typename F0 , typename F1 , typename F2 , typename F3 , typename F4 , typename F5 , typename F6 , typename F7 , typename F8 , typename F9 >
void tbb::parallel_invoke ( const F0 &  f0,
const F1 &  f1,
const F2 &  f2,
const F3 &  f3,
const F4 &  f4,
const F5 &  f5,
const F6 &  f6,
const F7 &  f7,
const F8 &  f8,
const F9 &  f9 
)

Definition at line 443 of file parallel_invoke.h.

445 {
446  task_group_context context(internal::PARALLEL_INVOKE);
447  parallel_invoke<F0, F1, F2, F3, F4, F5, F6, F7, F8, F9>(f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, context);
448 }

◆ parallel_quick_sort()

template<typename RandomAccessIterator , typename Compare >
void tbb::interface9::internal::parallel_quick_sort ( RandomAccessIterator  begin,
RandomAccessIterator  end,
const Compare &  comp 
)

Wrapper method to initiate the sort by calling parallel_for.

Definition at line 159 of file parallel_sort.h.

References __TBB_ASSERT, tbb::interface9::internal::quick_sort_range< RandomAccessIterator, Compare >::begin, tbb::interface9::internal::quick_sort_range< RandomAccessIterator, Compare >::comp, tbb::task_group_context::is_group_execution_cancelled(), and tbb::parallel_for().

Referenced by tbb::parallel_sort().

159  {
160 #if __TBB_TASK_GROUP_CONTEXT
161  task_group_context my_context(PARALLEL_SORT);
162  const int serial_cutoff = 9;
163 
164  __TBB_ASSERT( begin + serial_cutoff < end, "min_parallel_size is smaller than serial cutoff?" );
165  RandomAccessIterator k = begin;
166  for ( ; k != begin + serial_cutoff; ++k ) {
167  if ( comp( *(k+1), *k ) ) {
168  goto do_parallel_quick_sort;
169  }
170  }
171 
172  parallel_for( blocked_range<RandomAccessIterator>(k+1, end),
173  quick_sort_pretest_body<RandomAccessIterator,Compare>(comp),
174  auto_partitioner(),
175  my_context);
176 
177  if (my_context.is_group_execution_cancelled())
178 do_parallel_quick_sort:
179 #endif /* __TBB_TASK_GROUP_CONTEXT */
180  parallel_for( quick_sort_range<RandomAccessIterator,Compare>(begin, end-begin, comp ),
181  quick_sort_body<RandomAccessIterator,Compare>(),
182  auto_partitioner() );
183 }
void parallel_for(const Range &range, const Body &body)
Parallel iteration over range with default partitioner.
#define __TBB_ASSERT(predicate, comment)
No-op version of __TBB_ASSERT.
Definition: tbb_stddef.h:165
void const char const char int ITT_FORMAT __itt_group_sync x void const char ITT_FORMAT __itt_group_sync s void ITT_FORMAT __itt_group_sync p void ITT_FORMAT p void ITT_FORMAT p no args __itt_suppress_mode_t unsigned int void size_t ITT_FORMAT d void ITT_FORMAT p void ITT_FORMAT p __itt_model_site __itt_model_site_instance ITT_FORMAT p __itt_model_task __itt_model_task_instance ITT_FORMAT p void ITT_FORMAT p void ITT_FORMAT p void size_t ITT_FORMAT d void ITT_FORMAT p const wchar_t ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s no args void ITT_FORMAT p size_t ITT_FORMAT d no args const wchar_t const wchar_t ITT_FORMAT s __itt_heap_function void size_t int ITT_FORMAT d __itt_heap_function void ITT_FORMAT p __itt_heap_function void void size_t int ITT_FORMAT d no args no args unsigned int ITT_FORMAT u const __itt_domain __itt_id ITT_FORMAT lu const __itt_domain __itt_id __itt_id __itt_string_handle ITT_FORMAT p const __itt_domain __itt_id ITT_FORMAT p const __itt_domain __itt_id __itt_timestamp begin
void const char const char int ITT_FORMAT __itt_group_sync x void const char ITT_FORMAT __itt_group_sync s void ITT_FORMAT __itt_group_sync p void ITT_FORMAT p void ITT_FORMAT p no args __itt_suppress_mode_t unsigned int void size_t ITT_FORMAT d void ITT_FORMAT p void ITT_FORMAT p __itt_model_site __itt_model_site_instance ITT_FORMAT p __itt_model_task __itt_model_task_instance ITT_FORMAT p void ITT_FORMAT p void ITT_FORMAT p void size_t ITT_FORMAT d void ITT_FORMAT p const wchar_t ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s no args void ITT_FORMAT p size_t ITT_FORMAT d no args const wchar_t const wchar_t ITT_FORMAT s __itt_heap_function void size_t int ITT_FORMAT d __itt_heap_function void ITT_FORMAT p __itt_heap_function void void size_t int ITT_FORMAT d no args no args unsigned int ITT_FORMAT u const __itt_domain __itt_id ITT_FORMAT lu const __itt_domain __itt_id __itt_id __itt_string_handle ITT_FORMAT p const __itt_domain __itt_id ITT_FORMAT p const __itt_domain __itt_id __itt_timestamp __itt_timestamp end
Here is the call graph for this function:
Here is the caller graph for this function:

◆ parallel_reduce() [1/20]

template<typename Range , typename Body >
void tbb::parallel_reduce ( const Range &  range,
Body &  body 
)

Parallel iteration with reduction and default partitioner.

Definition at line 359 of file parallel_reduce.h.

References __TBB_DEFAULT_PARTITIONER, and tbb::interface9::internal::start_reduce< Range, Body, Partitioner >::run().

359  {
360  internal::start_reduce<Range,Body, const __TBB_DEFAULT_PARTITIONER>::run( range, body, __TBB_DEFAULT_PARTITIONER() );
361 }
#define __TBB_DEFAULT_PARTITIONER
Definition: tbb_config.h:596
Here is the call graph for this function:

◆ parallel_reduce() [2/20]

template<typename Range , typename Body >
void tbb::parallel_reduce ( const Range &  range,
Body &  body,
const simple_partitioner partitioner 
)

Parallel iteration with reduction and simple_partitioner.

Definition at line 366 of file parallel_reduce.h.

References tbb::interface9::internal::start_reduce< Range, Body, Partitioner >::run().

366  {
367  internal::start_reduce<Range,Body,const simple_partitioner>::run( range, body, partitioner );
368 }
Here is the call graph for this function:

◆ parallel_reduce() [3/20]

template<typename Range , typename Body >
void tbb::parallel_reduce ( const Range &  range,
Body &  body,
const auto_partitioner partitioner 
)

Parallel iteration with reduction and auto_partitioner.

Definition at line 373 of file parallel_reduce.h.

References tbb::interface9::internal::start_reduce< Range, Body, Partitioner >::run().

373  {
374  internal::start_reduce<Range,Body,const auto_partitioner>::run( range, body, partitioner );
375 }
Here is the call graph for this function:

◆ parallel_reduce() [4/20]

template<typename Range , typename Body >
void tbb::parallel_reduce ( const Range &  range,
Body &  body,
const static_partitioner partitioner 
)

Parallel iteration with reduction and static_partitioner.

Definition at line 380 of file parallel_reduce.h.

References tbb::interface9::internal::start_reduce< Range, Body, Partitioner >::run().

380  {
381  internal::start_reduce<Range,Body,const static_partitioner>::run( range, body, partitioner );
382 }
Here is the call graph for this function:

◆ parallel_reduce() [5/20]

template<typename Range , typename Body >
void tbb::parallel_reduce ( const Range &  range,
Body &  body,
affinity_partitioner partitioner 
)

Parallel iteration with reduction and affinity_partitioner.

Definition at line 387 of file parallel_reduce.h.

References tbb::interface9::internal::start_reduce< Range, Body, Partitioner >::run().

387  {
388  internal::start_reduce<Range,Body,affinity_partitioner>::run( range, body, partitioner );
389 }
Here is the call graph for this function:

◆ parallel_reduce() [6/20]

template<typename Range , typename Body >
void tbb::parallel_reduce ( const Range &  range,
Body &  body,
task_group_context context 
)

Parallel iteration with reduction, default partitioner and user-supplied context.

Definition at line 395 of file parallel_reduce.h.

References __TBB_DEFAULT_PARTITIONER, and tbb::interface9::internal::start_reduce< Range, Body, Partitioner >::run().

395  {
396  internal::start_reduce<Range,Body,const __TBB_DEFAULT_PARTITIONER>::run( range, body, __TBB_DEFAULT_PARTITIONER(), context );
397 }
#define __TBB_DEFAULT_PARTITIONER
Definition: tbb_config.h:596
Here is the call graph for this function:

◆ parallel_reduce() [7/20]

template<typename Range , typename Body >
void tbb::parallel_reduce ( const Range &  range,
Body &  body,
const simple_partitioner partitioner,
task_group_context context 
)

Parallel iteration with reduction, simple partitioner and user-supplied context.

Definition at line 402 of file parallel_reduce.h.

References tbb::interface9::internal::start_reduce< Range, Body, Partitioner >::run().

402  {
403  internal::start_reduce<Range,Body,const simple_partitioner>::run( range, body, partitioner, context );
404 }
Here is the call graph for this function:

◆ parallel_reduce() [8/20]

template<typename Range , typename Body >
void tbb::parallel_reduce ( const Range &  range,
Body &  body,
const auto_partitioner partitioner,
task_group_context context 
)

Parallel iteration with reduction, auto_partitioner and user-supplied context.

Definition at line 409 of file parallel_reduce.h.

References tbb::interface9::internal::start_reduce< Range, Body, Partitioner >::run().

409  {
410  internal::start_reduce<Range,Body,const auto_partitioner>::run( range, body, partitioner, context );
411 }
Here is the call graph for this function:

◆ parallel_reduce() [9/20]

template<typename Range , typename Body >
void tbb::parallel_reduce ( const Range &  range,
Body &  body,
const static_partitioner partitioner,
task_group_context context 
)

Parallel iteration with reduction, static_partitioner and user-supplied context.

Definition at line 416 of file parallel_reduce.h.

References tbb::interface9::internal::start_reduce< Range, Body, Partitioner >::run().

416  {
417  internal::start_reduce<Range,Body,const static_partitioner>::run( range, body, partitioner, context );
418 }
Here is the call graph for this function:

◆ parallel_reduce() [10/20]

template<typename Range , typename Body >
void tbb::parallel_reduce ( const Range &  range,
Body &  body,
affinity_partitioner partitioner,
task_group_context context 
)

Parallel iteration with reduction, affinity_partitioner and user-supplied context.

Definition at line 423 of file parallel_reduce.h.

References tbb::interface9::internal::start_reduce< Range, Body, Partitioner >::run().

423  {
424  internal::start_reduce<Range,Body,affinity_partitioner>::run( range, body, partitioner, context );
425 }
Here is the call graph for this function:

◆ parallel_reduce() [11/20]

template<typename Range , typename Value , typename RealBody , typename Reduction >
Value tbb::parallel_reduce ( const Range &  range,
const Value &  identity,
const RealBody &  real_body,
const Reduction &  reduction 
)

Parallel iteration with reduction and default partitioner.

parallel_reduce overloads that work with anonymous function objects (see also requirements on parallel_reduce anonymous function objects).

Definition at line 434 of file parallel_reduce.h.

References __TBB_DEFAULT_PARTITIONER.

434  {
435  internal::lambda_reduce_body<Range,Value,RealBody,Reduction> body(identity, real_body, reduction);
436  internal::start_reduce<Range,internal::lambda_reduce_body<Range,Value,RealBody,Reduction>,const __TBB_DEFAULT_PARTITIONER>
437  ::run(range, body, __TBB_DEFAULT_PARTITIONER() );
438  return body.result();
439 }
#define __TBB_DEFAULT_PARTITIONER
Definition: tbb_config.h:596

◆ parallel_reduce() [12/20]

template<typename Range , typename Value , typename RealBody , typename Reduction >
Value tbb::parallel_reduce ( const Range &  range,
const Value &  identity,
const RealBody &  real_body,
const Reduction &  reduction,
const simple_partitioner partitioner 
)

Parallel iteration with reduction and simple_partitioner.

Definition at line 444 of file parallel_reduce.h.

445  {
446  internal::lambda_reduce_body<Range,Value,RealBody,Reduction> body(identity, real_body, reduction);
447  internal::start_reduce<Range,internal::lambda_reduce_body<Range,Value,RealBody,Reduction>,const simple_partitioner>
448  ::run(range, body, partitioner );
449  return body.result();
450 }

◆ parallel_reduce() [13/20]

template<typename Range , typename Value , typename RealBody , typename Reduction >
Value tbb::parallel_reduce ( const Range &  range,
const Value &  identity,
const RealBody &  real_body,
const Reduction &  reduction,
const auto_partitioner partitioner 
)

Parallel iteration with reduction and auto_partitioner.

Definition at line 455 of file parallel_reduce.h.

456  {
457  internal::lambda_reduce_body<Range,Value,RealBody,Reduction> body(identity, real_body, reduction);
458  internal::start_reduce<Range,internal::lambda_reduce_body<Range,Value,RealBody,Reduction>,const auto_partitioner>
459  ::run( range, body, partitioner );
460  return body.result();
461 }

◆ parallel_reduce() [14/20]

template<typename Range , typename Value , typename RealBody , typename Reduction >
Value tbb::parallel_reduce ( const Range &  range,
const Value &  identity,
const RealBody &  real_body,
const Reduction &  reduction,
const static_partitioner partitioner 
)

Parallel iteration with reduction and static_partitioner.

Definition at line 466 of file parallel_reduce.h.

467  {
468  internal::lambda_reduce_body<Range,Value,RealBody,Reduction> body(identity, real_body, reduction);
469  internal::start_reduce<Range,internal::lambda_reduce_body<Range,Value,RealBody,Reduction>,const static_partitioner>
470  ::run( range, body, partitioner );
471  return body.result();
472 }

◆ parallel_reduce() [15/20]

template<typename Range , typename Value , typename RealBody , typename Reduction >
Value tbb::parallel_reduce ( const Range &  range,
const Value &  identity,
const RealBody &  real_body,
const Reduction &  reduction,
affinity_partitioner partitioner 
)

Parallel iteration with reduction and affinity_partitioner.

Definition at line 477 of file parallel_reduce.h.

478  {
479  internal::lambda_reduce_body<Range,Value,RealBody,Reduction> body(identity, real_body, reduction);
480  internal::start_reduce<Range,internal::lambda_reduce_body<Range,Value,RealBody,Reduction>,affinity_partitioner>
481  ::run( range, body, partitioner );
482  return body.result();
483 }

◆ parallel_reduce() [16/20]

template<typename Range , typename Value , typename RealBody , typename Reduction >
Value tbb::parallel_reduce ( const Range &  range,
const Value &  identity,
const RealBody &  real_body,
const Reduction &  reduction,
task_group_context context 
)

Parallel iteration with reduction, default partitioner and user-supplied context.

Definition at line 489 of file parallel_reduce.h.

References __TBB_DEFAULT_PARTITIONER.

490  {
491  internal::lambda_reduce_body<Range,Value,RealBody,Reduction> body(identity, real_body, reduction);
492  internal::start_reduce<Range,internal::lambda_reduce_body<Range,Value,RealBody,Reduction>,const __TBB_DEFAULT_PARTITIONER>
493  ::run( range, body, __TBB_DEFAULT_PARTITIONER(), context );
494  return body.result();
495 }
#define __TBB_DEFAULT_PARTITIONER
Definition: tbb_config.h:596

◆ parallel_reduce() [17/20]

template<typename Range , typename Value , typename RealBody , typename Reduction >
Value tbb::parallel_reduce ( const Range &  range,
const Value &  identity,
const RealBody &  real_body,
const Reduction &  reduction,
const simple_partitioner partitioner,
task_group_context context 
)

Parallel iteration with reduction, simple partitioner and user-supplied context.

Definition at line 500 of file parallel_reduce.h.

501  {
502  internal::lambda_reduce_body<Range,Value,RealBody,Reduction> body(identity, real_body, reduction);
503  internal::start_reduce<Range,internal::lambda_reduce_body<Range,Value,RealBody,Reduction>,const simple_partitioner>
504  ::run( range, body, partitioner, context );
505  return body.result();
506 }

◆ parallel_reduce() [18/20]

template<typename Range , typename Value , typename RealBody , typename Reduction >
Value tbb::parallel_reduce ( const Range &  range,
const Value &  identity,
const RealBody &  real_body,
const Reduction &  reduction,
const auto_partitioner partitioner,
task_group_context context 
)

Parallel iteration with reduction, auto_partitioner and user-supplied context.

Definition at line 511 of file parallel_reduce.h.

512  {
513  internal::lambda_reduce_body<Range,Value,RealBody,Reduction> body(identity, real_body, reduction);
514  internal::start_reduce<Range,internal::lambda_reduce_body<Range,Value,RealBody,Reduction>,const auto_partitioner>
515  ::run( range, body, partitioner, context );
516  return body.result();
517 }

◆ parallel_reduce() [19/20]

template<typename Range , typename Value , typename RealBody , typename Reduction >
Value tbb::parallel_reduce ( const Range &  range,
const Value &  identity,
const RealBody &  real_body,
const Reduction &  reduction,
const static_partitioner partitioner,
task_group_context context 
)

Parallel iteration with reduction, static_partitioner and user-supplied context.

Definition at line 522 of file parallel_reduce.h.

523  {
524  internal::lambda_reduce_body<Range,Value,RealBody,Reduction> body(identity, real_body, reduction);
525  internal::start_reduce<Range,internal::lambda_reduce_body<Range,Value,RealBody,Reduction>,const static_partitioner>
526  ::run( range, body, partitioner, context );
527  return body.result();
528 }

◆ parallel_reduce() [20/20]

template<typename Range , typename Value , typename RealBody , typename Reduction >
Value tbb::parallel_reduce ( const Range &  range,
const Value &  identity,
const RealBody &  real_body,
const Reduction &  reduction,
affinity_partitioner partitioner,
task_group_context context 
)

Parallel iteration with reduction, affinity_partitioner and user-supplied context.

Definition at line 533 of file parallel_reduce.h.

534  {
535  internal::lambda_reduce_body<Range,Value,RealBody,Reduction> body(identity, real_body, reduction);
536  internal::start_reduce<Range,internal::lambda_reduce_body<Range,Value,RealBody,Reduction>,affinity_partitioner>
537  ::run( range, body, partitioner, context );
538  return body.result();
539 }

◆ parallel_scan() [1/6]

template<typename Range , typename Body >
void tbb::parallel_scan ( const Range &  range,
Body &  body 
)

Parallel prefix with default partitioner.

Definition at line 360 of file parallel_scan.h.

References __TBB_DEFAULT_PARTITIONER, and tbb::internal::start_scan< Range, Body, Partitioner >::run().

Referenced by tbb::parallel_scan().

360  {
361  internal::start_scan<Range,Body,__TBB_DEFAULT_PARTITIONER>::run(range,body,__TBB_DEFAULT_PARTITIONER());
362 }
#define __TBB_DEFAULT_PARTITIONER
Definition: tbb_config.h:596
Here is the call graph for this function:
Here is the caller graph for this function:

◆ parallel_scan() [2/6]

template<typename Range , typename Body >
void tbb::parallel_scan ( const Range &  range,
Body &  body,
const simple_partitioner partitioner 
)

Parallel prefix with simple_partitioner.

Definition at line 367 of file parallel_scan.h.

References tbb::internal::start_scan< Range, Body, Partitioner >::run().

367  {
368  internal::start_scan<Range,Body,simple_partitioner>::run(range,body,partitioner);
369 }
Here is the call graph for this function:

◆ parallel_scan() [3/6]

template<typename Range , typename Body >
void tbb::parallel_scan ( const Range &  range,
Body &  body,
const auto_partitioner partitioner 
)

Parallel prefix with auto_partitioner.

Definition at line 374 of file parallel_scan.h.

References tbb::internal::start_scan< Range, Body, Partitioner >::run().

374  {
375  internal::start_scan<Range,Body,auto_partitioner>::run(range,body,partitioner);
376 }
Here is the call graph for this function:

◆ parallel_scan() [4/6]

template<typename Range , typename Value , typename Scan , typename ReverseJoin >
Value tbb::parallel_scan ( const Range &  range,
const Value &  identity,
const Scan &  scan,
const ReverseJoin &  reverse_join 
)

Parallel prefix with default partitioner.

Definition at line 381 of file parallel_scan.h.

References __TBB_DEFAULT_PARTITIONER, and tbb::parallel_scan().

381  {
382  internal::lambda_scan_body<Range, Value, Scan, ReverseJoin> body(identity, scan, reverse_join);
384  return body.result();
385 }
void parallel_scan(const Range &range, Body &body)
Parallel prefix with default partitioner.
#define __TBB_DEFAULT_PARTITIONER
Definition: tbb_config.h:596
Here is the call graph for this function:

◆ parallel_scan() [5/6]

template<typename Range , typename Value , typename Scan , typename ReverseJoin >
Value tbb::parallel_scan ( const Range &  range,
const Value &  identity,
const Scan &  scan,
const ReverseJoin &  reverse_join,
const simple_partitioner partitioner 
)

Parallel prefix with simple_partitioner.

Definition at line 390 of file parallel_scan.h.

References tbb::parallel_scan().

390  {
391  internal::lambda_scan_body<Range, Value, Scan, ReverseJoin> body(identity, scan, reverse_join);
392  tbb::parallel_scan(range,body,partitioner);
393  return body.result();
394 }
void parallel_scan(const Range &range, Body &body)
Parallel prefix with default partitioner.
Here is the call graph for this function:

◆ parallel_scan() [6/6]

template<typename Range , typename Value , typename Scan , typename ReverseJoin >
Value tbb::parallel_scan ( const Range &  range,
const Value &  identity,
const Scan &  scan,
const ReverseJoin &  reverse_join,
const auto_partitioner partitioner 
)

Parallel prefix with auto_partitioner.

Definition at line 399 of file parallel_scan.h.

References tbb::parallel_scan().

399  {
400  internal::lambda_scan_body<Range, Value, Scan, ReverseJoin> body(identity, scan, reverse_join);
401  tbb::parallel_scan(range,body,partitioner);
402  return body.result();
403 }
void parallel_scan(const Range &range, Body &body)
Parallel prefix with default partitioner.
Here is the call graph for this function:

◆ parallel_sort() [1/5]

template<typename RandomAccessIterator , typename Compare >
void tbb::parallel_sort ( RandomAccessIterator  begin,
RandomAccessIterator  end,
const Compare &  comp 
)

Sorts the data in [begin,end) using the given comparator.

The compare function object is used for all comparisons between elements during sorting. The compare object must define a bool operator() function.

Definition at line 207 of file parallel_sort.h.

References tbb::interface9::internal::parallel_quick_sort().

Referenced by tbb::parallel_sort().

207  {
208  const int min_parallel_size = 500;
209  if( end > begin ) {
210  if (end - begin < min_parallel_size) {
211  std::sort(begin, end, comp);
212  } else {
214  }
215  }
216 }
void parallel_quick_sort(RandomAccessIterator begin, RandomAccessIterator end, const Compare &comp)
Wrapper method to initiate the sort by calling parallel_for.
void const char const char int ITT_FORMAT __itt_group_sync x void const char ITT_FORMAT __itt_group_sync s void ITT_FORMAT __itt_group_sync p void ITT_FORMAT p void ITT_FORMAT p no args __itt_suppress_mode_t unsigned int void size_t ITT_FORMAT d void ITT_FORMAT p void ITT_FORMAT p __itt_model_site __itt_model_site_instance ITT_FORMAT p __itt_model_task __itt_model_task_instance ITT_FORMAT p void ITT_FORMAT p void ITT_FORMAT p void size_t ITT_FORMAT d void ITT_FORMAT p const wchar_t ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s no args void ITT_FORMAT p size_t ITT_FORMAT d no args const wchar_t const wchar_t ITT_FORMAT s __itt_heap_function void size_t int ITT_FORMAT d __itt_heap_function void ITT_FORMAT p __itt_heap_function void void size_t int ITT_FORMAT d no args no args unsigned int ITT_FORMAT u const __itt_domain __itt_id ITT_FORMAT lu const __itt_domain __itt_id __itt_id __itt_string_handle ITT_FORMAT p const __itt_domain __itt_id ITT_FORMAT p const __itt_domain __itt_id __itt_timestamp begin
void const char const char int ITT_FORMAT __itt_group_sync x void const char ITT_FORMAT __itt_group_sync s void ITT_FORMAT __itt_group_sync p void ITT_FORMAT p void ITT_FORMAT p no args __itt_suppress_mode_t unsigned int void size_t ITT_FORMAT d void ITT_FORMAT p void ITT_FORMAT p __itt_model_site __itt_model_site_instance ITT_FORMAT p __itt_model_task __itt_model_task_instance ITT_FORMAT p void ITT_FORMAT p void ITT_FORMAT p void size_t ITT_FORMAT d void ITT_FORMAT p const wchar_t ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s no args void ITT_FORMAT p size_t ITT_FORMAT d no args const wchar_t const wchar_t ITT_FORMAT s __itt_heap_function void size_t int ITT_FORMAT d __itt_heap_function void ITT_FORMAT p __itt_heap_function void void size_t int ITT_FORMAT d no args no args unsigned int ITT_FORMAT u const __itt_domain __itt_id ITT_FORMAT lu const __itt_domain __itt_id __itt_id __itt_string_handle ITT_FORMAT p const __itt_domain __itt_id ITT_FORMAT p const __itt_domain __itt_id __itt_timestamp __itt_timestamp end
Here is the call graph for this function:
Here is the caller graph for this function:

◆ parallel_sort() [2/5]

template<typename RandomAccessIterator >
void tbb::parallel_sort ( RandomAccessIterator  begin,
RandomAccessIterator  end 
)
inline

Sorts the data in [begin,end) with a default comparator std::less<RandomAccessIterator>

Definition at line 221 of file parallel_sort.h.

References tbb::parallel_sort().

221  {
222  parallel_sort( begin, end, std::less< typename std::iterator_traits<RandomAccessIterator>::value_type >() );
223 }
void parallel_sort(T *begin, T *end)
Sorts the data in the range [begin,end) with a default comparator std::less<T>
void const char const char int ITT_FORMAT __itt_group_sync x void const char ITT_FORMAT __itt_group_sync s void ITT_FORMAT __itt_group_sync p void ITT_FORMAT p void ITT_FORMAT p no args __itt_suppress_mode_t unsigned int void size_t ITT_FORMAT d void ITT_FORMAT p void ITT_FORMAT p __itt_model_site __itt_model_site_instance ITT_FORMAT p __itt_model_task __itt_model_task_instance ITT_FORMAT p void ITT_FORMAT p void ITT_FORMAT p void size_t ITT_FORMAT d void ITT_FORMAT p const wchar_t ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s no args void ITT_FORMAT p size_t ITT_FORMAT d no args const wchar_t const wchar_t ITT_FORMAT s __itt_heap_function void size_t int ITT_FORMAT d __itt_heap_function void ITT_FORMAT p __itt_heap_function void void size_t int ITT_FORMAT d no args no args unsigned int ITT_FORMAT u const __itt_domain __itt_id ITT_FORMAT lu const __itt_domain __itt_id __itt_id __itt_string_handle ITT_FORMAT p const __itt_domain __itt_id ITT_FORMAT p const __itt_domain __itt_id __itt_timestamp begin
void const char const char int ITT_FORMAT __itt_group_sync x void const char ITT_FORMAT __itt_group_sync s void ITT_FORMAT __itt_group_sync p void ITT_FORMAT p void ITT_FORMAT p no args __itt_suppress_mode_t unsigned int void size_t ITT_FORMAT d void ITT_FORMAT p void ITT_FORMAT p __itt_model_site __itt_model_site_instance ITT_FORMAT p __itt_model_task __itt_model_task_instance ITT_FORMAT p void ITT_FORMAT p void ITT_FORMAT p void size_t ITT_FORMAT d void ITT_FORMAT p const wchar_t ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s no args void ITT_FORMAT p size_t ITT_FORMAT d no args const wchar_t const wchar_t ITT_FORMAT s __itt_heap_function void size_t int ITT_FORMAT d __itt_heap_function void ITT_FORMAT p __itt_heap_function void void size_t int ITT_FORMAT d no args no args unsigned int ITT_FORMAT u const __itt_domain __itt_id ITT_FORMAT lu const __itt_domain __itt_id __itt_id __itt_string_handle ITT_FORMAT p const __itt_domain __itt_id ITT_FORMAT p const __itt_domain __itt_id __itt_timestamp __itt_timestamp end
Here is the call graph for this function:

◆ parallel_sort() [3/5]

template<typename Range , typename Compare >
void tbb::parallel_sort ( Range &  rng,
const Compare &  comp 
)

Sorts the data in rng using the given comparator.

Definition at line 228 of file parallel_sort.h.

References tbb::internal::first(), tbb::internal::last(), and tbb::parallel_sort().

228  {
230 }
auto last(Container &c) -> decltype(begin(c))
auto first(Container &c) -> decltype(begin(c))
void parallel_sort(T *begin, T *end)
Sorts the data in the range [begin,end) with a default comparator std::less<T>
Here is the call graph for this function:

◆ parallel_sort() [4/5]

template<typename Range >
void tbb::parallel_sort ( Range &  rng)

Sorts the data in rng with a default comparator std::less<RandomAccessIterator>

Definition at line 235 of file parallel_sort.h.

References tbb::internal::first(), tbb::internal::last(), and tbb::parallel_sort().

235  {
237 }
auto last(Container &c) -> decltype(begin(c))
auto first(Container &c) -> decltype(begin(c))
void parallel_sort(T *begin, T *end)
Sorts the data in the range [begin,end) with a default comparator std::less<T>
Here is the call graph for this function:

◆ parallel_sort() [5/5]

template<typename T >
void tbb::parallel_sort ( T *  begin,
T *  end 
)
inline

Sorts the data in the range [begin,end) with a default comparator std::less<T>

Definition at line 242 of file parallel_sort.h.

References tbb::parallel_sort().

242  {
243  parallel_sort( begin, end, std::less< T >() );
244 }
void parallel_sort(T *begin, T *end)
Sorts the data in the range [begin,end) with a default comparator std::less<T>
void const char const char int ITT_FORMAT __itt_group_sync x void const char ITT_FORMAT __itt_group_sync s void ITT_FORMAT __itt_group_sync p void ITT_FORMAT p void ITT_FORMAT p no args __itt_suppress_mode_t unsigned int void size_t ITT_FORMAT d void ITT_FORMAT p void ITT_FORMAT p __itt_model_site __itt_model_site_instance ITT_FORMAT p __itt_model_task __itt_model_task_instance ITT_FORMAT p void ITT_FORMAT p void ITT_FORMAT p void size_t ITT_FORMAT d void ITT_FORMAT p const wchar_t ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s no args void ITT_FORMAT p size_t ITT_FORMAT d no args const wchar_t const wchar_t ITT_FORMAT s __itt_heap_function void size_t int ITT_FORMAT d __itt_heap_function void ITT_FORMAT p __itt_heap_function void void size_t int ITT_FORMAT d no args no args unsigned int ITT_FORMAT u const __itt_domain __itt_id ITT_FORMAT lu const __itt_domain __itt_id __itt_id __itt_string_handle ITT_FORMAT p const __itt_domain __itt_id ITT_FORMAT p const __itt_domain __itt_id __itt_timestamp begin
void const char const char int ITT_FORMAT __itt_group_sync x void const char ITT_FORMAT __itt_group_sync s void ITT_FORMAT __itt_group_sync p void ITT_FORMAT p void ITT_FORMAT p no args __itt_suppress_mode_t unsigned int void size_t ITT_FORMAT d void ITT_FORMAT p void ITT_FORMAT p __itt_model_site __itt_model_site_instance ITT_FORMAT p __itt_model_task __itt_model_task_instance ITT_FORMAT p void ITT_FORMAT p void ITT_FORMAT p void size_t ITT_FORMAT d void ITT_FORMAT p const wchar_t ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s no args void ITT_FORMAT p size_t ITT_FORMAT d no args const wchar_t const wchar_t ITT_FORMAT s __itt_heap_function void size_t int ITT_FORMAT d __itt_heap_function void ITT_FORMAT p __itt_heap_function void void size_t int ITT_FORMAT d no args no args unsigned int ITT_FORMAT u const __itt_domain __itt_id ITT_FORMAT lu const __itt_domain __itt_id __itt_id __itt_string_handle ITT_FORMAT p const __itt_domain __itt_id ITT_FORMAT p const __itt_domain __itt_id __itt_timestamp __itt_timestamp end
Here is the call graph for this function:

◆ run_parallel_do()

template<typename Iterator , typename Body , typename Item >
void tbb::interface9::internal::run_parallel_do ( Iterator  first,
Iterator  last,
const Body &  body,
task_group_context context 
)

For internal use only.

Implements parallel iteration over a range.

Definition at line 411 of file parallel_do.h.

References tbb::interface9::internal::parallel_do_feeder_impl< Body, Item >::my_barrier, and tbb::interface9::internal::parallel_do_feeder_impl< Body, Item >::my_body.

416  {
417  typedef do_task_iter<Iterator, Body, Item> root_iteration_task;
418 #if __TBB_TASK_GROUP_CONTEXT
419  parallel_do_feeder_impl<Body, Item> feeder(context);
420 #else
421  parallel_do_feeder_impl<Body, Item> feeder;
422 #endif
423  feeder.my_body = &body;
424 
425  root_iteration_task &t = *new( feeder.my_barrier->allocate_child() ) root_iteration_task(first, last, feeder);
426 
427  feeder.my_barrier->set_ref_count(2);
428  feeder.my_barrier->spawn_and_wait_for_all(t);
429  }
auto last(Container &c) -> decltype(begin(c))
auto first(Container &c) -> decltype(begin(c))

◆ select_parallel_do() [1/2]

template<typename Iterator , typename Body , typename Item >
void tbb::interface9::internal::select_parallel_do ( Iterator  first,
Iterator  last,
const Body &  body,
void(Body::*)(Item)  const,
task_group_context context 
)

For internal use only.

Detects types of Body's operator function arguments.

Definition at line 435 of file parallel_do.h.

References tbb::internal::first(), tbb::internal::last(), and type.

Referenced by tbb::parallel_do().

440  {
442 #if __TBB_TASK_GROUP_CONTEXT
443  , context
444 #endif
445  );
446  }
auto last(Container &c) -> decltype(begin(c))
auto first(Container &c) -> decltype(begin(c))
void const char const char int ITT_FORMAT __itt_group_sync x void const char ITT_FORMAT __itt_group_sync s void ITT_FORMAT __itt_group_sync p void ITT_FORMAT p void ITT_FORMAT p no args __itt_suppress_mode_t unsigned int void size_t ITT_FORMAT d void ITT_FORMAT p void ITT_FORMAT p __itt_model_site __itt_model_site_instance ITT_FORMAT p __itt_model_task __itt_model_task_instance ITT_FORMAT p void ITT_FORMAT p void ITT_FORMAT p void size_t ITT_FORMAT d void ITT_FORMAT p const wchar_t ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s no args void ITT_FORMAT p size_t ITT_FORMAT d no args const wchar_t const wchar_t ITT_FORMAT s __itt_heap_function void size_t int ITT_FORMAT d __itt_heap_function void ITT_FORMAT p __itt_heap_function void void size_t int ITT_FORMAT d no args no args unsigned int ITT_FORMAT u const __itt_domain __itt_id ITT_FORMAT lu const __itt_domain __itt_id __itt_id __itt_string_handle ITT_FORMAT p const __itt_domain __itt_id ITT_FORMAT p const __itt_domain __itt_id __itt_timestamp __itt_timestamp ITT_FORMAT lu const __itt_domain __itt_id __itt_id __itt_string_handle ITT_FORMAT p const __itt_domain ITT_FORMAT p const __itt_domain __itt_string_handle unsigned long long ITT_FORMAT lu const __itt_domain __itt_id __itt_string_handle __itt_metadata_type type
Here is the call graph for this function:
Here is the caller graph for this function:

◆ select_parallel_do() [2/2]

template<typename Iterator , typename Body , typename Item , typename _Item >
void tbb::interface9::internal::select_parallel_do ( Iterator  first,
Iterator  last,
const Body &  body,
void(Body::*)(Item, parallel_do_feeder< _Item > &)  const,
task_group_context context 
)

For internal use only.

Detects types of Body's operator function arguments.

Definition at line 452 of file parallel_do.h.

References tbb::internal::first(), tbb::internal::last(), and type.

457  {
459 #if __TBB_TASK_GROUP_CONTEXT
460  , context
461 #endif
462  );
463  }
auto last(Container &c) -> decltype(begin(c))
auto first(Container &c) -> decltype(begin(c))
void const char const char int ITT_FORMAT __itt_group_sync x void const char ITT_FORMAT __itt_group_sync s void ITT_FORMAT __itt_group_sync p void ITT_FORMAT p void ITT_FORMAT p no args __itt_suppress_mode_t unsigned int void size_t ITT_FORMAT d void ITT_FORMAT p void ITT_FORMAT p __itt_model_site __itt_model_site_instance ITT_FORMAT p __itt_model_task __itt_model_task_instance ITT_FORMAT p void ITT_FORMAT p void ITT_FORMAT p void size_t ITT_FORMAT d void ITT_FORMAT p const wchar_t ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s no args void ITT_FORMAT p size_t ITT_FORMAT d no args const wchar_t const wchar_t ITT_FORMAT s __itt_heap_function void size_t int ITT_FORMAT d __itt_heap_function void ITT_FORMAT p __itt_heap_function void void size_t int ITT_FORMAT d no args no args unsigned int ITT_FORMAT u const __itt_domain __itt_id ITT_FORMAT lu const __itt_domain __itt_id __itt_id __itt_string_handle ITT_FORMAT p const __itt_domain __itt_id ITT_FORMAT p const __itt_domain __itt_id __itt_timestamp __itt_timestamp ITT_FORMAT lu const __itt_domain __itt_id __itt_id __itt_string_handle ITT_FORMAT p const __itt_domain ITT_FORMAT p const __itt_domain __itt_string_handle unsigned long long ITT_FORMAT lu const __itt_domain __itt_id __itt_string_handle __itt_metadata_type type
Here is the call graph for this function:

Copyright © 2005-2019 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.