6 #include <amdis/common/Index.hpp> 7 #include <amdis/common/ConceptsBase.hpp> 17 template <
class F,
int... I>
18 auto require(F&& f, std::integer_sequence<int,I...>) -> decltype(
order(f, I...) );
22 template <
class F,
int N>
23 constexpr
bool HasFunctorOrder = models<Definition::HasFunctorOrder(F, std::make_integer_sequence<int,N>)>;
25 template <
class F,
int N>
35 template <
class T, T value>
39 template <
class... Ts>
40 constexpr T operator()(Ts
const&... )
const 49 template <
class T, T value,
class... Int>
55 template <
class T, T value, std::
size_t J>
67 constexpr T
const& operator()(T
const& x)
const 72 friend constexpr
int order(
Id const&,
int d)
93 template <
class... Ts>
94 constexpr T
const& operator()(Ts
const&... )
const 103 template <
class T,
class... Int>
109 template <
class T, std::
size_t J>
118 template <
class T0,
class... Ts>
119 inline constexpr decltype(
auto) get_element(
index_t<0>, T0&& t0, Ts&&... )
124 template <std::size_t J,
class T0,
class... Ts>
125 inline constexpr decltype(
auto) get_element(
index_t<J>, T0&& , Ts&&... ts)
127 static_assert(J <=
sizeof...(Ts),
"");
131 template <std::
size_t I>
134 template <
class... Ts>
135 constexpr
auto&& operator()(Ts&&... args)
const 137 return get_element(
index_t<I>{}, FWD(args)...);
141 template <std::size_t I,
class... Int>
147 template <std::
size_t I, std::
size_t J>
155 template <std::
size_t I>
158 template <
class T,
int N>
159 constexpr T
const& operator()(Dune::FieldVector<T,N>
const& vec)
const 164 friend constexpr
int order(
Get const&,
int d)
172 explicit constexpr
Get_(std::size_t i)
176 template <
class T,
int N>
177 constexpr T
const& operator()(Dune::FieldVector<T,N>
const& vec)
const 182 friend constexpr
int order(Get_
const&,
int d)
Definition: Basic.hpp:132
Definition: Basic.hpp:170
Definition: Basic.hpp:156
Contains all classes needed for solving linear and non linear equation systems.
Definition: AdaptBase.hpp:6
Functor representing a static constant value.
Definition: Basic.hpp:37
auto order(F const &f) -> decltype(&F::operator(), f.order())
polynomial order of functions
Definition: Order.hpp:11
std::integral_constant< std::size_t, I > index_t
A wrapper for std::size_t type.
Definition: Index.hpp:31
std::integral_constant< bool, B > bool_t
A wrapper for bool types.
Definition: Logical.hpp:12
Functor representing a constant value.
Definition: Basic.hpp:87
(Unary-)Functor representing the identity
Definition: Basic.hpp:64