AI Engine API User Guide (AIE) 2023.2
|
Namespaces | |
namespace | aie |
Base namespace for AIE operations and types. | |
namespace | aie::detail |
namespace | aie::detail::utils |
Macros | |
#define | __AIE_API_DETAIL_UTILS__HPP__ |
#define | REQUIRES(a) REQUIRES_MSG(a, "Requirement " STRINGIFY(a) " not met") |
#define | REQUIRES_CONSTANT(a) |
#define | REQUIRES_CONSTANT_MSG(a, m) |
#define | REQUIRES_MSG(a, m) RUNTIME_ASSERT(a, m) |
#define | RUNTIME_ASSERT(e, m) assert(e && m) |
#define | RUNTIME_ASSERT_NO_ASSUME(e, m) assert(e && m) |
#define | STATIC_ASSERT_CONSTANT(e, m) |
#define | STATIC_ASSERT_CONSTANT_EXPRESSION(e, m) |
#define | STRINGIFY(a) #a |
#define | UNREACHABLE_MSG(m) |
Typedefs | |
template<typename T > | |
using | aie::detail::utils::get_complex_component_type_t = typename get_complex_component_type< T >::type |
template<bool Signed, unsigned Bits> | |
using | aie::detail::utils::get_integer_type_t = typename get_integer_type< Signed, Bits >::type |
template<typename T > | |
using | aie::detail::utils::get_next_integer_type_t = typename get_next_integer_type< T >::type |
template<typename T > | |
using | aie::detail::utils::get_prev_integer_type_t = typename get_prev_integer_type< T >::type |
template<size_t Elems, size_t Value> | |
using | aie::detail::utils::make_index_broadcast = make_integer_broadcast< size_t, Elems, Value > |
template<typename T , size_t Elems, T Value> | |
using | aie::detail::utils::make_integer_broadcast = typename make_integer_broadcast_impl< Elems, T, Value >::type |
template<std::size_t N> | |
using | aie::detail::utils::make_reverse_index_sequence = decltype(generate_index_sequence_reverse(std::make_index_sequence< N >{})) |
template<typename T > | |
using | aie::detail::utils::make_signed_t = typename make_signed< T >::type |
template<typename T > | |
using | aie::detail::utils::make_unsigned_t = typename make_unsigned< T >::type |
template<typename T > | |
using | aie::detail::utils::remove_all_t = typename remove_all< T >::type |
Functions | |
aie::detail::utils::circular_index (unsigned max) -> circular_index<(unsigned) -1 > | |
template<typename T > | |
constexpr T * | aie::detail::utils::floor_ptr (T *ptr) |
template<std::size_t ... Indices> | |
constexpr auto | aie::detail::utils::generate_index_sequence_reverse (const std::index_sequence< Indices... > &) -> decltype(std::index_sequence< sizeof...(Indices) - 1U - Indices... >{}) |
template<unsigned N, typename T , typename... Args> | |
constexpr auto | aie::detail::utils::get_nth (const T &t, Args &&... args) |
template<typename T > | |
constexpr bool | aie::detail::utils::is_powerof2 (T v) |
template<typename T1 , typename T2 > | |
constexpr bool | aie::detail::utils::is_same_object (const T1 &a, const T2 &b) |
template<typename T > | |
constexpr unsigned | aie::detail::utils::log2 (T v) |
template<unsigned Start, unsigned End, typename... T> | |
constexpr auto | aie::detail::utils::subtuple (const std::tuple< T... > &t) |
template<unsigned Start, typename... T, std::size_t... I> | |
constexpr auto | aie::detail::utils::subtuple_ (const std::tuple< T... > &t, std::index_sequence< I... >) |
template<typename T , T Start, T End, T Step = 1, typename Fn > | |
void | aie::detail::utils::unroll_for (Fn &&fn) |
template<unsigned Times, typename Fn > | |
void | aie::detail::utils::unroll_times (Fn &&fn) |
Variables | |
template<typename T > | |
constexpr unsigned | aie::detail::utils::num_elems_v = num_elems<T>::value |
struct aie::detail::utils::get_complex_component_type |
struct aie::detail::utils::get_next_integer_type |
struct aie::detail::utils::get_prev_integer_type |
struct aie::detail::utils::make_integer_broadcast_impl |
Class Members | ||
---|---|---|
typedef typename type | type |
struct aie::detail::utils::make_integer_broadcast_impl< 0, T, Value, Generated... > |
struct aie::detail::utils::make_signed |
struct aie::detail::utils::make_unsigned |
struct aie::detail::utils::remove_all |
#define __AIE_API_DETAIL_UTILS__HPP__ |
#define REQUIRES | ( | a | ) | REQUIRES_MSG(a, "Requirement " STRINGIFY(a) " not met") |
#define REQUIRES_CONSTANT | ( | a | ) |
#define REQUIRES_CONSTANT_MSG | ( | a, | |
m | |||
) |
#define REQUIRES_MSG | ( | a, | |
m | |||
) | RUNTIME_ASSERT(a, m) |
#define RUNTIME_ASSERT | ( | e, | |
m | |||
) | assert(e && m) |
#define RUNTIME_ASSERT_NO_ASSUME | ( | e, | |
m | |||
) | assert(e && m) |
#define STATIC_ASSERT_CONSTANT | ( | e, | |
m | |||
) |
#define STATIC_ASSERT_CONSTANT_EXPRESSION | ( | e, | |
m | |||
) |
#define STRINGIFY | ( | a | ) | #a |
#define UNREACHABLE_MSG | ( | m | ) |