|
Ginkgo
Generated from pipelines/1330831941 branch based on master. Ginkgo version 1.8.0
A numerical linear algebra library targeting many-core architectures
|
5 #ifndef GKO_PUBLIC_CORE_SYNTHESIZER_CONTAINERS_HPP_
6 #define GKO_PUBLIC_CORE_SYNTHESIZER_CONTAINERS_HPP_
10 #include <type_traits>
28 template <
typename T, T... Values>
37 template <
typename... Types>
48 template <
int Start,
int End,
int Step = 1>
61 template <
typename List1,
typename List2>
62 struct concatenate_impl;
71 template <
typename T, T... Values1, T... Values2>
73 using type =
value_list<T, Values1..., Values2...>;
86 template <
typename List1,
typename List2>
87 using concatenate =
typename detail::concatenate_impl<List1, List2>::type;
98 template <
typename T,
typename =
void>
107 template <
typename T, T... Values>
108 struct as_list_impl<
value_list<T, Values...>> {
117 template <
typename... Types>
118 struct as_list_impl<
type_list<Types...>> {
130 template <
int Start,
int End,
int Step>
131 struct as_list_impl<
range<Start, End, Step>, std::enable_if_t<(Start < End)>> {
134 typename as_list_impl<range<Start + Step, End, Step>>::type>;
144 template <
int Start,
int End,
int Step>
145 struct as_list_impl<
range<Start, End, Step>, std::enable_if_t<(Start >= End)>> {
159 template <
typename T>
160 using as_list =
typename detail::as_list_impl<T>::type;
174 template <
typename T, T... Value>
177 return std::array<T,
sizeof...(Value)>{Value...};
185 #endif // GKO_PUBLIC_CORE_SYNTHESIZER_CONTAINERS_HPP_
typename detail::as_list_impl< T >::type as_list
as_list<T> gives the alias type of as_list_impl<T>::type.
Definition: containers.hpp:160
type_list records several types in template
Definition: containers.hpp:38
The matrix should be written as dense matrix in column-major order.
constexpr std::array< T, sizeof...(Value)> as_array(value_list< T, Value... > vl)
as_array<T> returns the array from value_list.
Definition: containers.hpp:175
value_list records several values with the same type in template.
Definition: containers.hpp:29
range records start, end, step in template
Definition: containers.hpp:49
The Ginkgo namespace.
Definition: abstract_factory.hpp:20
typename detail::concatenate_impl< List1, List2 >::type concatenate
concatenate combines two value_list into one value_list.
Definition: containers.hpp:87