SeqAn3 3.4.0-rc.1
The Modern C++ library for sequence analysis.
Loading...
Searching...
No Matches
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.
 
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, ...
 
template<simd::simd_concept simd_t>
constexpr simd_t load (void const *mem_addr)
 Load simd_t size bits of integral data from memory.
 
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.
 
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.
 
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.
 

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?
Hide me