3#ifndef pRC_CORE_TENSOR_FUNCTIONS_EXCLUDE_H
4#define pRC_CORE_TENSOR_FUNCTIONS_EXCLUDE_H
12 template<
Index... Es,
class F,
class... Xs>
13 requires(IsTensorish<RemoveReference<Xs>> && ...) &&
14 (
sizeof...(Xs) > 0) &&
19 IsInvocable<F, ResultOf<Chip<Es...>, Xs,
decltype(Es)...>...>
20 static inline constexpr auto exclude(F &&f, Xs &&...args)
28 using FSizes =
typename R::Sizes;
29 using Sizes =
decltype(ESizes(), FSizes());
30 using T =
typename R::Type;
34 forward<F>(f),
view(forward<Xs>(args))...);
42 template<
class F,
Index... Es,
class... Xs>
43 requires(IsTensorish<RemoveReference<Xs>> && ...) &&
44 requires {
exclude<Es...>(declval<F>(), declval<Xs>()...); }
45 static inline constexpr auto exclude(Xs &&...args)
47 return exclude<Es...>(F(), forward<Xs>(args)...);
Definition sequence.hpp:29
Definition exclude.hpp:14
Definition concepts.hpp:31
pRC::Float<> T
Definition externs_nonTT.hpp:1
Definition cholesky.hpp:10
static constexpr auto select(Sequence< T, Is... > const)
Definition sequence.hpp:610
Size Index
Definition basics.hpp:32
std::tuple< Ts... > Tuple
Definition basics.hpp:23
std::invoke_result_t< F, Args... > ResultOf
Definition basics.hpp:59
std::remove_reference_t< T > RemoveReference
Definition basics.hpp:41
std::tuple_element_t< I, T > TupleElement
Definition basics.hpp:26
static constexpr decltype(auto) view(X &&a)
Definition view.hpp:13
std::common_type_t< Ts... > Common
Definition basics.hpp:53
Sequence< Size, Ns... > Sizes
Definition sequence.hpp:100
static constexpr auto exclude(F &&f, Xs &&...args)
Definition exclude.hpp:20
static constexpr decltype(auto) eval(X &&a)
Definition eval.hpp:12