Function transpose¶
function transpose(const vec<T, N> &) simd¶
template <size_t side1, size_t group = 1, typename T, size_t N, size_t size = N / group,
size_t side2 = size / side1>
requires(size > 3)
KFR_INTRINSIC vec<T, N> transpose(const vec<T, N>& x) Transposes a vector viewed as a side1 x side2 matrix (row-major).
The vector is treated as a matrix of size = N / group elements with side1 rows and side2 columns, where side2 = size / side1. The result is the matrix transpose. Active when size > 3.
| side1 | Number of rows in the interpreted matrix. |
| group | Number of lanes in each element group. |
| T | Element type of the vector. |
| N | Input vector length. |
| size | Number of elements per group, equals N / group. |
| side2 | Number of columns, equals size / side1. |
| x | Source vector. |
A vector of length N representing the transposed matrix. |
Fully qualified name: kfr::transpose(const vec<T, N> &)
Declared at simd/shuffle.hpp:1053
Function transpose¶
function transpose(const vec<T, N> &) simd¶
template <size_t side, size_t group = 1, typename T, size_t N>
requires(N / group <= 3)
KFR_INTRINSIC vec<T, N> transpose(const vec<T, N>& x) Identity overload of transpose() for small vectors (size <= 3).
For matrices with 3 or fewer elements per group, transposition is a no-op.
transpose Fully qualified name: kfr::transpose(const vec<T, N> &)
Declared at simd/shuffle.hpp:1065
Function transpose¶
function transpose(const vec<vec<T, N>, N> &) simd¶
template <typename T, size_t N>
KFR_INTRINSIC vec<vec<T, N>, N> transpose(const vec<vec<T, N>, N>& x) Transposes a vector of vectors (matrix of vectors).
Each inner vector is treated as a row; the result swaps rows and columns at the inner vector granularity.
| T | Element type of the inner vector. |
| N | Length of each inner vector and the outer vector. |
| x | Source vector of vectors. |
| The transposed vector of vectors. |
Fully qualified name: kfr::transpose(const vec<vec<T, N>, N> &)
Declared at simd/shuffle.hpp:1079