cpp-toolbox  0.0.1
A toolbox library for C++
Loading...
Searching...
No Matches
parallel.hpp File Reference
#include <algorithm>
#include <cmath>
#include <future>
#include <iterator>
#include <numeric>
#include <stdexcept>
#include <vector>
#include <cpp-toolbox/cpp-toolbox_export.hpp>
#include "cpp-toolbox/base/thread_pool_singleton.hpp"
#include "impl/parallel_raw.hpp"
Include dependency graph for parallel.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  toolbox
 
namespace  toolbox::concurrent
 

Functions

base::thread_pool_singleton_ttoolbox::concurrent::default_pool ()
 获取默认线程池实例/Get the default thread pool instance
 
template<typename Iterator , typename Function >
CPP_TOOLBOX_EXPORT void toolbox::concurrent::parallel_for_each (Iterator begin, Iterator end, Function func)
 并行对范围[begin, end)中的每个元素应用函数/Applies a function to each element in range [begin, end) in parallel
 
template<typename T , typename Alloc , typename Function >
CPP_TOOLBOX_EXPORT void toolbox::concurrent::parallel_for_each (std::vector< T, Alloc > &vec, Function func)
 向量的便捷重载/Convenience overload for vectors
 
template<typename T , typename Alloc , typename Function >
CPP_TOOLBOX_EXPORT void toolbox::concurrent::parallel_for_each (const std::vector< T, Alloc > &vec, Function func)
 常量向量的便捷重载/Convenience overload for const vectors
 
template<typename T , size_t N, typename Function >
CPP_TOOLBOX_EXPORT void toolbox::concurrent::parallel_for_each (std::array< T, N > &arr, Function func)
 数组的便捷重载/Convenience overload for arrays
 
template<typename T , size_t N, typename Function >
CPP_TOOLBOX_EXPORT void toolbox::concurrent::parallel_for_each (const std::array< T, N > &arr, Function func)
 常量数组的便捷重载/Convenience overload for const arrays
 
template<typename InputIt , typename OutputIt , typename UnaryOperation >
CPP_TOOLBOX_EXPORT void toolbox::concurrent::parallel_transform (InputIt first1, InputIt last1, OutputIt d_first, UnaryOperation unary_op)
 并行将输入范围的元素转换到输出范围/Transforms elements from input range to output range in parallel
 
template<typename T , typename Alloc , typename Function >
CPP_TOOLBOX_EXPORT void toolbox::concurrent::parallel_transform (std::vector< T, Alloc > &vec, Function func)
 向量的便捷重载/Convenience overload for vectors
 
template<typename T , typename Alloc , typename Function >
CPP_TOOLBOX_EXPORT void toolbox::concurrent::parallel_transform (const std::vector< T, Alloc > &vec, Function func)
 常量向量的便捷重载/Convenience overload for const vectors
 
template<typename T , size_t N, typename Function >
CPP_TOOLBOX_EXPORT void toolbox::concurrent::parallel_transform (std::array< T, N > &arr, Function func)
 数组的便捷重载/Convenience overload for arrays
 
template<typename T , size_t N, typename Function >
CPP_TOOLBOX_EXPORT void toolbox::concurrent::parallel_transform (const std::array< T, N > &arr, Function func)
 常量数组的便捷重载/Convenience overload for const arrays
 
template<typename Iterator , typename T , typename BinaryOperation >
CPP_TOOLBOX_EXPORT T toolbox::concurrent::parallel_reduce (Iterator begin, Iterator end, T identity, BinaryOperation reduce_op)
 对范围[begin, end)执行并行归约操作/Performs parallel reduction on range [begin, end)
 
template<typename T , typename Alloc , typename BinaryOperation >
CPP_TOOLBOX_EXPORT T toolbox::concurrent::parallel_reduce (std::vector< T, Alloc > &vec, T identity, BinaryOperation reduce_op)
 向量的便捷重载/Convenience overload for vectors
 
template<typename T , typename Alloc , typename BinaryOperation >
CPP_TOOLBOX_EXPORT T toolbox::concurrent::parallel_reduce (const std::vector< T, Alloc > &vec, T identity, BinaryOperation reduce_op)
 常量向量的便捷重载/Convenience overload for const vectors
 
template<typename T , size_t N, typename BinaryOperation >
CPP_TOOLBOX_EXPORT T toolbox::concurrent::parallel_reduce (std::array< T, N > &arr, T identity, BinaryOperation reduce_op)
 数组的便捷重载/Convenience overload for arrays
 
template<typename T , size_t N, typename BinaryOperation >
CPP_TOOLBOX_EXPORT T toolbox::concurrent::parallel_reduce (const std::array< T, N > &arr, T identity, BinaryOperation reduce_op)
 常量数组的便捷重载/Convenience overload for const arrays
 
template<typename InputIt , typename OutputIt , typename T , typename BinaryOperation >
CPP_TOOLBOX_EXPORT void toolbox::concurrent::parallel_inclusive_scan (InputIt first, InputIt last, OutputIt d_first, T init, BinaryOperation binary_op, T identity=T {})
 并行前缀和(包含式)/Parallel inclusive scan (prefix sum)
 
template<typename T , typename Alloc , typename BinaryOperation >
CPP_TOOLBOX_EXPORT void toolbox::concurrent::parallel_inclusive_scan (const std::vector< T, Alloc > &input, std::vector< T, Alloc > &out, T init, BinaryOperation binary_op, T identity=T {})
 向量便捷重载/Convenience overload for vector
 
template<typename RandomIt , typename Compare = std::less<>>
CPP_TOOLBOX_EXPORT void toolbox::concurrent::parallel_merge_sort (RandomIt begin, RandomIt end, Compare comp=Compare())
 并行合并排序/Parallel merge sort (chunked)
 
template<typename RandomIt , typename Compare = std::less<>>
CPP_TOOLBOX_EXPORT void toolbox::concurrent::parallel_tim_sort (RandomIt begin, RandomIt end, Compare comp=Compare())
 A simplified parallel TimSort implementation.