Skip to content

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.

Template parameters
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.
Parameters
x Source vector.
Returns
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.

Template parameters
T Element type of the inner vector.
N Length of each inner vector and the outer vector.
Parameters
x Source vector of vectors.
Returns
The transposed vector of vectors.

Fully qualified name: kfr::transpose(const vec<vec<T, N>, N> &)

Declared at simd/shuffle.hpp:1079

This file was generated by cxxdox, a C++ documentation generator based on MkDocs Material and libclang.