SeqAn3  3.1.0-rc.1
The Modern C++ library for sequence analysis.
seqan3::simd Namespace Reference

The SeqAn namespace for simd data types, algorithms and meta functions. More...

Classes

struct  simd_traits
 seqan3::simd::simd_traits is the trait class that provides uniform interface to the properties of simd_t types. More...
 
struct  simd_traits< builtin_simd_t >
 This class specializes seqan3::simd::simd_traits for seqan3::detail::builtin_simd types. More...
 
struct  simd_type
 seqan3::simd::simd_type encapsulates simd vector types, which can be manipulated by simd operations. More...
 

Typedefs

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>
using simd_type_t = typename simd_type< scalar_t, length, simd_backend >::type
 Helper type of seqan3::simd::simd_type.
 

Functions

template<simd::simd_concept simd_t>
constexpr simd_t fill (typename simd_traits< simd_t >::scalar_type const scalar) noexcept
 Fills a seqan3::simd::simd_type vector with a scalar value. More...
 
template<simd::simd_concept simd_t>
constexpr simd_t iota (typename simd_traits< simd_t >::scalar_type const offset)
 Fills a seqan3::simd::simd_type vector with the scalar values offset, offset+1, offset+2, ... More...
 
template<simd::simd_concept simd_t>
constexpr simd_t load (void const *mem_addr)
 Load simd_t size bits of integral data from memory. More...
 
template<simd::simd_concept simd_t>
constexpr void store (void *mem_addr, simd_t const &simd_vec)
 Store simd_t size bits of integral data into memory. More...
 
template<simd::simd_concept simd_t>
constexpr void transpose (std::array< simd_t, simd_traits< simd_t >::length > &matrix)
 Transposes the given simd vector matrix. More...
 
template<simd::simd_concept target_simd_t, simd::simd_concept source_simd_t>
constexpr target_simd_t upcast (source_simd_t const &src)
 Upcasts the given vector into the target vector using sign extension of packed values. More...
 

Detailed Description

The SeqAn namespace for simd data types, algorithms and meta functions.

See also
https://en.wikipedia.org/wiki/SIMD What is SIMD conceptually?
https://en.wikipedia.org/wiki/Streaming_SIMD_Extensions Which SIMD architectures exist?