Operations to initialize vectors and accumulators.
|
template<ElemBaseType T, unsigned Elems = native_vector_length_v<T>, unsigned N>
requires (arch::is(arch::Gen2) && detail::utils::is_powerof2(N) && (detail::type_bits_v<T> * N) <= 64) |
| vector< T, Elems > | aie::broadcast (const T(&a)[N]) |
| | Returns a vector whose elements are initialized to a repeating set of values.
|
| |
| template<Elem E, unsigned Elems = native_vector_length_v<E>> |
| vector< operand_base_type_t< E >, Elems > | aie::broadcast (E a) |
| | Returns a vector whose elements are initialized to the given value.
|
| |
template<Accum Acc, Accum... Accums>
requires ((is_same_accum_v<Acc, Accums> && ...)) |
| auto | aie::concat (const Acc &acc, const Accums &...accums) -> accum< typename Acc::value_type, Acc::size() *(1+sizeof...(Accums))> |
| | Concatenate the contents of all input accumulators into a larger accumulator.
|
| |
template<Vector Vec, Vector... Vectors>
requires ((is_same_vector_v<Vec, Vectors> && ...)) |
| auto | aie::concat (const Vec &v, const Vectors &...vectors) -> vector< typename Vec::value_type, Vec::size() *(1+sizeof...(Vectors))> |
| | Concatenate the contents of all input vectors into a larger vector.
|
| |
| template<ElemBaseType T, unsigned Elems = native_vector_length_v<T>> |
| vector< T, Elems > | aie::zeros () |
| | Returns a vector whose elements are initialized to zero.
|
| |
◆ broadcast() [1/2]
template<ElemBaseType T, unsigned Elems = native_vector_length_v<T>, unsigned N>
requires (
arch::is(
arch::Gen2) && detail::utils::is_powerof2(N) && (detail::type_bits_v<T> * N) <= 64)
| vector< T, Elems > aie::broadcast |
( |
const T(&) | a[N] | ) |
|
Returns a vector whose elements are initialized to a repeating set of values.
unsigned i = 0;
while (i < Elems)
for (unsigned j = 0; j < N; ++j)
out[i++] = a[j];
- Template Parameters
-
| T | Element type of the result vector. |
| Elems | Size of the result vector. |
| N | Number of repeating elements. The combined number of bits must be small to fit in a scalar value (64bit or smaller). |
- Parameters
-
◆ broadcast() [2/2]
template<Elem E, unsigned Elems = native_vector_length_v<E>>
Returns a vector whose elements are initialized to the given value.
for(unsigned i = 0; i < Elems; ++i)
out[i] = a;
- Template Parameters
-
| E | Element type of the returned vector. |
| Elems | Size of the vector. |
- Parameters
-
◆ concat() [1/2]
template<Accum Acc, Accum... Accums>
requires ((
is_same_accum_v<Acc, Accums> && ...))
| auto aie::concat |
( |
const Acc & | acc, |
|
|
const Accums &... | accums ) -> accum<typename Acc::value_type, Acc::size() * (1 + sizeof...(Accums))>
|
Concatenate the contents of all input accumulators into a larger accumulator.
All input accumulators must have the same type and size.
- Parameters
-
| acc | First input accumulator. |
| accums | Rest of input accumulators. |
◆ concat() [2/2]
template<Vector Vec, Vector... Vectors>
requires ((
is_same_vector_v<Vec, Vectors> && ...))
| auto aie::concat |
( |
const Vec & | v, |
|
|
const Vectors &... | vectors ) -> vector<typename Vec::value_type, Vec::size() * (1 + sizeof...(Vectors))>
|
Concatenate the contents of all input vectors into a larger vector.
All input vectors must have the same type and size.
- Parameters
-
| v | First input vector. |
| vectors | Rest of input vectors. |
◆ zeros()
template<ElemBaseType T, unsigned Elems = native_vector_length_v<T>>
| vector< T, Elems > aie::zeros |
( |
| ) |
|
Returns a vector whose elements are initialized to zero.
for(unsigned i = 0; i < Elems; ++i)
out[i] = 0;
- Template Parameters
-
| E. | Element type of the returned vector. |
| Elems. | Size of the vector. |