Movatterモバイル変換


[0]ホーム

URL:


cppreference.com
Namespaces
Variants
    Actions

      std::datapar::basic_simd,std::datapar::simd

      From cppreference.com
      <cpp‎ |numeric‎ |simd
       
       
       
       
       
      Defined in header<simd>
      template<class T,class Abi=/*native-abi*/<T>>
      class basic_simd;
      (1)(since C++26)
      template<class T,/*simd-size-type*/ N=/*simd-size-v*/<T,/*native-abi*/<T>>>
      using simd= basic_simd<T,/*deduce-abi-t*/<T, N>>;
      (2)(since C++26)
      1)std::datapar::basic_simd specialization is a data-parallel type. The default ABI tag is determined by the implementation at compile-time.
      2)std::datapar::simd is an alias template that allows users to specify the width to a certain size. The default width is determined by the implementation at compile-time.

      Every specialization ofbasic_simd is a complete type. The specialization is

      • enabled, ifT is avectorizable type, and there exists valueM in the range[164] such thatAbi isdeduce-abi-t<T, M>,
      • otherwisedisabled, ifT is not a vectorizable type,
      • otherwise, it is implementation-defined if such specialization is enabled.

      Ifbasic_simd<T, Abi> is disabled, the specialization has all deleted default constructor, destructor, copy constructor, and copy assignment. In addition, only the member types below are present.

      Ifbasic_simd<T, Abi> is enabled,basic_simd<T, Abi> isTriviallyCopyable.

      Contents

      [edit]Template parameters

      T - element type; a vectorizable type
      Abi -tag type used to determine the width and storage
      N - the width of the data-parallel type; the number of elements

      [edit]Member types

      Type Definition
      value_typeT
      mask_typedatapar::basic_simd_mask<sizeof(T), Abi>
      abi_typeAbi

      [edit]Member constant

      Name Description
      [static]
      the width ofbasic_simd
      (public static member constant)

      [edit]Member functions

      constructs abasic_simd object
      (public member function)[edit]
      accesses specified element
      (public member function)[edit]
      element-wise increment and decrement
      (public member function)[edit]
      element-wise unary operators
      (public member function)[edit]

      [edit]Non-member functions

      element-wise binary operators
      (function)[edit]
      element-wise compound binary operators
      (function)[edit]
      element-wise relational operators
      (function)[edit]
      specializes element-wise selection forsimd_select
      (exposition-only function*)[edit]

      [edit]Deduction guide

      template<class R,class...Ts>
      basic_simd( R&& r, Ts...)->/* see below */;
      (since C++26)

      The deduction guide is present only if:

      The deduced type is equivalent todatapar::simd<ranges::range_value_t<R>,ranges::size(r)>.

      [edit]Notes

      Implementations are recommended to support explicit conversions between enabled specializations ofbasic_simd and appropriate implementation-defined types. These appropriate types are non-standard vector types which are available in the implementation.

      [edit]Example

      This section is incomplete
      Reason: no example

      [edit]See also

      data-parallel type with the element typebool
      (class template)[edit]
      convenience alias template forbasic_simd_mask that can specify its width
      (alias template)[edit]
      numeric arrays, array masks and array slices
      (class template)[edit]
      Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/numeric/simd/basic_simd&oldid=182184"

      [8]ページ先頭

      ©2009-2025 Movatter.jp