SeqAn3 3.4.0-rc.4
The Modern C++ library for sequence analysis.
|
Provides algorithms to modify seqan3::simd::simd_type. More...
#include <array>
#include <cassert>
#include <concepts>
#include <utility>
#include <seqan3/utility/simd/concept.hpp>
#include <seqan3/utility/simd/detail/builtin_simd.hpp>
#include <seqan3/utility/simd/detail/simd_algorithm_avx2.hpp>
#include <seqan3/utility/simd/detail/simd_algorithm_avx512.hpp>
#include <seqan3/utility/simd/detail/simd_algorithm_sse4.hpp>
#include <seqan3/utility/simd/simd_traits.hpp>
Go to the source code of this file.
Namespaces | |
namespace | seqan3 |
The main SeqAn3 namespace. | |
namespace | seqan3::detail |
The internal SeqAn3 namespace. | |
namespace | seqan3::simd |
The SeqAn namespace for simd data types, algorithms and meta functions. | |
Functions | |
template<uint8_t index, simd::simd_concept simd_t> | |
constexpr simd_t | seqan3::detail::extract_eighth (simd_t const &src) |
Extracts one eighth of the given simd vector and stores it in the lower eighth of the target vector. | |
template<uint8_t index, simd::simd_concept simd_t> | |
constexpr simd_t | seqan3::detail::extract_half (simd_t const &src) |
Extracts one half of the given simd vector and stores the result in the lower half of the target vector. | |
template<size_t divisor, simd_concept simd_t> | |
constexpr simd_t | seqan3::detail::extract_impl (simd_t const &src, uint8_t const mask) |
Helper function to extract a part of the given simd vector. | |
template<uint8_t index, simd::simd_concept simd_t> | |
constexpr simd_t | seqan3::detail::extract_quarter (simd_t const &src) |
Extracts one quarter of the given simd vector and stores it in the lower quarter of the target vector. | |
template<simd::simd_concept simd_t> | |
constexpr simd_t | seqan3::simd::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, size_t... I> | |
constexpr simd_t | seqan3::detail::fill_impl (typename simd_traits< simd_t >::scalar_type const scalar, std::index_sequence< I... >) noexcept |
Helper function for seqan3::simd::fill. | |
template<simd::simd_concept simd_t> | |
constexpr simd_t | seqan3::simd::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, typename scalar_t , scalar_t... I> | |
constexpr simd_t | seqan3::detail::iota_impl (scalar_t const offset, std::integer_sequence< scalar_t, I... >) |
Helper function for seqan3::simd::iota. | |
template<simd::simd_concept simd_t> | |
constexpr simd_t | seqan3::simd::load (void const *mem_addr) |
Load simd_t size bits of integral data from memory. | |
template<simd::simd_concept simd_t> | |
constexpr void | seqan3::simd::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 | seqan3::simd::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 | seqan3::simd::upcast (source_simd_t const &src) |
Upcasts the given vector into the target vector using sign extension of packed values. | |
template<simd::simd_concept target_simd_t, simd::simd_concept source_simd_t> | |
constexpr target_simd_t | seqan3::detail::upcast_signed (source_simd_t const &src) |
Upcasts the given vector into the target vector using signed extension of packed values. | |
template<simd::simd_concept target_simd_t, simd::simd_concept source_simd_t> | |
constexpr target_simd_t | seqan3::detail::upcast_unsigned (source_simd_t const &src) |
Upcasts the given vector into the target vector using unsigned extension of packed values. | |
Provides algorithms to modify seqan3::simd::simd_type.