6namespace uni20::linalg::detail
11template <
class S,
class Selector,
class Operation,
class... Args>
12 requires((has_runtime_precision_v<S> &&
13 requires(Selector&& selector, Operation
const& op, Precision
p, Args&&... args) {
14 dispatch_kernel(std::forward<Selector>(selector), op, std::forward<Args>(args)...,
p);
16 (!has_runtime_precision_v<S> &&
17 requires(Selector&& selector, Operation
const& op, Args&&... args) {
18 dispatch_kernel(std::forward<Selector>(selector), op, std::forward<Args>(args)...);
20void dispatch_at_precision(Selector&& selector, Operation const& operation, Precision
p, Args&&... args)
22 require_precision<S>(
p);
23 if constexpr (has_runtime_precision_v<S>)
24 dispatch_kernel(std::forward<Selector>(selector), operation, std::forward<Args>(args)...,
p);
26 dispatch_kernel(std::forward<Selector>(selector), operation, std::forward<Args>(args)...);
Operation-tag backend dispatch over tensor-view operands.
void dispatch_kernel(BackendSelector &&selector, Op op, Args &&... args)
Normalize a selector and dispatch or report that every eligible backend declined.
Definition dispatch.hpp:374
Definition data_table.cpp:8