|
MSTL 1.4.0
A Modern C++ Library with extended functionality, web components, and utility libraries
|
并行计算算法 更多...
函数 | |
| template<typename Iterator, typename BinaryOperation, typename Result, size_t Threshhold = 10, enable_if_t< is_ranges_input_iter_v< Iterator >, int > = 0> | |
| void | reduce (Iterator first, Iterator last, BinaryOperation op, Result &res) |
| 并行归约操作 | |
| template<typename Iterator, typename UnaryOperation, typename BinaryOp, typename Result, size_t Threshhold = 10, enable_if_t< is_ranges_input_iter_v< Iterator >, int > = 0> | |
| void | transform_reduce (Iterator first, Iterator last, UnaryOperation transform, BinaryOp reduce, Result &res) |
| 并行变换归约操作 | |
并行计算算法
| void reduce | ( | Iterator | first, |
| Iterator | last, | ||
| BinaryOperation | op, | ||
| Result & | res ) |
并行归约操作
| Iterator | 迭代器类型 |
| BinaryOperation | 二元操作类型 |
| Result | 结果类型 |
| Threshhold | 并行阈值,小于等于此值时使用串行算法 |
| first | 范围的起始迭代器 |
| last | 范围的结束迭代器 |
| op | 归约操作的二元函数 |
| res | 归约结果的引用 |
使用分治法的并行归约算法。将范围分成两半,分别在不同线程中计算,最后合并结果。 当元素数量小于阈值时,使用串行算法。
在文件 parallel.hpp 第 37 行定义.
引用了 _MSTL, distance(), next(), reduce() , 以及 ref().
被这些函数引用 reduce() , 以及 transform_reduce().
| void transform_reduce | ( | Iterator | first, |
| Iterator | last, | ||
| UnaryOperation | transform, | ||
| BinaryOp | reduce, | ||
| Result & | res ) |
并行变换归约操作
| Iterator | 迭代器类型 |
| UnaryOperation | 一元变换操作类型 |
| BinaryOp | 二元归约操作类型 |
| Result | 结果类型 |
| Threshhold | 并行阈值,小于等于此值时使用串行算法 |
| first | 范围的起始迭代器 |
| last | 范围的结束迭代器 |
| transform | 变换操作的一元函数 |
| reduce | 归约操作的二元函数 |
| res | 归约结果的引用 |
先对每个元素应用变换操作,然后进行归约。使用分治法的并行算法。 当元素数量小于阈值时,使用串行算法。
在文件 parallel.hpp 第 71 行定义.
引用了 _MSTL, distance(), initialize(), next(), reduce(), ref(), transform() , 以及 transform_reduce().
被这些函数引用 transform_reduce().