17 #ifndef __TBB_blocked_range_H
18 #define __TBB_blocked_range_H
28 template<
typename Value,
unsigned int N,
typename>
44 template<
typename Value>
55 #if __TBB_DEPRECATED_BLOCKED_RANGE_DEFAULT_CTOR
107 #if __TBB_USE_PROPORTIONAL_SPLIT_IN_BLOCKED_RANGES
139 #if __TBB_USE_PROPORTIONAL_SPLIT_IN_BLOCKED_RANGES
151 /
float(proportion.
left() + proportion.
right()) + 0.5f);
156 template<
typename RowValue,
typename ColValue>
159 template<
typename RowValue,
typename ColValue,
typename PageValue>
162 template<
typename DimValue,
unsigned int N,
typename>
#define __TBB_ASSERT(predicate, comment)
No-op version of __TBB_ASSERT.
A range over which to iterate.
bool is_divisible() const
True if range is divisible.
blocked_range(blocked_range &r, proportional_split &proportion)
Split range.
size_type size() const
Size of the range.
static Value do_split(blocked_range &r, proportional_split &proportion)
const_iterator begin() const
Beginning of range.
blocked_range(Value begin_, Value end_, size_type grainsize_=1)
Construct range over half-open interval [begin,end), with the given grainsize.
size_type grainsize() const
The grain size for this range.
blocked_range(blocked_range &r, split)
Split range.
std::size_t size_type
Type for size of a range.
bool empty() const
True if range is empty.
static Value do_split(blocked_range &r, split)
Auxiliary function used by the splitting constructor.
const_iterator end() const
One past last value in range.
Value const_iterator
Type of a value.
static const bool is_splittable_in_proportion
Static field to support proportional split.
A 2-dimensional range that models the Range concept.
A 3-dimensional range that models the Range concept.
Dummy type that distinguishes splitting constructor from copy constructor.
Type enables transmission of splitting proportion from partitioners to range objects.