std::experi...al::none_of,(3)

πŸ“¦ version 2024.07.05, in nixpkgs unstable, opensuse-leap 16.0

πŸ’… NAME

okay bestie, this is the manual page for std::experi...al::none_of,(3) from the C++ Standard Libary β€” yes, that spelling is literally in the header, iykyk πŸ’€. The name block is giving:

std::experimental::all_of,std::experimental::any_of,std::experimental::none_of,
-
std::experimental::all_of,std::experimental::any_of,std::experimental::none_of,

So it's the whole squad: std::experimental::all_of, std::experimental::any_of, and std::experimental::none_of. 🌸


🌸 Synopsis

Defined in header <experimental/simd>

template< class T, class Abi >              (1) (parallelism TS v2)
bool all_of( const simd_mask<T, Abi>& k );
template< class T, class Abi >              (2) (parallelism TS v2)
bool any_of( const simd_mask<T, Abi>& k );
template< class T, class Abi >              (3) (parallelism TS v2)
bool none_of( const simd_mask<T, Abi>& k );
template< class T, class Abi >              (4) (parallelism TS v2)
bool some_of( const simd_mask<T, Abi>& k );
  1. Returns true if all values in k are true.
  2. Returns true if at least one value in k is true.
  3. Returns true if all values in k are false.
  4. Returns true if at least one value in k is true but not all values in k are true.

🫢 Parameters

  • k β€” the simd_mask to apply the reduction to.

⭐ Return value

The boolean result of the horizontal reduction. literally it's just the boolean result of the horizontal reduction, periodt. ✨


✨ Example

// Run this code

#include <cassert>
#include <experimental/simd>

namespace stq = std::experimental;

int main()
{
    using mask = stq::fixed_size_simd_mask<int, 4>;

    mask mask1{false}; // = {0, 0, 0, 0}
    assert
    (
        stq::none_of(mask1) == true &&
        stq::any_of(mask1) == false &&
        stq::some_of(mask1) == false &&
        stq::all_of(mask1) == false
    );

    mask mask2{true}; // = {1, 1, 1, 1}
    assert
    (
        stq::none_of(mask2) == false &&
        stq::any_of(mask2) == true &&
        stq::some_of(mask2) == false &&
        stq::all_of(mask2) == true
    );

    mask mask3{true};
    mask3[0] = mask3[1] = false; // mask3 = {0, 0, 1, 1}
    assert
    (
        stq::none_of(mask3) == false &&
        stq::any_of(mask3) == true &&
        stq::some_of(mask3) == true &&
        stq::all_of(mask3) == false
    );
}

mwah πŸ’‹ β€” source: http://cppreference.com, date: 2024.06.10, and the footer/version string is std::experi...al::none_of,(3). that's the whole page, bestie, go slay those horizontal reductions 🫢✨

πŸ“¦ where this page comes from