12 #ifndef PLSSVM_DETAIL_EXECUTION_RANGE_HPP_
13 #define PLSSVM_DETAIL_EXECUTION_RANGE_HPP_
21 #include <initializer_list>
48 template <std::
size_t I, std::
size_t J, PLSSVM_REQUIRES((0 < I && I <= 3 && 0 < J && J <= 3))>
49 execution_range(const std::array<std::
size_t, I> &p_gr
id, const std::array<std::
size_t, J> &p_block) {
50 std::copy(p_gr
id.cbegin(), p_gr
id.cend(), gr
id.begin());
51 std::copy(p_block.cbegin(), p_block.cend(), block.begin());
55 std::array<std::
size_t, 3> gr
id = { 1, 1, 1 };
57 std::array<std::
size_t, 3> block = { 1, 1, 1 };
66 std::ostream &operator<<(std::ostream &out, const execution_range &range);
Class specifying a backend independent execution range.
Definition: execution_range.hpp:31
std::array< std::size_t, 3 > block
The block sizes (using the CUDA definition).
Definition: execution_range.hpp:57
std::array< std::size_t, 3 > grid
The grid sizes (using the CUDA definition).
Definition: execution_range.hpp:55
execution_range(std::initializer_list< std::size_t > grid, std::initializer_list< std::size_t > block)
Initialize the grid and block sizes using std::initializer_lists.
Namespace containing implementation details. Should not directly be used by users.
Definition: csvm.hpp:27
Defines some generic type traits used in the PLSSVM library.