20 template <
size_t S1,
size_t S2,
size_t P1,
size_t P2>
28 template <
typename I,
typename K,
typename C>
29 static void apply(I&& input, K&& kernel, C&& conv) {
30 constexpr_select
auto impl = select_conv_valid_multi_impl<I, K, C>();
63 cpp_unreachable(
"Invalid conv implementation selection");
71 template <
size_t S1,
size_t S2,
size_t P1,
size_t P2>
79 template <
typename I,
typename K,
typename C>
80 static void apply(I&& input, K&& kernel, C&& conv) {
81 constexpr_select
auto impl = select_conv_valid_multi_impl<I, K, C>();
114 cpp_unreachable(
"Invalid conv implementation selection");
122 template <
size_t S1,
size_t S2,
size_t P1,
size_t P2>
130 template <
typename I,
typename K,
typename C>
131 static void apply(I&& input, K&& kernel, C&& conv) {
132 constexpr_select
auto impl = select_conv_valid_multi_multi_impl<I, K, C>();
160 cpp_unreachable(
"Invalid conv implementation selection");
168 template <
size_t S1,
size_t S2,
size_t P1,
size_t P2>
176 template <
typename I,
typename K,
typename C>
177 static void apply(I&& input, K&& kernel, C&& conv) {
178 constexpr_select
auto impl = select_conv_valid_multi_multi_impl<I, K, C>();
206 cpp_unreachable(
"Invalid conv implementation selection");
221 template <
typename I,
typename K,
typename C>
222 static void apply(I&& input, K&& kernel, C&& conv,
size_t s1,
size_t s2,
size_t p1,
size_t p2) {
223 constexpr_select
auto impl = select_conv_valid_multi_impl<I, K, C>();
256 cpp_unreachable(
"Invalid conv implementation selection");
271 template <
typename I,
typename K,
typename C>
272 static void apply(I&& input, K&& kernel, C&& conv,
size_t s1,
size_t s2,
size_t p1,
size_t p2) {
273 constexpr_select
auto impl = select_conv_valid_multi_impl<I, K, C>();
306 cpp_unreachable(
"Invalid conv implementation selection");
321 template <
typename I,
typename K,
typename C>
322 static void apply(I&& input, K&& kernel, C&& conv,
size_t s1,
size_t s2,
size_t p1,
size_t p2) {
323 constexpr_select
auto impl = select_conv_valid_multi_multi_impl<I, K, C>();
351 cpp_unreachable(
"Invalid conv implementation selection");
366 template <
typename I,
typename K,
typename C>
367 static void apply(I&& input, K&& kernel, C&& conv,
size_t s1,
size_t s2,
size_t p1,
size_t p2) {
368 constexpr_select
auto impl = select_conv_valid_multi_multi_impl<I, K, C>();
396 cpp_unreachable(
"Invalid conv implementation selection");
The functor impl for 2D valid conv, with multiple kernels.
Definition: conv_multi.hpp:314
static void apply(I &&input, K &&kernel, C &&conv)
Apply the convolution.
Definition: conv_multi.hpp:29
The functor impl for 2D valid conv, with multiple kernels.
Definition: conv_multi.hpp:214
static void apply(I &&input, K &&kernel, C &&conv, size_t s1, size_t s2, size_t p1, size_t p2)
Apply the convolution.
Definition: conv_multi.hpp:272
The functor impl for 2D valid conv, with multiple kernels.
Definition: conv_multi.hpp:72
The functor impl for 2D valid conv, with multiple kernels.
Definition: conv_multi.hpp:169
Definition: expression_builder.hpp:699
The functor impl for 2D valid conv, with multiple kernels.
Definition: conv_multi.hpp:264
static void apply(I &&input, K &&kernel, C &&conv)
Apply the convolution.
Definition: conv_multi.hpp:131
static void apply(I &&input, K &&kernel, C &&conv)
Apply the convolution.
Definition: conv_multi.hpp:80
The functor impl for 2D valid conv, with multiple kernels.
Definition: conv_multi.hpp:21
static void apply(I &&input, K &&kernel, C &&conv, size_t s1, size_t s2, size_t p1, size_t p2)
Apply the convolution.
Definition: conv_multi.hpp:367
static void apply(I &&input, K &&kernel, C &&conv, size_t s1, size_t s2, size_t p1, size_t p2)
Apply the convolution.
Definition: conv_multi.hpp:222
The functor impl for 2D valid conv, with multiple kernels.
Definition: conv_multi.hpp:123
decltype(auto) smart_forward_gpu(E &expr)
Smart forwarding for a temporary expression that will be computed in GPU.
Definition: helpers.hpp:343
Reductiont to FFT (valid)
The functor impl for 2D valid conv, with multiple kernels.
Definition: conv_multi.hpp:359
decltype(auto) smart_forward(E &expr)
Smart forwarding for a temporary expression.
Definition: helpers.hpp:323
static void apply(I &&input, K &&kernel, C &&conv, size_t s1, size_t s2, size_t p1, size_t p2)
Apply the convolution.
Definition: conv_multi.hpp:322
static void apply(I &&input, K &&kernel, C &&conv)
Apply the convolution.
Definition: conv_multi.hpp:177
void inc_counter([[maybe_unused]] const char *name)
Increase the given counter.
Definition: counters.hpp:25