|
template<ElemE> |
constexpr auto |
aie::abs(const E &a) -> operand_base_type_t< E > |
|
More...
|
|
template<VectorVec> |
constexpr auto |
aie::abs(const Vec &v) ->aie_dm_resource_remove_t< Vec > |
|
More...
|
|
templateComplexVectorVec> |
constexpr auto |
aie::abs_square(const Vec &v, int shift=0) |
|
More...
|
|
template |
constexpr vector< float, Elems > |
aie::abs_square(const vector< cfloat, Elems > &v) |
|
More...
|
|
templateAccumOrOpAcc,VectorVecCoeff = void,VectorVecData = void, Vector... NextVecData> |
auto |
aie::accumulate(const Acc &acc, const VecCoeff &coeff, unsigned coeff_start, const VecData &data, const NextVecData &...next_data) -> operand_base_type_t< Acc > |
|
More...
|
|
templateAccumElemBaseTypeAccumTag = accauto,VectorVecCoeff = void,VectorVecData = void, Vector... NextVecData> |
auto |
aie::accumulate(const VecCoeff &coeff, const VecData &data, const NextVecData &...next_data) |
|
templateAccumElemBaseTypeAccumTag = accauto,VectorVecCoeff = void,VectorVecData = void, Vector... NextVecData> |
auto |
aie::accumulate(const VecCoeff &coeff, unsigned coeff_start, const VecData &data, const NextVecData &...next_data) -> accum< std::conditional_t< std::is_same_v< AccumTag,accauto>, detail::default_accum_tag_t< typename VecCoeff::value_type, typename VecData::value_type >, AccumTag >, Lanes > |
|
More...
|
|
template<AccumAcc,VectorVec> |
Acc |
aie::add(const Acc &acc, const Vec &v) |
|
More...
|
|
template<AccumAcc,ElemE> |
Acc |
aie::add(const Acc &acc, E a) |
|
More...
|
|
template<VectorVec,ElemE> |
auto |
aie::add(const Vec &v, E a) ->aie_dm_resource_remove_t< Vec > |
|
More...
|
|
template<VectorVec1,VectorVec2> |
auto |
aie::add(const Vec1 &v1, const Vec2 &v2) ->aie_dm_resource_remove_t< Vec1 > |
|
More...
|
|
template<ElemE,VectorVec> |
auto |
aie::add(E a, const Vec &v) ->aie_dm_resource_remove_t< Vec > |
|
More...
|
|
template |
T |
aie::add(T a, T b) |
|
template<VectorVec> |
Vec::value_type |
aie::add_reduce(const Vec &v) |
|
template<VectorVec, Vector... Others> |
auto |
aie::add_reduce_v(const Vec &v, const Others &... others) ->aie_dm_resource_remove_t< Vec > |
|
templateaie_dm_resourceResource = aie_dm_resource::none, typename T = void> |
constexpr auto |
aie::begin_circular(T *base) |
|
More...
|
|
template<aie_dm_resourceResource = aie_dm_resource::none, typename T = void> |
constexpr auto |
aie::begin_circular(T *base, size_t n) |
|
More...
|
|
template<aie_dm_resourceResource = aie_dm_resource::none, typename T = void, size_t Elems = 0> |
constexpr auto |
aie::begin_circular(T(&base)[Elems]) |
|
More...
|
|
template |
constexpr auto |
aie::begin_pattern(T *base, Offsets &&... offsets) |
|
template |
constexpr auto |
aie::begin_random_circular(T *base) |
|
More...
|
|
template |
constexpr auto |
aie::begin_random_circular(T *base, size_t n) |
|
More...
|
|
template |
constexpr auto |
aie::begin_random_circular(T(&base)[Elems]) |
|
More...
|
|
templateaie_dm_resourceResource = aie_dm_resource::none,DecoratedElemBaseTypeT = void> |
constexpr auto |
aie::begin_restrict_vector(const T *base) |
|
More...
|
|
templateaie_dm_resourceResource = aie_dm_resource::none,DecoratedElemBaseTypeT = void> |
constexpr auto |
aie::begin_restrict_vector(T *base) |
|
More...
|
|
templateaie_dm_resourceResource = aie_dm_resource::none,DecoratedElemBaseTypeT = void> |
constexpr auto |
aie::begin_vector(const T *base) |
|
More...
|
|
templateaie_dm_resourceResource = aie_dm_resource::none,DecoratedElemBaseTypeT = void> |
constexpr auto |
aie::begin_vector(T *base) |
|
More...
|
|
templateaie_dm_resourceResource = aie_dm_resource::none, typename T = void> |
constexpr auto |
aie::begin_vector_circular(T *base) |
|
More...
|
|
templateaie_dm_resourceResource = aie_dm_resource::none, typename T = void> |
constexpr auto |
aie::begin_vector_circular(T *base, size_t n) |
|
More...
|
|
templateaie_dm_resourceResource = aie_dm_resource::none, typename T = void, size_t ArrayElems = 0> |
constexpr auto |
aie::begin_vector_circular(T(&base)[ArrayElems]) |
|
More...
|
|
templateaie_dm_resourceResource = aie_dm_resource::none, DecoratedElemBaseType... Types> |
constexpr auto |
aie::begin_vectors(Types *...ptrs) |
|
template<VectorVec1,VectorVec2> |
auto |
aie::bit_and(const Vec1 &v1, const Vec2 &v2) ->aie_dm_resource_remove_t< Vec1 > |
|
More...
|
|
template<ElemE,VectorVec> |
auto |
aie::bit_and(E a, const Vec &v) ->aie_dm_resource_remove_t< Vec > |
|
More...
|
|
template<VectorVec> |
auto |
aie::bit_not(const Vec &v) ->aie_dm_resource_remove_t< Vec > |
|
More...
|
|
template<VectorVec1,VectorVec2> |
auto |
aie::bit_or(const Vec1 &v1, const Vec2 &v2) ->aie_dm_resource_remove_t< Vec1 > |
|
More...
|
|
template<ElemE,VectorVec> |
auto |
aie::bit_or(E a, const Vec &v) ->aie_dm_resource_remove_t< Vec > |
|
More...
|
|
template<VectorVec1,VectorVec2> |
auto |
aie::bit_xor(const Vec1 &v1, const Vec2 &v2) ->aie_dm_resource_remove_t< Vec1 > |
|
More...
|
|
template<ElemE,VectorVec> |
auto |
aie::bit_xor(E a, const Vec &v) ->aie_dm_resource_remove_t< Vec > |
|
More...
|
|
template<ElemE, unsigned Elems = native_vector_length_v> |
vector< operand_base_type_t< E >, Elems > |
aie::broadcast(E a) |
|
More...
|
|
templateaie_dm_resourceResource = aie_dm_resource::none, typename T = void> |
constexpr const_circular_iterator< T, Elems, Resource > |
aie::cbegin_circular(const T *base) |
|
More...
|
|
template<aie_dm_resourceResource = aie_dm_resource::none, typename T = void> |
constexpr const_circular_iterator< T, dynamic_extent, Resource > |
aie::cbegin_circular(const T *base, size_t n) |
|
More...
|
|
template<aie_dm_resourceResource = aie_dm_resource::none, typename T = void, size_t Elems = 0> |
constexpr const_circular_iterator< T, Elems, Resource > |
aie::cbegin_circular(const T(&base)[Elems]) |
|
More...
|
|
template |
constexpr const_pattern_iterator< T, Steps > |
aie::cbegin_pattern(const T *base, Offsets &&... offsets) |
|
template |
constexpr auto |
aie::cbegin_random_circular(const T *base) |
|
More...
|
|
template |
constexpr auto |
aie::cbegin_random_circular(const T *base, size_t n) |
|
More...
|
|
template |
constexpr auto |
aie::cbegin_random_circular(const T(&base)[Elems]) |
|
More...
|
|
templateaie_dm_resourceResource = aie_dm_resource::none,DecoratedElemBaseTypeT = void> |
constexpr auto |
aie::cbegin_restrict_vector(const T *base) |
|
More...
|
|
templateaie_dm_resourceResource = aie_dm_resource::none,DecoratedElemBaseTypeT = void> |
constexpr auto |
aie::cbegin_vector(const T *base) |
|
More...
|
|
templateaie_dm_resourceResource = aie_dm_resource::none, typename T = void> |
constexpr auto |
aie::cbegin_vector_circular(const T *base) |
|
More...
|
|
templateaie_dm_resourceResource = aie_dm_resource::none, typename T = void> |
constexpr auto |
aie::cbegin_vector_circular(const T *base, size_t n) |
|
More...
|
|
templateaie_dm_resourceResource = aie_dm_resource::none, typename T = void, size_t ArrayElems = 0> |
constexpr auto |
aie::cbegin_vector_circular(const T(&base)[ArrayElems]) |
|
More...
|
|
templateaie_dm_resourceResource = aie_dm_resource::none, DecoratedElemBaseType... Types> |
constexpr auto |
aie::cbegin_vectors(const Types *...ptrs) |
|
template<AccumAcc, Accum... Accums> |
auto |
aie::concat(const Acc &acc, const Accums &...accums) -> accum< typename Acc::value_type, Acc::size() *(1+sizeof...(Accums))> |
|
More...
|
|
template<VectorVec, Vector... Vectors> |
auto |
aie::concat(const Vec &v, const Vectors &...vectors) -> vector< typename Vec::value_type, Vec::size() *(1+sizeof...(Vectors))> |
|
More...
|
|
template<ComplexElemE> |
constexpr auto |
aie::conj(const E &a) -> operand_base_type_t< E > |
|
More...
|
|
template<ComplexVectorVec> |
auto |
aie::conj(const Vec &v) ->aie_dm_resource_remove_t< Vec > |
|
More...
|
|
template<ElemE,VectorVec> |
bool |
aie::contains(E a, const Vec &v) |
|
template<RealVectorVec> |
auto |
aie::cos(const Vec &v) ->aie_dm_resource_remove_t< Vec > |
|
More...
|
|
template |
auto |
aie::cos(E a) |
|
More...
|
|
float |
aie::div(float a, float b) |
|
template<VectorVec> |
constexpr auto |
aie::downshift(const Vec &v, unsigned shift) ->aie_dm_resource_remove_t< Vec > |
|
More...
|
|
template<VectorVec,ElemE> |
mask< Vec::size()> |
aie::eq(const Vec &v, E a) |
|
More...
|
|
template<VectorVec1,VectorVec2> |
mask< Vec1::size()> |
aie::eq(const Vec1 &v1, const Vec2 &v2) |
|
More...
|
|
template<ElemE,VectorVec> |
mask< Vec::size()> |
aie::eq(E a, const Vec &v) |
|
More...
|
|
template |
bool |
aie::eq(T a, T b) |
|
More...
|
|
template<VectorVec1,VectorVec2> |
constexpr bool |
aie::equal(const Vec1 &v1, const Vec2 &v2) |
|
More...
|
|
template<VectorVec> |
auto |
aie::filter_even(const Vec &v, unsigned step=1) -> vector< typename Vec::value_type, Vec::size()/2 > |
|
More...
|
|
template<VectorVec> |
auto |
aie::filter_odd(const Vec &v, unsigned step=1) -> vector< typename Vec::value_type, Vec::size()/2 > |
|
More...
|
|
template<RealVectorVec,RealElemE> |
mask< Vec::size()> |
aie::ge(const Vec &v, E a) |
|
More...
|
|
template<RealVectorVec1,RealVectorVec2> |
mask< Vec1::size()> |
aie::ge(const Vec1 &v1, const Vec2 &v2) |
|
More...
|
|
template<RealElemE,RealVectorVec> |
mask< Vec::size()> |
aie::ge(E a, const Vec &v) |
|
More...
|
|
template |
bool |
aie::ge(T a, T b) |
|
More...
|
|
template<RealVectorVec,RealElemE> |
mask< Vec::size()> |
aie::gt(const Vec &v, E a) |
|
More...
|
|
template<RealVectorVec1,RealVectorVec2> |
mask< Vec1::size()> |
aie::gt(const Vec1 &v1, const Vec2 &v2) |
|
More...
|
|
template<RealElemE,RealVectorVec> |
mask< Vec::size()> |
aie::gt(E a, const Vec &v) |
|
More...
|
|
template |
bool |
aie::gt(T a, T b) |
|
More...
|
|
template<VectorVec1,VectorVec2> |
auto |
aie::interleave_butterfly(const Vec1 &v1, const Vec2 &v2, unsigned step) -> std::pair<aie_dm_resource_remove_t< Vec1 >,aie_dm_resource_remove_t< Vec1 >> |
|
template<VectorVec1,VectorVec2> |
auto |
aie::interleave_butterfly_half(const Vec1 &v1, const Vec2 &v2, unsigned step) -> std::pair<aie_dm_resource_remove_t< Vec1 >,aie_dm_resource_remove_t< Vec1 >> |
|
template<VectorVec1,VectorVec2> |
auto |
aie::interleave_crossover(const Vec1 &v1, const Vec2 &v2, unsigned step) -> std::pair<aie_dm_resource_remove_t< Vec1 >,aie_dm_resource_remove_t< Vec1 >> |
|
template<VectorVec1,VectorVec2, typename... Select> |
auto |
aie::interleave_custom(const Vec1 &v1, const Vec2 &v2, Select... select) -> std::pair<aie_dm_resource_remove_t< Vec1 >,aie_dm_resource_remove_t< Vec1 >> |
|
templateVectorVec1,VectorVec2> |
auto |
aie::interleave_custom_static(const Vec1 &v1, const Vec2 &v2) -> std::pair<aie_dm_resource_remove_t< Vec1 >,aie_dm_resource_remove_t< Vec1 >> |
|
template<VectorVec1,VectorVec2> |
auto |
aie::interleave_unzip(const Vec1 &v1, const Vec2 &v2, unsigned step) -> std::pair<aie_dm_resource_remove_t< Vec1 >,aie_dm_resource_remove_t< Vec1 >> |
|
More...
|
|
template<VectorVec1,VectorVec2> |
auto |
aie::interleave_zip(const Vec1 &v1, const Vec2 &v2, unsigned step) -> std::pair<aie_dm_resource_remove_t< Vec1 >,aie_dm_resource_remove_t< Vec1 >> |
|
More...
|
|
template |
accum< accfloat, Elems > |
aie::inv(const accum< accfloat, Elems > &v) |
|
template<VectorVec> |
auto |
aie::inv(const Vec &v) ->aie_dm_resource_remove_t< Vec > |
|
template<ElemE> |
auto |
aie::inv(E a) |
|
template |
accum< accfloat, Elems > |
aie::invsqrt(const accum< accfloat, Elems > &v) |
|
template<VectorVec> |
auto |
aie::invsqrt(const Vec &v) ->aie_dm_resource_remove_t< Vec > |
|
template<ElemE> |
auto |
aie::invsqrt(E a) |
|
template<RealVectorVec,RealElemE> |
mask< Vec::size()> |
aie::le(const Vec &v, E a) |
|
More...
|
|
template<RealVectorVec1,RealVectorVec2> |
mask< Vec1::size()> |
aie::le(const Vec1 &v1, const Vec2 &v2) |
|
More...
|
|
template<RealElemE,RealVectorVec> |
mask< Vec::size()> |
aie::le(E a, const Vec &v) |
|
More...
|
|
template |
bool |
aie::le(T a, T b) |
|
More...
|
|
templateaie_dm_resourceResource = aie_dm_resource::none,DecoratedElemBaseTypeT = void> |
auto |
aie::load_floor_bytes_v(const T *ptr, size_t bytes) -> vector<aie_dm_resource_remove_t< T >, Elems > |
|
More...
|
|
templateaie_dm_resourceResource = aie_dm_resource::none,DecoratedElemBaseTypeT = void> |
auto |
aie::load_floor_v(const T *ptr, unsigned n=Elems) -> vector<aie_dm_resource_remove_t< T >, Elems > |
|
More...
|
|
templateaie_dm_resourceResource = aie_dm_resource::none,DecoratedElemBaseTypeT = void> |
auto |
aie::load_unaligned_v(const T *ptr, unsigned aligned_elems=1) -> vector<aie_dm_resource_remove_t< T >, Elems > |
|
More...
|
|
template<aie_dm_resourceResource = aie_dm_resource::none,DecoratedElemBaseTypeT = void> |
auto |
aie::load_unaligned_v(const T *ptr, unsigned aligned_elems=1) -> vector<aie_dm_resource_remove_t< T >, native_vector_length_v< T >> |
|
More...
|
|
templateaie_dm_resourceResource = aie_dm_resource::none,DecoratedElemBaseTypeT = void> |
auto |
aie::load_v(const T *ptr) -> vector<aie_dm_resource_remove_t< T >, Elems > |
|
More...
|
|
template<aie_dm_resourceResource = aie_dm_resource::none,DecoratedElemBaseTypeT = void> |
auto |
aie::load_v(const T *ptr) -> vector<aie_dm_resource_remove_t< T >, native_vector_length_v< T >> |
|
More...
|
|
template<RealVectorVec,RealElemE> |
mask< Vec::size()> |
aie::lt(const Vec &v, E a) |
|
More...
|
|
template<RealVectorVec1,RealVectorVec2> |
mask< Vec1::size()> |
aie::lt(const Vec1 &v1, const Vec2 &v2) |
|
More...
|
|
template<RealElemE,RealVectorVec> |
mask< Vec::size()> |
aie::lt(E a, const Vec &v) |
|
More...
|
|
template |
bool |
aie::lt(T a, T b) |
|
More...
|
|
template<AccumOrOpAcc,VectorOrOpVec,ElemOrOpE> |
constexpr auto |
aie::mac(const Acc &acc, const Vec &v, E a) -> operand_base_type_t< Acc > |
|
More...
|
|
template<AccumOrOpAcc,VectorOrOpVec1,VectorOrOpVec2> |
constexpr auto |
aie::mac(const Acc &acc, const Vec1 &v1, const Vec2 &v2) -> operand_base_type_t< Acc > |
|
More...
|
|
template<AccumOrOpAcc,ElemOrOpE,VectorOrOpVec> |
constexpr auto |
aie::mac(const Acc &acc, E a, const Vec &v) -> operand_base_type_t< Acc > |
|
More...
|
|
template |
TR |
aie::mac(TR c, T1 a, T2 b) |
|
template<AccumOrOpAcc,VectorVec> |
constexpr auto |
aie::mac_square(const Acc &acc, const Vec &v) |
|
More...
|
|
template<RealVectorVec,RealElemE> |
auto |
aie::max(const Vec &v, E a) ->aie_dm_resource_remove_t< Vec > |
|
More...
|
|
template<RealVectorVec1,RealVectorVec2> |
auto |
aie::max(const Vec1 &v1, const Vec2 &v2) ->aie_dm_resource_remove_t< Vec1 > |
|
More...
|
|
template<RealElemE,RealVectorVec> |
auto |
aie::max(E a, const Vec &v) ->aie_dm_resource_remove_t< Vec > |
|
More...
|
|
template |
T |
aie::max(T a, T b) |
|
More...
|
|
template<RealVectorVec1,RealVectorVec2> |
auto |
aie::max_cmp(const Vec1 &v1, const Vec2 &v2) -> std::tuple<aie_dm_resource_remove_t< Vec1 >, mask< Vec1::size()>> |
|
template<RealVectorVec> |
Vec::value_type |
aie::max_reduce(const Vec &v) |
|
template<RealVectorVec,RealElemE> |
auto |
aie::maxdiff(const Vec &v, E a) ->aie_dm_resource_remove_t< Vec > |
|
template<RealVectorVec1,RealVectorVec2> |
auto |
aie::maxdiff(const Vec1 &v1, const Vec2 &v2) ->aie_dm_resource_remove_t< Vec1 > |
|
template<RealElemE,RealVectorVec> |
auto |
aie::maxdiff(E a, const Vec &v) ->aie_dm_resource_remove_t< Vec > |
|
template<RealVectorVec,RealElemE> |
auto |
aie::min(const Vec &v, E a) ->aie_dm_resource_remove_t< Vec > |
|
More...
|
|
template<RealVectorVec1,RealVectorVec2> |
auto |
aie::min(const Vec1 &v1, const Vec2 &v2) ->aie_dm_resource_remove_t< Vec1 > |
|
More...
|
|
template<RealElemE,RealVectorVec> |
auto |
aie::min(E a, const Vec &v) ->aie_dm_resource_remove_t< Vec > |
|
More...
|
|
template |
T |
aie::min(T a, T b) |
|
More...
|
|
template<RealVectorVec1,RealVectorVec2> |
auto |
aie::min_cmp(const Vec1 &v1, const Vec2 &v2) -> std::tuple<aie_dm_resource_remove_t< Vec1 >, mask< Vec1::size()>> |
|
template<RealVectorVec> |
Vec::value_type |
aie::min_reduce(const Vec &v) |
|
templateAccumAcc,VectorVecA,VectorVecB> |
auto |
aie::mmac_fn(Acc &c, const VecA &a, const VecB &b) |
|
templateAccumElemBaseTypeAccumTag = accauto,VectorVecA = void,VectorVecB = void> |
auto |
aie::mmul_fn(const VecA &a, const VecB &b) |
|
template<AccumAcc,VectorOrOpVec,ElemOrOpE> |
constexpr auto |
aie::msc(const Acc &acc, const Vec &v, E a) ->aie_dm_resource_remove_t< Acc > |
|
More...
|
|
template<AccumAcc,VectorOrOpVec1,VectorOrOpVec2> |
constexpr auto |
aie::msc(const Acc &acc, const Vec1 &v1, const Vec2 &v2) ->aie_dm_resource_remove_t< Acc > |
|
More...
|
|
template<AccumAcc,ElemOrOpE,VectorOrOpVec> |
constexpr auto |
aie::msc(const Acc &acc, E a, const Vec &v) ->aie_dm_resource_remove_t< Acc > |
|
More...
|
|
template |
TR |
aie::msc(TR c, T1 a, T2 b) |
|
template<AccumAcc,VectorVec> |
constexpr auto |
aie::msc_square(const Acc &acc, const Vec &v) |
|
More...
|
|
template<VectorOrOpVec,ElemOrOpE> |
constexpr auto |
aie::mul(const Vec &v, E a) |
|
More...
|
|
template<AccumElemBaseTypeAccumTag,VectorOrOpVec,ElemOrOpE> |
constexpr auto |
aie::mul(const Vec &v, E a) -> accum< AccumTag, Vec::size()> |
|
More...
|
|
template<VectorOrOpVec1,VectorOrOpVec2> |
constexpr auto |
aie::mul(const Vec1 &v1, const Vec2 &v2) |
|
More...
|
|
template<AccumElemBaseTypeAccumTag,VectorOrOpVec1,VectorOrOpVec2> |
constexpr auto |
aie::mul(const Vec1 &v1, const Vec2 &v2) -> accum< AccumTag, Vec1::size()> |
|
More...
|
|
template<ElemOrOpE,VectorOrOpVec> |
constexpr auto |
aie::mul(E a, const Vec &v) |
|
More...
|
|
template<AccumElemBaseTypeAccumTag,ElemOrOpE,VectorOrOpVec> |
constexpr auto |
aie::mul(E a, const Vec &v) -> accum< AccumTag, Vec::size()> |
|
More...
|
|
template |
auto |
aie::mul(T1 a, T2 b) |
|
template<AccumElemBaseTypeAccumTag,VectorVec> |
Vec::value_type |
aie::mul_reduce(const Vec &v) |
|
template<VectorVec> |
constexpr Vec::value_type |
aie::mul_reduce(const Vec &v) |
|
template<VectorVec> |
constexpr auto |
aie::mul_square(const Vec &v) |
|
More...
|
|
template<AccumElemBaseTypeAccumTag,VectorVec> |
constexpr auto |
aie::mul_square(const Vec &v) -> accum< AccumTag, Vec::size()> |
|
More...
|
|
template<ElemE> |
constexpr auto |
aie::neg(const E &a) -> operand_base_type_t< E > |
|
More...
|
|
template<VectorVec> |
constexpr auto |
aie::neg(const Vec &v) ->aie_dm_resource_remove_t< Vec > |
|
More...
|
|
template<VectorOrOpVec,ElemOrOpE> |
constexpr auto |
aie::negmul(const Vec &v, E a) |
|
More...
|
|
template<AccumElemBaseTypeAccumTag,VectorOrOpVec,ElemOrOpE> |
constexpr auto |
aie::negmul(const Vec &v, E a) -> accum< AccumTag, Vec::size()> |
|
More...
|
|
template<VectorOrOpVec1,VectorOrOpVec2> |
constexpr auto |
aie::negmul(const Vec1 &v1, const Vec2 &v2) |
|
More...
|
|
template<AccumElemBaseTypeAccumTag,VectorOrOpVec1,VectorOrOpVec2> |
constexpr auto |
aie::negmul(const Vec1 &v1, const Vec2 &v2) -> accum< AccumTag, Vec1::size()> |
|
More...
|
|
template<ElemOrOpE,VectorOrOpVec> |
constexpr auto |
aie::negmul(E a, const Vec &v) |
|
More...
|
|
template<AccumElemBaseTypeAccumTag,ElemOrOpE,VectorOrOpVec> |
constexpr auto |
aie::negmul(E a, const Vec &v) -> accum< AccumTag, Vec::size()> |
|
More...
|
|
template<VectorVec,ElemE> |
mask< Vec::size()> |
aie::neq(const Vec &v, E a) |
|
More...
|
|
template<VectorVec1,VectorVec2> |
mask< Vec1::size()> |
aie::neq(const Vec1 &v1, const Vec2 &v2) |
|
More...
|
|
template<ElemE,VectorVec> |
mask< Vec::size()> |
aie::neq(E a, const Vec &v) |
|
More...
|
|
template |
bool |
aie::neq(T a, T b) |
|
More...
|
|
template<VectorVec1,VectorVec2> |
constexpr bool |
aie::not_equal(const Vec1 &v1, const Vec2 &v2) |
|
More...
|
|
template |
constexpr unary_op< T, Operation::Abs > |
aie::op_abs(const T &e) |
|
More...
|
|
template<AccumAcc> |
constexpr unary_op< Acc, Operation::Acc_Add > |
aie::op_add(const Acc &acc) |
|
More...
|
|
template |
constexpr unary_op< T, Operation::Conj > |
aie::op_conj(const T &e) |
|
More...
|
|
template<VectorVec> |
constexpr binary_op< Vec, Vec, Operation::Max > |
aie::op_max(const Vec &a, const Vec &b) |
|
More...
|
|
template<VectorVec> |
constexpr binary_op< Vec, Vec, Operation::Min > |
aie::op_min(const Vec &a, const Vec &b) |
|
More...
|
|
template |
constexpr unary_op< T, Operation::None > |
aie::op_none(const T &e) |
|
More...
|
|
template<AccumAcc> |
constexpr unary_op< Acc, Operation::Acc_Sub > |
aie::op_sub(const Acc &acc) |
|
More...
|
|
template<VectorVec> |
Vec::value_type |
aie::reduce_add(const Vec &v) |
|
More...
|
|
template<VectorVec, Vector... Others> |
auto |
aie::reduce_add_v(const Vec &v, const Others &... others) ->aie_dm_resource_remove_t< Vec > |
|
More...
|
|
template<RealVectorVec> |
Vec::value_type |
aie::reduce_max(const Vec &v) |
|
More...
|
|
template<RealVectorVec> |
Vec::value_type |
aie::reduce_min(const Vec &v) |
|
More...
|
|
template<AccumElemBaseTypeAccumTag,VectorVec> |
Vec::value_type |
aie::reduce_mul(const Vec &v) |
|
template<VectorVec> |
constexpr Vec::value_type |
aie::reduce_mul(const Vec &v) |
|
template<VectorVec> |
auto |
aie::reverse(const Vec &v) ->aie_dm_resource_remove_t< Vec > |
|
More...
|
|
template<ElemE1,ElemE2,MaskM> |
vector< operand_base_type_t< E1 >, M::size()> |
aie::select(const E1 &a, const E2 &b, const M &m) |
|
More...
|
|
template<VectorVec,ElemE,MaskM> |
auto |
aie::select(const Vec &v, E a, const M &m) ->aie_dm_resource_remove_t< Vec > |
|
More...
|
|
template<VectorVec1,VectorVec2,MaskM> |
auto |
aie::select(const Vec1 &v1, const Vec2 &v2, const M &m) ->aie_dm_resource_remove_t< Vec1 > |
|
More...
|
|
template<ElemE,VectorVec,MaskM> |
auto |
aie::select(E a, const Vec &v, const M &m) ->aie_dm_resource_remove_t< Vec > |
|
More...
|
|
template<VectorVec> |
auto |
aie::shuffle_down(const Vec &v, unsigned n) ->aie_dm_resource_remove_t< Vec > |
|
More...
|
|
template<VectorVec> |
auto |
aie::shuffle_down_fill(const Vec &v, const Vec &fill, unsigned n) ->aie_dm_resource_remove_t< Vec > |
|
More...
|
|
template<VectorVec> |
auto |
aie::shuffle_down_rotate(const Vec &v, unsigned n) ->aie_dm_resource_remove_t< Vec > |
|
More...
|
|
template<VectorVec> |
auto |
aie::shuffle_up(const Vec &v, unsigned n) ->aie_dm_resource_remove_t< Vec > |
|
More...
|
|
template<VectorVec> |
auto |
aie::shuffle_up_fill(const Vec &v, const Vec &fill, unsigned n) ->aie_dm_resource_remove_t< Vec > |
|
More...
|
|
template<VectorVec> |
auto |
aie::shuffle_up_replicate(const Vec &v, unsigned n) ->aie_dm_resource_remove_t< Vec > |
|
More...
|
|
template<VectorVec> |
auto |
aie::shuffle_up_rotate(const Vec &v, unsigned n) ->aie_dm_resource_remove_t< Vec > |
|
More...
|
|
template<RealVectorVec> |
auto |
aie::sin(const Vec &v) ->aie_dm_resource_remove_t< Vec > |
|
More...
|
|
template |
auto |
aie::sin(E a) |
|
More...
|
|
template<RealVectorVec> |
auto |
aie::sincos(const Vec &v) -> std::pair<aie_dm_resource_remove_t< Vec >,aie_dm_resource_remove_t< Vec >> |
|
More...
|
|
template |
auto |
aie::sincos(E a) |
|
More...
|
|
template<RealVectorVec> |
auto |
aie::sincos_complex(const Vec &v) -> vector< std::conditional_t< Vec::is_floating_point(), cfloat, cint16 >, Vec::size()> |
|
More...
|
|
template |
auto |
aie::sincos_complex(E a) -> std::conditional_t< detail::is_floating_point_v< operand_base_type_t< E >>, cfloat, cint16 > |
|
More...
|
|
templateAccumAcc = void,VectorOrOpVecCoeff = void,VectorOrOpVecData = void> |
auto |
aie::sliding_mac(const Acc &acc, const VecCoeff &coeff, const VecData &data, unsigned data_start) |
|
templateAccumAcc = void,VectorOrOpVecCoeff = void,VectorOrOpVecData = void> |
auto |
aie::sliding_mac(const Acc &acc, const VecCoeff &coeff, unsigned coeff_start, const VecData &data, unsigned data_start) |
|
templateAccumAcc = void,VectorOrOpVecCoeff = void,VectorOrOpVecData = void> |
auto |
aie::sliding_mac_antisym(const Acc &acc, const VecCoeff &coeff, const VecData &data, unsigned data_start) |
|
templateAccumAcc = void,VectorOrOpVecCoeff = void,VectorOrOpVecData = void> |
auto |
aie::sliding_mac_antisym(const Acc &acc, const VecCoeff &coeff, const VecData &ldata, unsigned ldata_start, const VecData &rdata, unsigned rdata_start) |
|
templateAccumAcc = void,VectorOrOpVecCoeff = void,VectorOrOpVecData = void> |
auto |
aie::sliding_mac_antisym(const Acc &acc, const VecCoeff &coeff, unsigned coeff_start, const VecData &data, unsigned data_start) |
|
templateAccumAcc = void,VectorOrOpVecCoeff = void,VectorOrOpVecData = void> |
auto |
aie::sliding_mac_antisym(const Acc &acc, const VecCoeff &coeff, unsigned coeff_start, const VecData &data, unsigned ldata_start, unsigned rdata_start) |
|
templateAccumAcc = void,VectorOrOpVecCoeff = void,VectorOrOpVecData = void> |
auto |
aie::sliding_mac_antisym(const Acc &acc, const VecCoeff &coeff, unsigned coeff_start, const VecData &ldata, unsigned ldata_start, const VecData &rdata, unsigned rdata_start) |
|
templateAccumAcc = void,VectorOrOpVecCoeff = void,VectorOrOpVecData = void> |
auto |
aie::sliding_mac_antisym_uct(const Acc &acc, const VecCoeff &coeff, unsigned coeff_start, const VecData &data, unsigned data_start, unsigned uct_shift) |
|
templateAccumAcc = void,VectorOrOpVecCoeff = void,VectorOrOpVecData = void> |
auto |
aie::sliding_mac_antisym_uct(const Acc &acc, const VecCoeff &coeff, unsigned coeff_start, const VecData &ldata, unsigned ldata_start, const VecData &rdata, unsigned rdata_start, unsigned uct_shift) |
|
templateAccumAcc = void,VectorOrOpVecCoeff = void,VectorOrOpVecData = void> |
auto |
aie::sliding_mac_sym(const Acc &acc, const VecCoeff &coeff, const VecData &data, unsigned data_start) |
|
templateAccumAcc = void,VectorOrOpVecCoeff = void,VectorOrOpVecData = void> |
auto |
aie::sliding_mac_sym(const Acc &acc, const VecCoeff &coeff, const VecData &ldata, unsigned ldata_start, const VecData &rdata, unsigned rdata_start) |
|
templateAccumAcc = void,VectorOrOpVecCoeff = void,VectorOrOpVecData = void> |
auto |
aie::sliding_mac_sym(const Acc &acc, const VecCoeff &coeff, unsigned coeff_start, const VecData &data, unsigned data_start) |
|
templateAccumAcc = void,VectorOrOpVecCoeff = void,VectorOrOpVecData = void> |
auto |
aie::sliding_mac_sym(const Acc &acc, const VecCoeff &coeff, unsigned coeff_start, const VecData &data, unsigned ldata_start, unsigned rdata_start) |
|
templateAccumAcc = void,VectorOrOpVecCoeff = void,VectorOrOpVecData = void> |
auto |
aie::sliding_mac_sym(const Acc &acc, const VecCoeff &coeff, unsigned coeff_start, const VecData &ldata, unsigned ldata_start, const VecData &rdata, unsigned rdata_start) |
|
templateAccumAcc = void,VectorOrOpVecCoeff = void,VectorOrOpVecData = void> |
auto |
aie::sliding_mac_sym_uct(const Acc &acc, const VecCoeff &coeff, unsigned coeff_start, const VecData &data, unsigned data_start, unsigned uct_shift) |
|
templateAccumAcc = void,VectorOrOpVecCoeff = void,VectorOrOpVecData = void> |
auto |
aie::sliding_mac_sym_uct(const Acc &acc, const VecCoeff &coeff, unsigned coeff_start, const VecData &ldata, unsigned ldata_start, const VecData &rdata, unsigned rdata_start, unsigned uct_shift) |
|
templateAccumElemBaseTypeAccumTag = accauto,VectorOrOpVecCoeff = void,VectorOrOpVecData = void> |
auto |
aie::sliding_mul(const VecCoeff &coeff, const VecData &data, unsigned data_start) |
|
templateAccumElemBaseTypeAccumTag = accauto,VectorOrOpVecCoeff = void,VectorOrOpVecData = void> |
auto |
aie::sliding_mul(const VecCoeff &coeff, unsigned coeff_start, const VecData &data, unsigned data_start) |
|
templateAccumElemBaseTypeAccumTag = accauto,VectorOrOpVecCoeff = void,VectorOrOpVecData = void> |
auto |
aie::sliding_mul_antisym(const VecCoeff &coeff, const VecData &data, unsigned data_start) |
|
templateAccumElemBaseTypeAccumTag = accauto, typename VecCoeff = void, typename VecData = void> |
auto |
aie::sliding_mul_antisym(const VecCoeff &coeff, const VecData &ldata, unsigned ldata_start, const VecData &rdata, unsigned rdata_start) |
|
templateAccumElemBaseTypeAccumTag = accauto,VectorOrOpVecCoeff = void,VectorOrOpVecData = void> |
auto |
aie::sliding_mul_antisym(const VecCoeff &coeff, unsigned coeff_start, const VecData &data, unsigned data_start) |
|
templateAccumElemBaseTypeAccumTag = accauto,VectorOrOpVecCoeff = void,VectorOrOpVecData = void> |
auto |
aie::sliding_mul_antisym(const VecCoeff &coeff, unsigned coeff_start, const VecData &data, unsigned ldata_start, unsigned rdata_start) |
|
templateAccumElemBaseTypeAccumTag = accauto,VectorOrOpVecCoeff = void,VectorOrOpVecData = void> |
auto |
aie::sliding_mul_antisym(const VecCoeff &coeff, unsigned coeff_start, const VecData &ldata, unsigned ldata_start, const VecData &rdata, unsigned rdata_start) |
|
templateAccumElemBaseTypeAccumTag = accauto,VectorOrOpVecCoeff = void,VectorOrOpVecData = void> |
auto |
aie::sliding_mul_antisym_uct(const VecCoeff &coeff, unsigned coeff_start, const VecData &data, unsigned data_start, unsigned uct_shift) |
|
templateAccumElemBaseTypeAccumTag = accauto,VectorOrOpVecCoeff = void,VectorOrOpVecData = void> |
auto |
aie::sliding_mul_antisym_uct(const VecCoeff &coeff, unsigned coeff_start, const VecData &ldata, unsigned ldata_start, const VecData &rdata, unsigned rdata_start, unsigned uct_shift) |
|
templateAccumElemBaseTypeAccumTag = accauto,VectorOrOpVecCoeff = void,VectorOrOpVecData = void> |
auto |
aie::sliding_mul_sym(const VecCoeff &coeff, const VecData &data, unsigned data_start) |
|
templateAccumElemBaseTypeAccumTag = accauto, typename VecCoeff = void, typename VecData = void> |
auto |
aie::sliding_mul_sym(const VecCoeff &coeff, const VecData &ldata, unsigned ldata_start, const VecData &rdata, unsigned rdata_start) |
|
templateAccumElemBaseTypeAccumTag = accauto,VectorOrOpVecCoeff = void,VectorOrOpVecData = void> |
auto |
aie::sliding_mul_sym(const VecCoeff &coeff, unsigned coeff_start, const VecData &data, unsigned data_start) |
|
templateAccumElemBaseTypeAccumTag = accauto,VectorOrOpVecCoeff = void,VectorOrOpVecData = void> |
auto |
aie::sliding_mul_sym(const VecCoeff &coeff, unsigned coeff_start, const VecData &data, unsigned ldata_start, unsigned rdata_start) |
|
templateAccumElemBaseTypeAccumTag = accauto,VectorOrOpVecCoeff = void,VectorOrOpVecData = void> |
auto |
aie::sliding_mul_sym(const VecCoeff &coeff, unsigned coeff_start, const VecData &ldata, unsigned ldata_start, const VecData &rdata, unsigned rdata_start) |
|
templateAccumElemBaseTypeAccumTag = accauto,VectorOrOpVecCoeff = void,VectorOrOpVecData = void> |
auto |
aie::sliding_mul_sym_uct(const VecCoeff &coeff, unsigned coeff_start, const VecData &data, unsigned data_start, unsigned uct_shift) |
|
templateAccumElemBaseTypeAccumTag = accauto,VectorOrOpVecCoeff = void,VectorOrOpVecData = void> |
auto |
aie::sliding_mul_sym_uct(const VecCoeff &coeff, unsigned coeff_start, const VecData &ldata, unsigned ldata_start, const VecData &rdata, unsigned rdata_start, unsigned uct_shift) |
|
template |
accum< accfloat, Elems > |
aie::sqrt(const accum< accfloat, Elems > &v) |
|
template<VectorVec> |
auto |
aie::sqrt(const Vec &v) ->aie_dm_resource_remove_t< Vec > |
|
template<ElemE> |
auto |
aie::sqrt(E a) |
|
templateaie_dm_resourceResource = aie_dm_resource::none,DecoratedElemBaseTypeT1 = void,ElemBaseTypeT2 = void> |
T1 * |
aie::store_unaligned_v(T1 *ptr, const vector< T2, Elems > &v, unsigned aligned_elems=1) |
|
More...
|
|
template<aie_dm_resourceResource = aie_dm_resource::none,DecoratedElemBaseTypeT1 = void,ElemBaseTypeT2, unsigned Elems = 0> |
T1 * |
aie::store_v(T1 *ptr, const vector< T2, Elems > &v) |
|
More...
|
|
template<AccumAcc,VectorVec> |
constexpr auto |
aie::sub(const Acc &acc, const Vec &v) ->aie_dm_resource_remove_t< Acc > |
|
More...
|
|
template<AccumAcc,ElemE> |
auto |
aie::sub(const Acc &acc, E a) ->aie_dm_resource_remove_t< Acc > |
|
More...
|
|
template<VectorVec,ElemE> |
auto |
aie::sub(const Vec &v, E a) ->aie_dm_resource_remove_t< Vec > |
|
More...
|
|
template<VectorVec1,VectorVec2> |
auto |
aie::sub(const Vec1 &v1, const Vec2 &v2) ->aie_dm_resource_remove_t< Vec1 > |
|
More...
|
|
template<ElemE,VectorVec> |
auto |
aie::sub(E a, const Vec &v) ->aie_dm_resource_remove_t< Vec > |
|
More...
|
|
template |
T |
aie::sub(T a, T b) |
|
template |
auto |
aie::to_fixed(const vector< T, Elems > &v, int shift=0) -> vector< std::conditional_t< std::is_same_v< T, float >,int32, cint32 >, Elems > |
|
More...
|
|
template |
auto |
aie::to_fixed(T a, int shift=0) |
|
More...
|
|
template |
auto |
aie::to_float(const vector< T, Elems > &v, int shift=0) |
|
More...
|
|
template |
auto |
aie::to_float(T a, int shift=0) |
|
More...
|
|
templateVectorVec> |
auto |
aie::transpose(const Vec &v) ->aie_dm_resource_remove_t< Vec > |
|
template<VectorVec> |
constexpr auto |
aie::upshift(const Vec &v, unsigned shift) ->aie_dm_resource_remove_t< Vec > |
|
More...
|
|
template<ElemBaseTypeDstT,VectorVec> |
auto |
aie::vector_cast(const Vec &v) |
|
More...
|
|
template<ElemBaseTypeT> |
constexpr T |
aie::zero() |
|
More...
|
|
template<ElemBaseTypeT, unsigned Elems = native_vector_length_v> |
vector< T, Elems > |
aie::zeros() |
|
More...
|
|
template<AccumElemBaseTypeT, unsigned Elems = native_vector_length_v> |
accum< T, Elems > |
aie::zeros() |
|
More...
|
|