|
Raptor 4.0.0-rc.1
A fast and space-efficient pre-filter
|
Implements raptor::detail::insert_tb_and_parents. More...
#include <optional>#include <hibf/build/insert_into_ibf.hpp>#include <raptor/index.hpp>#include "is_fpr_exceeded.hpp"#include "strong_types.hpp"
Include dependency graph for insert_tb_and_parents.cpp:Functions | |
| void | raptor::detail::insert_into_ibf (robin_hood::unordered_flat_set< uint64_t > const &kmers, insert_location const &insert_location, raptor_index< index_structure::hibf > &index, std::optional< rebuild_location > &rebuild_index_tuple) |
Inserts kmers into the technical bins given by insert_location. | |
| std::optional< rebuild_location > | raptor::detail::insert_tb_and_parents (robin_hood::unordered_flat_set< uint64_t > const &kmers, insert_location insert_location, raptor_index< index_structure::hibf > &index) |
Inserts kmers at insert_location and into every merged bin on the path to the top-level IBF. | |
Implements raptor::detail::insert_tb_and_parents.
| void raptor::detail::insert_into_ibf | ( | robin_hood::unordered_flat_set< uint64_t > const & | kmers, |
| insert_location const & | insert_location, | ||
| raptor_index< index_structure::hibf > & | index, | ||
| std::optional< rebuild_location > & | rebuild_index_tuple ) |
Inserts kmers into the technical bins given by insert_location.
| [in] | kmers | The k-mers to insert. |
| [in] | insert_location | Where to insert. |
| [in,out] | index | The index to insert into. |
| [in,out] | rebuild_index_tuple | Set to insert_location if the insertion pushed the bin past its target FPR. |
The k-mers are distributed evenly if insert_location spans more than one technical bin.
Here is the call graph for this function:
Here is the caller graph for this function:| std::optional< rebuild_location > raptor::detail::insert_tb_and_parents | ( | robin_hood::unordered_flat_set< uint64_t > const & | kmers, |
| insert_location | insert_location, | ||
| raptor_index< index_structure::hibf > & | index ) |
Inserts kmers at insert_location and into every merged bin on the path to the top-level IBF.
| [in] | kmers | The k-mers to insert. |
| [in] | insert_location | Where the user bin is stored. |
| [in,out] | index | The index to insert into. |
std::nullopt if none is.A query only reaches a lower-level IBF through the merged bins above it, hence the k-mers have to be present in all of them. Walking upwards means a returned location is the highest one that exceeds its FPR, i.e. rebuilding there also covers every exceeded bin below it.
Here is the call graph for this function:
Here is the caller graph for this function: