10 #define TO_SEQUENCE(a, n) \
11 _Pragma("clang diagnostic push") _Pragma( \
12 "clang diagnostic ignored \"-Wc++20-extensions\"")[a]<ck_tile::index_t... IDX_IDX_>( \
13 ck_tile::sequence<IDX_IDX_...>) \
15 return ck_tile::sequence<a.at(ck_tile::number<IDX_IDX_>{})...>{}; \
17 (ck_tile::make_index_sequence<n>{}); \
18 _Pragma("clang diagnostic pop")
23 #define TO_SEQUENCE(a, n) \
25 static_assert(a.size() >= n, "wrong! out of bound"); \
26 static_assert(n <= 10, "not implemented"); \
27 if constexpr(n == 0) \
29 return ck_tile::sequence<>{}; \
31 else if constexpr(n == 1) \
33 return ck_tile::sequence<a[0]>{}; \
35 else if constexpr(n == 2) \
37 return ck_tile::sequence<a[0], a[1]>{}; \
39 else if constexpr(n == 3) \
41 return ck_tile::sequence<a[0], a[1], a[2]>{}; \
43 else if constexpr(n == 4) \
45 return ck_tile::sequence<a[0], a[1], a[2], a[3]>{}; \
47 else if constexpr(n == 5) \
49 return ck_tile::sequence<a[0], a[1], a[2], a[3], a[4]>{}; \
51 else if constexpr(n == 6) \
53 return ck_tile::sequence<a[0], a[1], a[2], a[3], a[4], a[5]>{}; \
55 else if constexpr(n == 7) \
57 return ck_tile::sequence<a[0], a[1], a[2], a[3], a[4], a[5], a[6]>{}; \
59 else if constexpr(n == 8) \
61 return ck_tile::sequence<a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]>{}; \
63 else if constexpr(n == 9) \
65 return ck_tile::sequence<a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]>{}; \
67 else if constexpr(n == 10) \
70 sequence<a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]>{}; \