cuDDL
Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | List of all members
cuddl::detail::compact_impl::compact_shuffle_table Struct Reference

Shuffle controls per whitespace mask, for the vector paths. More...

#include <fastx_sequence_file.hpp>

Public Member Functions

 compact_shuffle_table () noexcept
 

Public Attributes

uint8_t control [256][16]
 
uint8_t kept [256]
 

Detailed Description

Shuffle controls per whitespace mask, for the vector paths.

Indexed by one half block's mask, an entry lists the positions of the bytes it keeps followed by stop markers. Both the x86 shuffle and the aarch64 table lookup read the same table, and a stop marker gathers nothing on either.

Definition at line 1016 of file fastx_sequence_file.hpp.

Constructor & Destructor Documentation

◆ compact_shuffle_table()

cuddl::detail::compact_impl::compact_shuffle_table::compact_shuffle_table ( )
inlinenoexcept

Definition at line 1019 of file fastx_sequence_file.hpp.

1019 {
1020 for (int mask = 0; mask < 256; ++mask) {
1021 int at = 0;
1022 for (int bit = 0; bit < 8; ++bit) {
1023 if ((mask & (1 << bit)) == 0) control[mask][at++] = static_cast<uint8_t>(bit);
1024 }
1025 for (; at < 16; ++at) control[mask][at] = 0x80U;
1026 kept[mask] = static_cast<uint8_t>(8 - __builtin_popcount(static_cast<unsigned>(mask)));
1027 }
1028 }

Member Data Documentation

◆ control

uint8_t cuddl::detail::compact_impl::compact_shuffle_table::control[256][16]

Definition at line 1017 of file fastx_sequence_file.hpp.

◆ kept

uint8_t cuddl::detail::compact_impl::compact_shuffle_table::kept[256]

Definition at line 1018 of file fastx_sequence_file.hpp.


The documentation for this struct was generated from the following file: