#ifndef CK_SEQUENCE_HELPER_HPP #define CK_SEQUENCE_HELPER_HPP #include "tuple.hpp" namespace ck { template __host__ __device__ constexpr auto make_sequence(Number...) { return Sequence{}; } // F returns index_t template __host__ __device__ constexpr auto generate_sequence(F, Number) { return typename sequence_gen::type{}; } // F returns Number<> template __host__ __device__ constexpr auto generate_sequence_v2(F&& f, Number) { return unpack([&f](auto&&... xs) { return make_sequence(f(xs)...); }, typename arithmetic_sequence_gen<0, N, 1>::type{}); } template __host__ __device__ constexpr auto to_sequence(Tuple...>) { return Sequence{}; } } // namespace ck #endif