FreeBSD Manual Pages
std::experi...al::popcount(3) C++ Standard Libarystd::experi...al::popcount(3) NAME std::experimental::popcount - std::experimental::popcount Synopsis Defined in header <experimental/simd> template< class T, class Abi > (parallelism TS v2) int popcount( const simd_mask<T, Abi>& k ) noexcept; Returns the number of true values in the mask k. Parameters k - the simd_mask to apply the reduction to Return value An int in the range [0, simd_size_v<T, Abi>). Example // Run this code #include <cstddef> #include <experimental/simd> #include <iostream> namespace stdx = std::experimental; template<typename Abi> int count_zeros(stdx::simd<int, Abi> v) { return stdx::popcount(v == 0); // v == 0 returns a simd_mask } void println(auto rem, auto const v) { std::cout << rem << ": "; for (std::size_t i = 0; i != v.size(); ++i) std::cout << v[i] << ' '; } int main() { stdx::simd<int> x{8}; println("x", x); std::cout << " zeros: " << count_zeros(x) << '\n'; x[3] = x[1] = false; println("x", x); std::cout << " zeros: " << count_zeros(x) << '\n'; } Possible output: x: 8 8 8 8 zeros: 0 x: 8 0 8 0 zeros: 2 http://cppreference.com 2024.06.10 std::experi...al::popcount(3)
NAME | Synopsis | Parameters | Return value | Example | Possible output:
Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=std::experimental::popcount&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>
