17 #ifndef __TBB_blocked_range2d_H 18 #define __TBB_blocked_range2d_H 27 template<
typename RowValue,
typename ColValue=RowValue>
42 my_rows(row_begin,row_end,row_grainsize),
43 my_cols(col_begin,col_end,col_grainsize)
47 ColValue col_begin, ColValue col_end ) :
71 #if __TBB_USE_PROPORTIONAL_SPLIT_IN_BLOCKED_RANGES 91 template <
typename Split>
blocked_range2d(RowValue row_begin, RowValue row_end, typename row_range_type::size_type row_grainsize, ColValue col_begin, ColValue col_end, typename col_range_type::size_type col_grainsize)
bool empty() const
True if range is empty.
std::size_t size_type
Type for size of a range.
static const bool is_splittable_in_proportion
Static field to support proportional split.
blocked_range2d(blocked_range2d &r, proportional_split &proportion)
blocked_range< RowValue > row_range_type
Type for size of an iteration range.
bool empty() const
True if range is empty.
void do_split(blocked_range2d &r, Split &split_obj)
Type enables transmission of splitting proportion from partitioners to range objects.
size_type grainsize() const
The grain size for this range.
static ColValue do_split(blocked_range &r, split)
Auxiliary function used by the splitting constructor.
blocked_range< ColValue > col_range_type
const row_range_type & rows() const
The rows of the iteration space.
size_type size() const
Size of the range.
A 2-dimensional range that models the Range concept.
Dummy type that distinguishes splitting constructor from copy constructor.
blocked_range2d(blocked_range2d &r, split)
const col_range_type & cols() const
The columns of the iteration space.
blocked_range2d(RowValue row_begin, RowValue row_end, ColValue col_begin, ColValue col_end)
bool is_divisible() const
True if range is divisible.
bool is_divisible() const
True if range is divisible into two pieces.