Skip to content

Function split

function split(const vec<T, N> &) simd

template <size_t, typename T, size_t N>
KFR_INTRINSIC void split(const vec<T, N>&)

Terminal overload of split() for variadic recursion.

No-op overload that terminates the recursive unpacking of output references.

Template parameters
T Element type of the vector.
N Input vector length.
Parameters
x Source vector (unused).

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

Declared at simd/shuffle.hpp:437

Function split

function split(const vec<T, N> &, vec<T, Nout> &, Args &&...) simd

template <size_t start = 0, typename T, size_t N, size_t Nout, typename... Args>
KFR_INTRINSIC void split(const vec<T, N>& x, vec<T, Nout>& out, Args&&... args)

Splits x into consecutive subvectors written into the supplied output references.

Each output reference receives the next Nout elements of x, starting at offset start. The function recurses on the remaining outputs.

Template parameters
start Index of the first element to write into out.
T Element type of the vector.
N Input vector length.
Nout Length of the current output subvector.
Args Remaining output reference types.
Parameters
x Source vector.
out Output reference receiving the current subvector.
args Remaining output references.

Fully qualified name: kfr::split(const vec<T, N> &, vec<T, Nout> &, Args &&...)

Declared at simd/shuffle.hpp:454

Function split

function split(const vec<T, N> &, vec<T, N / 2> &, vec<T, N / 2> &) simd

template <typename T, size_t N>
KFR_INTRINSIC void split(const vec<T, N>& x, vec<T, N / 2>& low, vec<T, N / 2>& high)

Splits x into two equal halves.

Template parameters
T Element type of the vector.
N Input vector length, must be even.
Parameters
x Source vector.
low Output receiving the first N/2 elements.
high Output receiving the last N/2 elements.

Fully qualified name: kfr::split(const vec<T, N> &, vec<T, N / 2> &, vec<T, N / 2> &)

Declared at simd/shuffle.hpp:468

Function split

function split(const vec<T, N> &, vec<T, N / 4> &, vec<T, N / 4> &, vec<T, N / 4> &, vec<T, N / 4> &) simd

template <typename T, size_t N>
KFR_INTRINSIC void split(const vec<T, N>& x, vec<T, N / 4>& w0, vec<T, N / 4>& w1, vec<T, N / 4>& w2,
                         vec<T, N / 4>& w3)

Splits x into four equal quarters.

Template parameters
T Element type of the vector.
N Input vector length, must be divisible by 4.
Parameters
x Source vector.
w0 Output receiving the first quarter.
w1 Output receiving the second quarter.
w2 Output receiving the third quarter.
w3 Output receiving the fourth quarter.

Fully qualified name: kfr::split(const vec<T, N> &, vec<T, N / 4> &, vec<T, N / 4> &, vec<T, N / 4> &, vec<T, N / 4> &)

Declared at simd/shuffle.hpp:484

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