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