batmat 0.0.18
Batched linear algebra routines
Loading...
Searching...
No Matches
gather.hpp File Reference
#include <batmat/ops/mask.hpp>
#include <batmat/simd.hpp>
#include <concepts>
#include <type_traits>

Go to the source code of this file.

Gathering elements from memory

template<class T, class AbiT, class I, class AbiI, class M>
datapar::simd< T, AbiT > batmat::ops::gather (const T *p, datapar::simd< I, AbiI > idx, M mask)
 Gathers elements from memory at the addresses specified by idx, which should be an integer SIMD vector, and returns them in a SIMD vector of type datapar::simd<T, AbiT>.

Namespaces

namespace  batmat
namespace  batmat::ops
namespace  batmat::ops::detail

Concepts

concept  batmat::ops::detail::same_size_but_different_ints

Typedefs

template<std::integral I>
using batmat::ops::detail::convert_int_t = decltype(convert_int(std::declval<I>()))

Functions

template<class T, class AbiT, class I, class AbiI>
datapar::simd< T, AbiT > batmat::ops::detail::gather (datapar::simd< T, AbiT > src, typename datapar::simd< T, AbiT >::mask_type mask, datapar::simd< I, AbiI > vindex, const T *base_addr)
template<std::integral I>
auto batmat::ops::detail::convert_int (I i)