Namespaces
Variants
Views
Actions

Difference between revisions of "cpp/experimental/simd"

From cppreference.com
m (move alignment tags into templates)
m (move ABI tags into dsc templates)
Line 17: Line 17:
 
{{dsc begin}}
 
{{dsc begin}}
 
{{dsc namespace | std::experimental::simd_abi }}
 
{{dsc namespace | std::experimental::simd_abi }}
{{dsc class | cpp/experimental/simd/scalar | tag type for storing a single element | notes={{mark since parallelism_ts_2}}}}
+
{{dsc inc | cpp/experimental/simd/dsc scalar }}
{{dsc tclass | cpp/experimental/simd/fixed_size | tag type for storing specified number of elements | notes={{mark since parallelism_ts_2}}}}
+
{{dsc inc | cpp/experimental/simd/dsc fixed_size }}
{{dsc talias | cpp/experimental/simd/compatible | tag type that ensures ABI compatibility | notes={{mark since parallelism_ts_2}}}}
+
{{dsc inc | cpp/experimental/simd/dsc compatible }}
{{dsc talias | cpp/experimental/simd/native | tag type that is most efficient | notes={{mark since parallelism_ts_2}}}}
+
{{dsc inc | cpp/experimental/simd/dsc native }}
{{dsc const | cpp/experimental/simd/max_fixed_size | the maximum number of elements guaranteed to be supported by fixed | notes={{mark since parallelism_ts_2}}}}
+
{{dsc inc | cpp/experimental/simd/dsc max_fixed_size }}
{{dsc tclass | cpp/experimental/simd/deduce | obtains an ABI type for given element type and number of elements | notes={{mark since parallelism_ts_2}} | title=deduce <br/> deduce_t}}
+
{{dsc inc | cpp/experimental/simd/dsc deduce }}
 
{{dsc end}}
 
{{dsc end}}
  

Revision as of 04:01, 11 July 2019

 
 
Experimental
Technical Specification
Filesystem library (filesystem TS)
Library fundamentals (library fundamentals TS)
Library fundamentals 2 (library fundamentals TS v2)
Library fundamentals 3 (library fundamentals TS v3)
Extensions for parallelism (parallelism TS)
Extensions for parallelism 2 (parallelism TS v2)
Extensions for concurrency (concurrency TS)
Extensions for concurrency 2 (concurrency TS v2)
Concepts (concepts TS)
Ranges (ranges TS)
Reflection (reflection TS)
Mathematical special functions (special functions TR)
Experimental Non-TS
Pattern Matching
Linear Algebra
std::execution
Contracts
2D Graphics
 
 
 
Defined in header <experimental/simd>

Contents

Main classes

(parallelism TS v2)
data-parallel vector type
(class template) [edit]
(parallelism TS v2)
data-parallel type with the element type bool
(class template) [edit]

ABI tags

Defined in namespace std::experimental::simd_abi
(parallelism TS v2)
tag type for storing a single element
(typedef) [edit]
(parallelism TS v2)
tag type for storing specified number of elements
(alias template)[edit]
(parallelism TS v2)
tag type that ensures ABI compatibility
(alias template)[edit]
(parallelism TS v2)
tag type that is most efficient
(alias template)[edit]
(parallelism TS v2)
the maximum number of elements guaranteed to be supported by fixed
(constant) [edit]
(parallelism TS v2)
obtains an ABI type for given element type and number of elements
(class template) [edit]

Alignment tags

flag indicating alignment of the load/store address to element alignment
(class) [edit]
flag indicating alignment of the load/store address to vector alignment
(class) [edit]
(parallelism TS v2)
flag indicating alignment of the load/store address to the specified alignment
(class template) [edit]

Where expression

(parallelism TS v2)
selected elements with non-mutating operations
(class template)
(parallelism TS v2)
selected elements with mutating operations
(class template)
(parallelism TS v2)
produces const_where_expression and where_expression
(function template)

Casts

(parallelism TS v2)
element-wise static_cast
(function template)
element-wise ABI cast
(function template)
(parallelism TS v2)
splits single simd object to multiple ones
(function template)
(parallelism TS v2)
concatenates multiple simd objects to a single one
(function template)

Algorithms

(parallelism TS v2)
element-wise min operation
(function template)
(parallelism TS v2)
element-wise max operation
(function template)
(parallelism TS v2)
element-wise minmax operation
(function template)
(parallelism TS v2)
element-wise clamp operation
(function template)

Reduction

(parallelism TS v2)
reduces the vector to a single element
(function template)
(parallelism TS v2)
returns the minimum element
(function template)
(parallelism TS v2)
returns the maximum element
(function template)

Mask reduction

predicates on the number of true values
(function template)
(parallelism TS v2)
returns the number of true values
(function template)
returns the position of the first or last true value
(function template)

Traits

(parallelism TS v2)
checks if a type is an ABI tag type
(class template)
(parallelism TS v2)
checks if a type is a simd type
(class template)
(parallelism TS v2)
checks if a type is a simd_mask type
(class template)
checks if a type is a simd flag type
(class template)
(parallelism TS v2)
obtains the number of elements of a given element type and ABI
(class template)
obtains an appropriate alignment for vector_aligned
(class template)

Math functions

Example