batch_bool

template <class T, class A = default_arch>
class xsimd::batch_bool

batch of predicate over scalar or complex values.

Abstract representation of a predicate over SIMD register for scalar or complex values.

Template Parameters
  • T: the type of the predicated values.

  • A: the architecture this batch is tied too.

Inherits from types::get_bool_simd_register_t< T, A >

Public Types

template<>
using value_type = bool

Type of the scalar elements within this batch.

template<>
using arch_type = A

SIMD Architecture abstracted by this batch.

template<>
using register_type = typename base_type::register_type

SIMD register type abstracted by this batch.

template<>
using batch_type = batch<T, A>

Associated batch type this batch represents logical operations for.

Public Functions

batch_bool()

Create a batch initialized with undefined values.

uint64_t mask() const

Extract a scalar mask representation from this batch_bool.

Return

bit mask

Public Static Functions

batch_bool<T, A> from_mask(uint64_t mask)

Extract a scalar mask representation from this batch_bool.

Return

bit mask

Public Static Attributes

constexpr std::size_t size = sizeof(types::simd_register<T, A>) / sizeof(T)

Number of scalar elements in this batch.

Logical operators

template <class T, class A>
batch_bool<T, A> xsimd::bitwise_andnot(batch_bool<T, A> const &x, batch_bool<T, A> const &y)

Computes the bitwise and not of batches x and y.

Return

the result of the bitwise and not.

Parameters
  • x: batch involved in the operation.

  • y: batch involved in the operation.

Reducers

template <class T, class A>
bool xsimd::all(batch_bool<T, A> const &x)

Returns true if all the boolean values in the batch are true, false otherwise.

Return

a boolean scalar.

Parameters
  • x: the batch to reduce.

template <class T, class A>
bool xsimd::any(batch_bool<T, A> const &x)

Return true if any of the boolean values in the batch is true, false otherwise.

Return

a boolean scalar.

Parameters
  • x: the batch to reduce.

template <class T, class A>
bool xsimd::none(batch_bool<T, A> const &x)

Return true if none of the boolean values in the batch is true, false otherwise.

Return

a boolean scalar.

Parameters
  • x: the batch to reduce.