7 #ifndef PXR_BASE_WORK_REDUCE_H
8 #define PXR_BASE_WORK_REDUCE_H
78 template <
typename Fn,
typename Rn,
typename V>
84 Rn &&reductionCallback,
96 std::forward<Fn>(loopCallback),
97 std::forward<Rn>(reductionCallback),
102 return std::forward<Fn>(loopCallback)(0, n, identity);
113 template <
typename Fn,
typename Rn,
typename V>
119 Rn &&reductionCallback)
126 #endif // PXR_BASE_WORK_REDUCE_H
#define PXR_NAMESPACE_OPEN_SCOPE
PXR_NAMESPACE_OPEN_SCOPE V WorkImpl_ParallelReduceN(const V &identity, size_t n, Fn &&loopCallback, Rn &&reductionCallback, size_t grainSize)
PXR_NAMESPACE_OPEN_SCOPE V WorkParallelReduceN(const V &identity, size_t n, Fn &&loopCallback, Rn &&reductionCallback, size_t grainSize)
WORK_API bool WorkHasConcurrency()
#define PXR_NAMESPACE_CLOSE_SCOPE
#define PXR_WORK_IMPL_NAMESPACE_USING_DIRECTIVE