template<typename scalar_t, size_t length = detail::default_simd_length<scalar_t, detail::default_simd_backend>, template< typename scalar_t_, size_t length_ > typename simd_backend = detail::default_simd_backend>
struct seqan3::simd::simd_type< scalar_t, length, simd_backend >
seqan3::simd::simd_type encapsulates simd vector types, which can be manipulated by simd operations.
- Template Parameters
-
scalar_t | The underlying type of a simd vector |
length | The number of packed values in a simd vector |
simd_backend | The simd backend to use, e.g. seqan3::detail::builtin_simd |
int main()
{
uint16x8_t a = seqan3::fill<uint16x8_t>(4);
uint16x8_t b = seqan3::simd::fill<uint16x8_t>(5);
uint16x8_t c = a + b;
return 0;
}
Provides seqan3::debug_stream and related types.
Provides seqan3::debug_stream overload for seqan3::simd::simd_type.
debug_stream_type debug_stream
A global instance of seqan3::debug_stream_type.
Definition debug_stream.hpp:37
typename simd_type< scalar_t, length, simd_backend >::type simd_type_t
Helper type of seqan3::simd::simd_type.
Definition simd.hpp:56
Meta-header for the Utility / SIMD submodule .
- Attention
- seqan3::simd::simd_type may not support float types depending on the selected backend.
All implementations support [u]intX_t types, e.g. uint8_t.
Helper types
seqan3::simd::simd_type_t as a shorthand for seqan3::simd::simd_type::type
- See also
- https://en.wikipedia.org/wiki/SIMD What is SIMD conceptually?
-
https://en.wikipedia.org/wiki/Streaming_SIMD_Extensions Which SIMD architectures exist?
-
https://gcc.gnu.org/onlinedocs/gcc/Vector-Extensions.html Underlying technique of seqan3::detail::builtin_simd types.
-
https://github.com/edanor/umesimd Underlying library of seqan3::detail::ume_simd types.
-
https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html Instruction sets and their low-level intrinsics.