AI Engine API User Guide (AIE) 2022.2
aie::detail::utils Namespace Reference

Classes

struct  circular_index
 
struct  circular_index<(unsigned) -1 >
 
struct  get_complex_component_type
 
struct  get_complex_component_type< cfloat >
 
struct  get_complex_component_type< cint16 >
 
struct  get_complex_component_type< cint32 >
 
struct  get_integer_type
 
struct  get_integer_type< false, 16 >
 
struct  get_integer_type< false, 32 >
 
struct  get_integer_type< false, 64 >
 
struct  get_integer_type< false, 8 >
 
struct  get_integer_type< true, 16 >
 
struct  get_integer_type< true, 32 >
 
struct  get_integer_type< true, 64 >
 
struct  get_integer_type< true, 8 >
 
struct  get_next_integer_type
 
struct  get_next_integer_type< int16_t >
 
struct  get_next_integer_type< int32_t >
 
struct  get_next_integer_type< int8_t >
 
struct  get_next_integer_type< uint16_t >
 
struct  get_next_integer_type< uint32_t >
 
struct  get_next_integer_type< uint8_t >
 
struct  get_prev_integer_type
 
struct  get_prev_integer_type< int16_t >
 
struct  get_prev_integer_type< int32_t >
 
struct  get_prev_integer_type< int64_t >
 
struct  get_prev_integer_type< uint16_t >
 
struct  get_prev_integer_type< uint32_t >
 
struct  get_prev_integer_type< uint64_t >
 
struct  has_address_space
 
struct  is_one_of
 
struct  make_integer_broadcast_impl
 
struct  make_integer_broadcast_impl< 0, T, Value, Generated... >
 
struct  make_signed
 
struct  make_signed< uint16_t >
 
struct  make_signed< uint32_t >
 
struct  make_signed< uint8_t >
 
struct  num_elems
 
struct  num_elems< std::array< T, N > >
 
struct  pack2
 
struct  remove_all
 
struct  unroll_context
 
struct  unroll_for_helper
 

Typedefs

template<typename T >
using get_complex_component_type_t = typename get_complex_component_type< T >::type
 
template<bool Signed, unsigned Bits>
using get_integer_type_t = typename get_integer_type< Signed, Bits >::type
 
template<typename T >
using get_next_integer_type_t = typename get_next_integer_type< T >::type
 
template<typename T >
using get_prev_integer_type_t = typename get_prev_integer_type< T >::type
 
template<size_t Elems, size_t Value>
using make_index_broadcast = make_integer_broadcast< size_t, Elems, Value >
 
template<typename T , size_t Elems, T Value>
using make_integer_broadcast = typename make_integer_broadcast_impl< Elems, T, Value >::type
 
template<std::size_t N>
using make_reverse_index_sequence = decltype(generate_index_sequence_reverse(std::make_index_sequence< N >{}))
 
template<typename T >
using make_signed_t = typename make_signed< T >::type
 
template<typename T >
using remove_all_t = typename remove_all< T >::type
 

Functions

 circular_index (unsigned max) -> circular_index<(unsigned) -1 >
 
template<std::size_t ... Indices>
constexpr auto 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 get_nth (const T &t, Args &&... args)
 
template<typename T >
constexpr bool is_powerof2 (T v)
 
template<typename T1 , typename T2 >
constexpr bool is_same_object (const T1 &a, const T2 &b)
 
template<typename T >
constexpr unsigned log2 (T v)
 
template<unsigned Start, unsigned End, typename... T>
constexpr auto subtuple (const std::tuple< T... > &t)
 
template<unsigned Start, typename... T, std::size_t... I>
constexpr auto subtuple_ (const std::tuple< T... > &t, std::index_sequence< I... >)
 
template<typename T , T Start, T End, T Step = 1, typename Fn = void>
void unroll_for (Fn &&fn)
 
template<unsigned Times, typename Fn >
void unroll_times (Fn &&fn)
 

Variables

template<typename T >
constexpr unsigned num_elems_v = num_elems<T>::value
 

Class Documentation

◆ aie::detail::utils::get_complex_component_type

struct aie::detail::utils::get_complex_component_type
template<typename T>
struct aie::detail::utils::get_complex_component_type< T >
Class Members
typedef void type

◆ aie::detail::utils::get_complex_component_type< cfloat >

struct aie::detail::utils::get_complex_component_type< cfloat >
Class Members
typedef float type

◆ aie::detail::utils::get_complex_component_type< cint16 >

struct aie::detail::utils::get_complex_component_type< cint16 >
Class Members
typedef int16_t type

◆ aie::detail::utils::get_complex_component_type< cint32 >

struct aie::detail::utils::get_complex_component_type< cint32 >
Class Members
typedef int32_t type

◆ aie::detail::utils::get_integer_type

struct aie::detail::utils::get_integer_type
template<bool Signed, unsigned Bits>
struct aie::detail::utils::get_integer_type< Signed, Bits >

◆ aie::detail::utils::get_integer_type< false, 16 >

struct aie::detail::utils::get_integer_type< false, 16 >
Class Members
typedef uint16_t type

◆ aie::detail::utils::get_integer_type< false, 32 >

struct aie::detail::utils::get_integer_type< false, 32 >
Class Members
typedef uint32_t type

◆ aie::detail::utils::get_integer_type< false, 64 >

struct aie::detail::utils::get_integer_type< false, 64 >
Class Members
typedef uint64_t type

◆ aie::detail::utils::get_integer_type< false, 8 >

struct aie::detail::utils::get_integer_type< false, 8 >
Class Members
typedef uint8_t type

◆ aie::detail::utils::get_integer_type< true, 16 >

struct aie::detail::utils::get_integer_type< true, 16 >
Class Members
typedef int16_t type

◆ aie::detail::utils::get_integer_type< true, 32 >

struct aie::detail::utils::get_integer_type< true, 32 >
Class Members
typedef int32_t type

◆ aie::detail::utils::get_integer_type< true, 64 >

struct aie::detail::utils::get_integer_type< true, 64 >
Class Members
typedef int64_t type

◆ aie::detail::utils::get_integer_type< true, 8 >

struct aie::detail::utils::get_integer_type< true, 8 >
Class Members
typedef int8_t type

◆ aie::detail::utils::get_next_integer_type

struct aie::detail::utils::get_next_integer_type
template<typename T>
struct aie::detail::utils::get_next_integer_type< T >
Class Members
typedef void type

◆ aie::detail::utils::get_next_integer_type< int16_t >

struct aie::detail::utils::get_next_integer_type< int16_t >
Class Members
typedef int32_t type

◆ aie::detail::utils::get_next_integer_type< int32_t >

struct aie::detail::utils::get_next_integer_type< int32_t >
Class Members
typedef int64_t type

◆ aie::detail::utils::get_next_integer_type< int8_t >

struct aie::detail::utils::get_next_integer_type< int8_t >
Class Members
typedef int16_t type

◆ aie::detail::utils::get_next_integer_type< uint16_t >

struct aie::detail::utils::get_next_integer_type< uint16_t >
Class Members
typedef uint32_t type

◆ aie::detail::utils::get_next_integer_type< uint32_t >

struct aie::detail::utils::get_next_integer_type< uint32_t >
Class Members
typedef uint64_t type

◆ aie::detail::utils::get_next_integer_type< uint8_t >

struct aie::detail::utils::get_next_integer_type< uint8_t >
Class Members
typedef uint16_t type

◆ aie::detail::utils::get_prev_integer_type

struct aie::detail::utils::get_prev_integer_type
template<typename T>
struct aie::detail::utils::get_prev_integer_type< T >
Class Members
typedef void type

◆ aie::detail::utils::get_prev_integer_type< int16_t >

struct aie::detail::utils::get_prev_integer_type< int16_t >
Class Members
typedef int8_t type

◆ aie::detail::utils::get_prev_integer_type< int32_t >

struct aie::detail::utils::get_prev_integer_type< int32_t >
Class Members
typedef int16_t type

◆ aie::detail::utils::get_prev_integer_type< int64_t >

struct aie::detail::utils::get_prev_integer_type< int64_t >
Class Members
typedef int32_t type

◆ aie::detail::utils::get_prev_integer_type< uint16_t >

struct aie::detail::utils::get_prev_integer_type< uint16_t >
Class Members
typedef uint8_t type

◆ aie::detail::utils::get_prev_integer_type< uint32_t >

struct aie::detail::utils::get_prev_integer_type< uint32_t >
Class Members
typedef uint16_t type

◆ aie::detail::utils::get_prev_integer_type< uint64_t >

struct aie::detail::utils::get_prev_integer_type< uint64_t >
Class Members
typedef uint32_t type

◆ aie::detail::utils::make_integer_broadcast_impl

struct aie::detail::utils::make_integer_broadcast_impl
template<size_t Elems, typename T, T Value, T... Generated>
struct aie::detail::utils::make_integer_broadcast_impl< Elems, T, Value, Generated >
Class Members
typedef typename type type

◆ aie::detail::utils::make_integer_broadcast_impl< 0, T, Value, Generated... >

struct aie::detail::utils::make_integer_broadcast_impl< 0, T, Value, Generated... >
template<typename T, T Value, T... Generated>
struct aie::detail::utils::make_integer_broadcast_impl< 0, T, Value, Generated... >
Class Members
typedef integer_sequence< T, Generated... > type

◆ aie::detail::utils::make_signed

struct aie::detail::utils::make_signed
template<typename T>
struct aie::detail::utils::make_signed< T >
Class Members
typedef T type

◆ aie::detail::utils::make_signed< uint16_t >

struct aie::detail::utils::make_signed< uint16_t >
Class Members
typedef int16_t type

◆ aie::detail::utils::make_signed< uint32_t >

struct aie::detail::utils::make_signed< uint32_t >
Class Members
typedef int32_t type

◆ aie::detail::utils::make_signed< uint8_t >

struct aie::detail::utils::make_signed< uint8_t >
Class Members
typedef int8_t type

◆ aie::detail::utils::remove_all

struct aie::detail::utils::remove_all
template<typename T>
struct aie::detail::utils::remove_all< T >
Class Members
typedef remove_cv_t< remove_reference_t< T > > type