E.V.E
v2022.09.01

◆ count_true

eve::count_true = {}
inlineconstexpr

Computes the number of non 0 elements.

Defined in Header

#include <eve/module/core.hpp>

Callable Signatures

namespace eve
{
template< eve::value T >
T count_true(T x) noexcept; //1
}
template< eve::top_bits M >
as_wide_as<unsigned, M> any(M m) noexcept; //2
}
constexpr callable_any_ any
Computes a bool value which is true if and only if any elements of x is not zero.
Definition: any.hpp:71
constexpr callable_count_true_ count_true
Computes the number of non 0 elements.
Definition: count_true.hpp:66
Definition: all_of.hpp:22
  • 1. The T value of the number of non 0 elements.
  • 2 The unsigned value of the number of non 0 elements.

Parameters

Return value

The value of the number of non 0 elements is returned.

Example

#include <eve/module/core.hpp>
#include <eve/wide.hpp>
#include <iostream>
using wide_ft = eve::logical<eve::wide<float, eve::fixed<4>>>;
int main()
{
eve::logical<float> xf = true;
std::cout << "---- scalar" << '\n'
<< "<- xf = " << xf << '\n'
<< "-> count_true(xf) = " << eve::count_true(xf) << '\n';
wide_ft pf = {true,false,true,false};
std::cout << "---- simd" << '\n'
<< "<- pf = " << pf << '\n'
<< "-> count_true(pf) = " << eve::count_true(pf) << '\n';
return 0;
}

Semantic Modifiers

  • Masked Call

    The call eve::$name$[mask](x, ...) provides a masked version of `count_true which count the non masked non zero element

    Example

    #include <eve/module/core.hpp>
    #include <eve/wide.hpp>
    #include <iostream>
    using wide_ft = eve::logical<eve::wide<float, eve::fixed<4>>>;
    int main()
    {
    eve::logical<float> xf = true;
    wide_ft pf = {true,false,true,false};
    std::cout << "---- simd" << '\n'
    << "<- pf = " << pf << '\n'
    << "-> count_true(pf) = " << eve::count_true(pf) << '\n'
    << "-> count_true[ignore_first(2)](pf) = " << eve::count_true[eve::ignore_first(2)](pf) << '\n';
    return 0;
    }
    Conditional expression ignoring the k first lanes from a eve::simd_value.
    Definition: conditional.hpp:419