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