MeshLib Documentation
Loading...
Searching...
No Matches
MRBitSetParallelFor.h File Reference
#include "MRBitSet.h"
#include "MRParallel.h"
#include "MRProgressCallback.h"
#include <atomic>
#include <cassert>
#include <thread>

Go to the source code of this file.

Classes

struct  MR::IdRange< Id >
 range of indices [beg, end) More...
 

Namespaces

namespace  MR
 
namespace  MR::BitSetParallel
 

Functions

template<typename IndexType >
auto MR::BitSetParallel::blockRange (const IdRange< IndexType > &bitRange)
 
template<typename BS >
auto MR::BitSetParallel::blockRange (const BS &bs)
 
template<typename BS >
auto MR::BitSetParallel::bitRange (const BS &bs)
 
template<typename IndexType >
auto MR::BitSetParallel::bitSubRange (const IdRange< IndexType > &bitRange, const tbb::blocked_range< size_t > &range, const tbb::blocked_range< size_t > &subRange)
 
template<typename IndexType , typename CM , typename F >
void MR::BitSetParallel::ForAllRanged (const IdRange< IndexType > &bitRange, const CM &callMaker, F &&f)
 
template<typename BS , typename CM , typename F >
void MR::BitSetParallel::ForAllRanged (const BS &bs, const CM &callMaker, F &&f)
 
template<typename IndexType , typename CM , typename F >
bool MR::BitSetParallel::ForAllRanged (const IdRange< IndexType > &bitRange, const CM &callMaker, F &&f, ProgressCallback progressCb, size_t reportProgressEveryBit=1024)
 
template<typename BS , typename CM , typename F >
bool MR::BitSetParallel::ForAllRanged (const BS &bs, const CM &callMaker, F &&f, ProgressCallback progressCb, size_t reportProgressEveryBit=1024)
 
template<typename BS , typename ... F>
auto MR::BitSetParallelForAllRanged (const BS &bs, F &&... f)
 
template<typename BS , typename L , typename ... F>
auto MR::BitSetParallelForAllRanged (const BS &bs, tbb::enumerable_thread_specific< L > &e, F &&... f)
 
template<typename BS , typename F , typename ... Cb>
auto MR::BitSetParallelForAll (const BS &bs, F &&f, Cb &&... cb)
 
template<typename BS , typename L , typename F , typename ... Cb>
auto MR::BitSetParallelForAll (const BS &bs, tbb::enumerable_thread_specific< L > &e, F &&f, Cb &&... cb)
 
template<typename BS , typename F , typename ... Cb>
auto MR::BitSetParallelFor (const BS &bs, F &&f, Cb &&... cb)
 
template<typename BS , typename L , typename F , typename ... Cb>
auto MR::BitSetParallelFor (const BS &bs, tbb::enumerable_thread_specific< L > &e, F &&f, Cb &&... cb)