AI Engine API User Guide (AIE) 2023.2
Loading...
Searching...
No Matches
array_helpers.hpp File Reference
#include <cstddef>
#include <type_traits>
#include "vector.hpp"
#include "../vector_elem_ref.hpp"
#include "ld_st.hpp"

Classes

struct  aie::detail::compute_rank< Args >
 
struct  aie::detail::compute_rank< Args >::compute_rank_helper< T >
 
struct  aie::detail::default_repr< N >
 
struct  aie::detail::default_repr< 0 >
 
struct  aie::detail::default_repr< 1 >
 
struct  aie::detail::default_repr< 2 >
 
struct  aie::detail::dim_2d
 
struct  aie::detail::dim_3d
 
struct  aie::detail::get_value_type< T >
 
struct  aie::detail::get_value_type< vector< T, Elems > >
 
struct  aie::detail::iter_state< U >
 
struct  aie::detail::iterator_stride< Stride >
 
struct  aie::detail::iterator_stride< dynamic_extent >
 
class  aie::detail::pattern_iterator< T, Steps >
 
class  aie::detail::random_circular_iterator< T, Elems, Stride, Resource >
 
struct  aie::detail::random_circular_iterator_storage_dynamic< Pointer >
 
struct  aie::detail::random_circular_iterator_storage_static< Pointer, Elems >
 
class  aie::detail::restrict_vector_iterator< T, Elems, Stride, Resource >
 
struct  aie::detail::sliding_window_dim_1d
 
struct  aie::detail::sliding_window_dim_2d
 
struct  aie::detail::sliding_window_dim_3d
 
struct  aie::detail::iter_state< U >::state_1d
 
struct  aie::detail::iter_state< U >::state_2d
 
struct  aie::detail::iter_state< U >::state_3d
 
class  aie::detail::unaligned_vector_input_buffer_stream< T, Elems, Resource >
 
class  aie::detail::unaligned_vector_iterator< T, Elems, Resource >
 
class  aie::detail::unaligned_vector_output_buffer_stream< T, Elems, Resource >
 
class  aie::detail::vector_input_buffer_stream< T, Elems, Resource >
 
class  aie::detail::vector_iterator< T, Elems, Stride, Resource >
 
class  aie::detail::vector_output_buffer_stream< T, Elems, Resource >
 
class  aie::detail::vector_random_circular_iterator< T, Elems, ArrayElems, Stride, Resource >
 

Namespaces

namespace  aie
 Base namespace for AIE operations and types.
 
namespace  aie::detail
 

Macros

#define __AIE_API_DETAIL_ARRAY_HELPERS__HPP__
 

Typedefs

template<typename T , size_t Elems, size_t Stride = 1, aie_dm_resource Resource = aie_dm_resource::none>
using aie::detail::const_circular_iterator = circular_iterator< const T, Elems, Stride, Resource >
 
template<typename T , unsigned Steps>
using aie::detail::const_pattern_iterator = pattern_iterator< const std::remove_const_t< T >, Steps >
 
template<typename T , size_t Elems, size_t Stride = 1, aie_dm_resource Resource = aie_dm_resource::none>
using aie::detail::const_random_circular_iterator = random_circular_iterator< const T, Elems, Stride, Resource >
 
template<typename T , unsigned Elems, size_t Stride = 1, aie_dm_resource Resource = aie_dm_resource::none>
using aie::detail::const_restrict_vector_iterator = restrict_vector_iterator< const std::remove_const_t< T >, Elems, Stride, Resource >
 
template<typename T , unsigned Elems, typename IterDescriptor , aie_dm_resource Resource = aie_dm_resource::none>
using aie::detail::const_sliding_window_buffer_stream = sliding_window_buffer_stream< const std::remove_const_t< T >, Elems, IterDescriptor, Resource >
 
template<typename T , unsigned Elems, aie_dm_resource Resource = aie_dm_resource::none>
using aie::detail::const_unaligned_vector_iterator = unaligned_vector_iterator< const std::remove_const_t< T >, Elems, Resource >
 
template<typename T , unsigned N, size_t Elems, size_t Stride = 1, aie_dm_resource Resource = aie_dm_resource::none>
using aie::detail::const_vector_circular_iterator = vector_circular_iterator< const T, N, Elems, Stride, Resource >
 
template<typename T , unsigned Elems, size_t Stride = 1, aie_dm_resource Resource = aie_dm_resource::none>
using aie::detail::const_vector_iterator = vector_iterator< const std::remove_const_t< T >, Elems, Stride, Resource >
 
template<typename T , unsigned N, size_t Elems, size_t Stride = 1, aie_dm_resource Resource = aie_dm_resource::none>
using aie::detail::const_vector_random_circular_iterator = vector_random_circular_iterator< const T, N, Elems, Stride, Resource >
 
template<unsigned N>
using aie::detail::default_repr_t = typename default_repr< N >::type
 
template<typename T >
using aie::detail::get_value_type_t = typename get_value_type< T >::type
 

Enumerations

enum class  aie::detail::FifoDirection { aie::detail::In , aie::detail::Out }
 

Functions

template<typename T , unsigned Elems, aie_dm_resource Resource, aie_dm_resource ResourceIn>
constexpr unaligned_vector_output_buffer_stream< T, Elems, Resource > & aie::detail::operator<< (unaligned_vector_output_buffer_stream< T, Elems, Resource > &out, unaligned_vector_input_buffer_stream< T, Elems, ResourceIn > &in)
 
template<typename T , unsigned Elems, aie_dm_resource Resource, aie_dm_resource ResourceIn>
constexpr unaligned_vector_output_buffer_stream< T, Elems, Resource > & aie::detail::operator<< (unaligned_vector_output_buffer_stream< T, Elems, Resource > &out, vector_input_buffer_stream< T, Elems, ResourceIn > &in)
 
template<typename T , unsigned Elems, aie_dm_resource Resource, aie_dm_resource ResourceIn>
constexpr vector_output_buffer_stream< T, Elems, Resource > & aie::detail::operator<< (vector_output_buffer_stream< T, Elems, Resource > &out, unaligned_vector_input_buffer_stream< T, Elems, ResourceIn > &in)
 
template<typename T , unsigned Elems, aie_dm_resource Resource, aie_dm_resource ResourceIn>
constexpr vector_output_buffer_stream< T, Elems, Resource > & aie::detail::operator<< (vector_output_buffer_stream< T, Elems, Resource > &out, vector_input_buffer_stream< T, Elems, ResourceIn > &in)
 

Variables

constexpr size_t aie::detail::dynamic_extent = std::numeric_limits<size_t>::max()
 

Class Documentation

◆ aie::detail::default_repr

struct aie::detail::default_repr
template<unsigned N>
struct aie::detail::default_repr< N >
Class Members
typedef decltype(tuple_cat(declval< tuple< dim_3d > >(), type >())) type

◆ aie::detail::default_repr< 0 >

struct aie::detail::default_repr< 0 >
Class Members
typedef tuple<> type

◆ aie::detail::default_repr< 1 >

struct aie::detail::default_repr< 1 >
Class Members
typedef tuple< int > type

◆ aie::detail::default_repr< 2 >

struct aie::detail::default_repr< 2 >
Class Members
typedef tuple< dim_2d > type

◆ aie::detail::get_value_type

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

◆ aie::detail::get_value_type< vector< T, Elems > >

struct aie::detail::get_value_type< vector< T, Elems > >
template<typename T, unsigned Elems>
struct aie::detail::get_value_type< vector< T, Elems > >
Class Members
typedef typename value_type type

◆ aie::detail::iter_state

struct aie::detail::iter_state
template<typename U>
struct aie::detail::iter_state< U >
Class Members
typedef conditional_t< is_one_of_v< U, dim_3d, sliding_window_dim_3d >, state_3d, conditional_t< is_one_of_v< U, dim_2d, sliding_window_dim_2d >, state_2d, state_1d > > storage_t
Class Members
storage_t state_

◆ aie::detail::random_circular_iterator_storage_dynamic

struct aie::detail::random_circular_iterator_storage_dynamic
template<typename Pointer>
struct aie::detail::random_circular_iterator_storage_dynamic< Pointer >
Class Members
Pointer base
size_t elems
Pointer ptr

◆ aie::detail::iter_state::state_1d

struct aie::detail::iter_state::state_1d
template<typename U>
struct aie::detail::iter_state< U >::state_1d

◆ aie::detail::iter_state::state_2d

struct aie::detail::iter_state::state_2d
template<typename U>
struct aie::detail::iter_state< U >::state_2d
Class Members
addr_t c1 = 0

◆ aie::detail::iter_state::state_3d

struct aie::detail::iter_state::state_3d
template<typename U>
struct aie::detail::iter_state< U >::state_3d
Class Members
addr_t c1 = 0
addr_t c2 = 0

Macro Definition Documentation

◆ __AIE_API_DETAIL_ARRAY_HELPERS__HPP__

#define __AIE_API_DETAIL_ARRAY_HELPERS__HPP__