Movatterモバイル変換


[0]ホーム

URL:


cppreference.com
Namespaces
Variants
    Actions

      std::experimental::popcount

      From cppreference.com
      <cpp‎ |experimental‎ |simd
       
       
       
       
       
      Defined in header<experimental/simd>
      template<class T,class Abi>
      int popcount(const simd_mask<T, Abi>& k)noexcept;
      (parallelism TS v2)

      Returns the number oftrue values in the maskk.

      [edit]Parameters

      k - thesimd_mask to apply the reduction to

      [edit]Return value

      Anint in the range[0simd_size_v<T, Abi>).

      [edit]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,autoconst 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: 0x: 8 0 8 0   zeros: 2
      Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/experimental/simd/popcount&oldid=159773"

      [8]ページ先頭

      ©2009-2025 Movatter.jp