cuSBF
Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | List of all members
cusbf::detail::QueryLayout Class Reference

Public Member Functions

std::span< const QueryLayoutRecordrecords () const noexcept
 
uint64_t total_hit_count () const noexcept
 
std::span< const uint8_thits_for_record (std::span< const uint8_t > hits, size_t layout_index) const noexcept
 

Static Public Member Functions

template<typename Config >
static QueryLayout build (std::span< const NormalizedRecord > records)
 

Detailed Description

Definition at line 22 of file query_layout.cuh.

Member Function Documentation

◆ build()

template<typename Config >
static QueryLayout cusbf::detail::QueryLayout::build ( std::span< const NormalizedRecord records)
inlinestatic

Definition at line 42 of file query_layout.cuh.

42 {
43 QueryLayout layout;
44 layout.records_.reserve(records.size());
45
47 for (const NormalizedRecord& record : records) {
48 if (logical_size != 0) {
50 if (remainder != 0) {
52 }
54 }
55
56 const uint64_t hit_count = record_kmer_count<Config>(record.size);
57 layout.records_.push_back(
58 QueryLayoutRecord{
59 record.record_index,
60 record.input_offset,
61 record.size,
62 record.valid_kmers,
64 hit_count,
65 }
66 );
67 logical_size += record.size;
68 }
69
71 return layout;
72 }
std::span< const QueryLayoutRecord > records() const noexcept
consteval bool separatorPositionAlwaysEncodesInvalid(char *input, uint64_t separatorPosition, uint64_t index)
Recursively tests whether placing the separator byte at any position in an input of valid bytes alway...
Definition Alphabet.cuh:37
static constexpr uint64_t symbolWidth
Input bytes per symbol.
Definition config.cuh:49
Here is the call graph for this function:

◆ hits_for_record()

std::span< const uint8_t > cusbf::detail::QueryLayout::hits_for_record ( std::span< const uint8_t hits,
size_t  layout_index 
) const
inlinenoexcept

Definition at line 33 of file query_layout.cuh.

33 {
34 const QueryLayoutRecord& record = records_[layout_index];
35 return std::span<const uint8_t>{
36 hits.data() + static_cast<ptrdiff_t>(record.hit_offset),
37 static_cast<size_t>(record.hit_count)
38 };
39 }
Here is the call graph for this function:

◆ records()

std::span< const QueryLayoutRecord > cusbf::detail::QueryLayout::records ( ) const
inlinenoexcept

Definition at line 24 of file query_layout.cuh.

24 {
25 return std::span<const QueryLayoutRecord>{records_.data(), records_.size()};
26 }
Here is the caller graph for this function:

◆ total_hit_count()

uint64_t cusbf::detail::QueryLayout::total_hit_count ( ) const
inlinenoexcept

Definition at line 28 of file query_layout.cuh.

28 {
29 return total_hit_count_;
30 }

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