E.V.E
v2023.02.15
 
Loading...
Searching...
No Matches

◆ count_true

eve::count_true = functor<count_true_t>
inlineconstexpr

Header file

#include <eve/module/core.hpp>

Callable Signatures

namespace eve
{
// Regular overloads
template<relaxed_logical_value L>
std::ptrdiff_t count_true(L x) noexcept; // 1
template<relaxed_logical_value L>
std::ptrdiff_t count_true(top_bits<L> t) noexcept; // 1
// Lanes masking
std::ptrdiff_t count_true[conditional_expr auto c](/* any of the above overloads */) noexcept; // 2
std::ptrdiff_t count_true[logical_value auto m](/* any of the above overloads */) noexcept; // 2
}
Specifies that a type is a Conditional Expression.
Definition conditional.hpp:28
The concept logical_value<T> is satisfied if and only if T satisfies eve::value and the element type ...
Definition value.hpp:134
constexpr auto count_true
Computes the number of elements of the input which evaluates to true.
Definition count_true.hpp:83
typename decltype(detail::as_translated_type(as< T >{}))::type translate_t
Returns the final translated type of T.
Definition translation.hpp:107
EVE Main Namespace.
Definition abi.hpp:19

Parameters

Return value

  1. The number of elements in x which evaluates to true. Scalar values are treated as one element.
  2. The masked version which return the number of non-masked true elements.

Example

// revision 0
#include <eve/module/core.hpp>
#include <iostream>
int main()
{
eve::wide wu0{0u, 1u, 2u, 3u, 4u, 5u, 6u, 7u};
std::cout << "<- wu0 = " << wu0 << "\n";
std::cout << "-> count_true(wu0 <= maximum(wu0)/2) = " << eve::count_true(wu0 <= eve::maximum(wu0)/2) << "\n";
std::cout << "-> count_true[ignore_last(2)](wu0 <= maximum(wu0)/2) = " << eve::count_true[eve::ignore_last(2)](wu0 <= eve::maximum(wu0)/2) << "\n";
}
constexpr auto maximum
Computes the maximal value in a simd vector or valmin if the input is fully masked.
Definition maximum.hpp:82
Conditional expression ignoring the k last lanes from a eve::simd_value.
Definition conditional.hpp:320
Wrapper for SIMD registers.
Definition wide.hpp:94

Semantic Modifiers