A helper class to divide a range into blocks. Used by detach_blocks(), submit_blocks(), detach_loop(), and submit_loop().
More...
#include <BS_thread_pool.hpp>
|
| | blocks (const T first_index_, const T index_after_last_, const std::size_t num_blocks_) noexcept |
| | Construct a blocks object with the given specifications.
|
| |
| T | end (const std::size_t block) const noexcept |
| | Get the index after the last index of a block.
|
| |
| std::size_t | get_num_blocks () const noexcept |
| | Get the number of blocks. Note that this may be different than the desired number of blocks that was passed to the constructor.
|
| |
| T | start (const std::size_t block) const noexcept |
| | Get the first index of a block.
|
| |
|
|
std::size_t | block_size = 0 |
| | The size of each block (except possibly the last block).
|
| |
|
std::size_t | num_blocks = 0 |
| | The number of blocks.
|
| |
|
std::size_t | remainder = 0 |
| | The remainder obtained after dividing the total size by the number of blocks.
|
| |
|
T | first_index = 0 |
| | The first index in the range.
|
| |
|
T | index_after_last = 0 |
| | The index after the last index in the range.
|
| |
template<typename T>
class BS::blocks< T >
A helper class to divide a range into blocks. Used by detach_blocks(), submit_blocks(), detach_loop(), and submit_loop().
- Template Parameters
-
| T | The type of the indices. Should be a signed or unsigned integer. |
◆ blocks()
template<typename T >
| BS::blocks< T >::blocks |
( |
const T |
first_index_, |
|
|
const T |
index_after_last_, |
|
|
const std::size_t |
num_blocks_ |
|
) |
| |
|
inlinenoexcept |
Construct a blocks object with the given specifications.
- Parameters
-
| first_index_ | The first index in the range. |
| index_after_last_ | The index after the last index in the range. |
| num_blocks_ | The desired number of blocks to divide the range into. |
585 {
587 {
593 {
595 num_blocks = (total_size > 1) ? total_size : 1;
596 }
597 }
598 else
599 {
601 }
602 }
T index_after_last
The index after the last index in the range.
Definition BS_thread_pool.hpp:660
std::size_t block_size
The size of each block (except possibly the last block).
Definition BS_thread_pool.hpp:640
std::size_t num_blocks
The number of blocks.
Definition BS_thread_pool.hpp:645
T first_index
The first index in the range.
Definition BS_thread_pool.hpp:655
std::size_t remainder
The remainder obtained after dividing the total size by the number of blocks.
Definition BS_thread_pool.hpp:650
◆ end()
template<typename T >
| T BS::blocks< T >::end |
( |
const std::size_t |
block | ) |
const |
|
inlinenoexcept |
Get the index after the last index of a block.
- Parameters
-
- Returns
- The index after the last index.
611 {
613 }
T start(const std::size_t block) const noexcept
Get the first index of a block.
Definition BS_thread_pool.hpp:631
◆ get_num_blocks()
template<typename T >
| std::size_t BS::blocks< T >::get_num_blocks |
( |
| ) |
const |
|
inlinenoexcept |
Get the number of blocks. Note that this may be different than the desired number of blocks that was passed to the constructor.
- Returns
- The number of blocks.
◆ start()
template<typename T >
| T BS::blocks< T >::start |
( |
const std::size_t |
block | ) |
const |
|
inlinenoexcept |
Get the first index of a block.
- Parameters
-
- Returns
- The first index.
The documentation for this class was generated from the following file: