Batch of Constants
-
template<typename T, class A, T... Values>
struct batch_constant batch of integral constants
Abstract representation of a batch of integral constants.
- Template Parameters:
batch_type – the type of the associated batch values.
Values – constants represented by this batch
Public Functions
-
inline batch_type as_batch() const noexcept
Generate a batch of
batch_typefrom thisbatch_constant.
-
inline operator batch_type() const noexcept
Generate a batch of
batch_typefrom thisbatch_constant.
-
inline T get(std::size_t i) const noexcept
Get the
ith element of thisbatch_constant.
-
struct boolean_eq
-
struct boolean_ne
-
struct boolean_gt
-
struct boolean_ge
-
struct boolean_lt
-
struct boolean_le
-
template<typename T, class A, bool... Values>
struct batch_bool_constant batch of boolean constant
Abstract representation of a batch of boolean constants.
- Template Parameters:
batch_type – the type of the associated batch values.
Values – boolean constant represented by this batch
Public Functions
-
inline batch_type as_batch_bool() const noexcept
Generate a batch of
batch_typefrom thisbatch_bool_constant.
-
inline batch<as_integer_t<T>, A> as_batch() const noexcept
Generate a batch of
integersfrom thisbatch_bool_constant.
-
inline constexpr operator batch_type() const noexcept
Generate a batch of
batch_typefrom thisbatch_bool_constant.
-
template<typename T, class G, class A = default_arch>
inline decltype(detail::make_batch_constant<T, G, A>(detail::make_index_sequence<batch<T, A>::size>())) xsimd::make_batch_constant() noexcept Build a
batch_constantout of a generator function.The following generator produces a batch of
(n - 1, 0, 1, ... n-2)struct Rot { static constexpr unsigned get(unsigned i, unsigned n) { return (i + n - 1) % n; } };
- Template Parameters:
batch_type – type of the (non-constant) batch to build
G – type used to generate that batch. That type must have a static member
getthat’s used to generate the batch constant. Conversely, the generated batch_constant has value{G::get(0, batch_size), ... , G::get(batch_size - 1, batch_size)}
-
template<typename T, class G, class A = default_arch>
inline decltype(detail::make_batch_bool_constant<T, G, A>(detail::make_index_sequence<batch<T, A>::size>())) xsimd::make_batch_bool_constant() noexcept Build a
batch_bool_constantout of a generator function.Similar to
make_batch_constantforbatch_bool_constant
Note
make_batch_constant() and make_batch_bool_constant() also
accept a scalar value instead of a generator. In that case, that value is
broadcast to each slot of the constant batch.