// SPDX-License-Identifier: MIT // Copyright (c) 2018-2022, Advanced Micro Devices, Inc. All rights reserved. #pragma once #include "ck/utility/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