Raptor 3.0.1
A fast and space-efficient pre-filter for querying very large collections of nucleotide sequences
 
Loading...
Searching...
No Matches
raptor::hierarchical_interleaved_bloom_filter< data_layout_mode_ >::counting_agent_type< value_t > Class Template Reference

Manages counting ranges of values for the raptor::hierarchical_interleaved_bloom_filter. More...

#include <raptor/hierarchical_interleaved_bloom_filter.hpp>

Public Member Functions

Counting
template<std::ranges::forward_range value_range_t>
seqan3::counting_vector< value_t > const & bulk_count (value_range_t &&values, size_t const threshold=1u) &noexcept
 Counts the occurrences in each bin for all values in a range.
 
template<std::ranges::range value_range_t>
seqan3::counting_vector< value_t > const & bulk_count (value_range_t &&values, size_t const threshold=1u) &&noexcept=delete
 

Public Attributes

seqan3::counting_vector< value_t > result_buffer
 Stores the result of bulk_count().
 

Private Types

using hibf_t = hierarchical_interleaved_bloom_filter< data_layout_mode >
 The type of the augmented hierarchical_interleaved_bloom_filter.
 

Private Member Functions

template<std::ranges::forward_range value_range_t>
void bulk_count_impl (value_range_t &&values, int64_t const ibf_idx, size_t const threshold)
 Helper for recursive bulk counting.
 

Private Attributes

hibf_t const *const hibf_ptr {nullptr}
 A pointer to the augmented hierarchical_interleaved_bloom_filter.
 

Constructors, destructor and assignment

 counting_agent_type (hibf_t const &hibf)
 Construct a counting_agent_type for an existing hierarchical_interleaved_bloom_filter.
 
 counting_agent_type ()=default
 Defaulted.
 
 counting_agent_type (counting_agent_type const &)=default
 Defaulted.
 
counting_agent_typeoperator= (counting_agent_type const &)=default
 Defaulted.
 
 counting_agent_type (counting_agent_type &&)=default
 Defaulted.
 
counting_agent_typeoperator= (counting_agent_type &&)=default
 Defaulted.
 
 ~counting_agent_type ()=default
 Defaulted.
 

Detailed Description

template<seqan3::data_layout data_layout_mode_ = seqan3::data_layout::uncompressed>
template<std::integral value_t>
class raptor::hierarchical_interleaved_bloom_filter< data_layout_mode_ >::counting_agent_type< value_t >

Manages counting ranges of values for the raptor::hierarchical_interleaved_bloom_filter.

Constructor & Destructor Documentation

◆ counting_agent_type()

template<seqan3::data_layout data_layout_mode_ = seqan3::data_layout::uncompressed>
template<std::integral value_t>
raptor::hierarchical_interleaved_bloom_filter< data_layout_mode_ >::counting_agent_type< value_t >::counting_agent_type ( hibf_t const &  hibf)
inlineexplicitprivate

Member Function Documentation

◆ bulk_count()

template<seqan3::data_layout data_layout_mode_ = seqan3::data_layout::uncompressed>
template<std::integral value_t>
template<std::ranges::forward_range value_range_t>
seqan3::counting_vector< value_t > const & raptor::hierarchical_interleaved_bloom_filter< data_layout_mode_ >::counting_agent_type< value_t >::bulk_count ( value_range_t &&  values,
size_t const  threshold = 1u 
) &
inlinenoexcept

Counts the occurrences in each bin for all values in a range.

Template Parameters
value_range_tThe type of the range of values. Must model std::ranges::forward_range. The reference type must model std::unsigned_integral.
Parameters
[in]valuesThe range of values to process.
[in]thresholdDo not recurse into merged bins with less than this many hits. Default: 1.
Attention
The result of this function must always be bound via reference, e.g. auto &, to prevent copying.
Sequential calls to this function invalidate the previously returned reference.

Thread safety

Concurrent invocations of this function are not thread safe, please create a raptor::hierarchical_interleaved_bloom_filter::counting_agent_type for each thread.


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