17 #ifndef __TBB_blocked_range3d_H 18 #define __TBB_blocked_range3d_H 27 template<
typename PageValue,
typename RowValue=PageValue,
typename ColValue=RowValue>
43 RowValue row_begin, RowValue row_end,
44 ColValue col_begin, ColValue col_end ) :
53 my_pages(page_begin,page_end,page_grainsize),
54 my_rows(row_begin,row_end,row_grainsize),
55 my_cols(col_begin,col_end,col_grainsize)
78 #if __TBB_USE_PROPORTIONAL_SPLIT_IN_BLOCKED_RANGES 102 template <
typename Split>
bool is_divisible() const
True if range is divisible into two pieces.
bool empty() const
True if range is empty.
const col_range_type & cols() const
The columns of the iteration space.
bool empty() const
True if range is empty.
std::size_t size_type
Type for size of a range.
const page_range_type & pages() const
The pages of the iteration space.
A 3-dimensional range that models the Range concept.
Type enables transmission of splitting proportion from partitioners to range objects.
blocked_range< ColValue > col_range_type
size_type grainsize() const
The grain size for this range.
blocked_range< RowValue > row_range_type
static ColValue do_split(blocked_range &r, split)
Auxiliary function used by the splitting constructor.
blocked_range< PageValue > page_range_type
Type for size of an iteration range.
blocked_range3d(PageValue page_begin, PageValue page_end, typename page_range_type::size_type page_grainsize, 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)
size_type size() const
Size of the range.
blocked_range3d(blocked_range3d &r, split)
const row_range_type & rows() const
The rows of the iteration space.
Dummy type that distinguishes splitting constructor from copy constructor.
static const bool is_splittable_in_proportion
Static field to support proportional split.
blocked_range3d(blocked_range3d &r, proportional_split &proportion)
blocked_range3d(PageValue page_begin, PageValue page_end, RowValue row_begin, RowValue row_end, ColValue col_begin, ColValue col_end)
void do_split(blocked_range3d &r, Split &split_obj)
bool is_divisible() const
True if range is divisible.