Raptor 4.0.0-rc.1
A fast and space-efficient pre-filter
Loading...
Searching...
No Matches
subtree.hpp File Reference

Provides helpers to traverse and retire subtrees of an HIBF. More...

#include <cstddef>
#include <cstdint>
#include <vector>
#include <raptor/index.hpp>
+ Include dependency graph for subtree.hpp:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

void raptor::detail::collect_subtree (std::vector< size_t > &result, raptor_index< index_structure::hibf > const &index, size_t const ibf_idx)
 Collects the indices of all IBFs in the subtree rooted at ibf_idx into result, ibf_idx first.
 
void raptor::detail::retire_ibf (raptor_index< index_structure::hibf > &index, size_t const ibf_idx)
 Retires the IBF at ibf_idx: releases its data and marks it as deleted.
 

Detailed Description

Provides helpers to traverse and retire subtrees of an HIBF.

Author
Enrico Seiler <enrico.seiler AT fu-berlin.de>

Function Documentation

◆ retire_ibf()

void raptor::detail::retire_ibf ( raptor_index< index_structure::hibf > & index,
size_t const ibf_idx )
inline

Retires the IBF at ibf_idx: releases its data and marks it as deleted.

All data of the IBF is released. Its slot in ibf_vector is kept, because erasing it would shift, and thereby invalidate, every larger IBF index stored in the index. A retired IBF is recognised by its prev_ibf_id, see raptor::detail::is_deleted, and is skipped when looking for a place to insert a user bin.

The caller has to unmark the merged bin the IBF used to hang in, and to restore that bin's next_ibf_id entry.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:
Hide me