HIBF 1.0.0-rc.1
All Classes Namespaces Files Functions Variables Typedefs Friends Macros Modules Pages Concepts
update_parent_kmers.hpp
Go to the documentation of this file.
1// SPDX-FileCopyrightText: 2006-2025, Knut Reinert & Freie Universität Berlin
2// SPDX-FileCopyrightText: 2016-2025, Knut Reinert & MPI für molekulare Genetik
3// SPDX-License-Identifier: BSD-3-Clause
4
9#pragma once
10
11#include <cstdint> // for uint64_t
12#include <functional> // for equal_to
13
14#include <hibf/contrib/robin_hood.hpp> // for unordered_flat_set, hash
15#include <hibf/misc/timer.hpp> // for serial_timer, concurrent_timer
16#include <hibf/platform.hpp>
17
18namespace seqan::hibf::build
19{
20
24inline void update_parent_kmers(robin_hood::unordered_flat_set<uint64_t> & parent_kmers,
25 robin_hood::unordered_flat_set<uint64_t> const & kmers,
26 concurrent_timer & merge_kmers_timer)
27{
28 serial_timer local_merge_kmers_timer{};
29 local_merge_kmers_timer.start();
30 parent_kmers.insert(kmers.begin(), kmers.end());
31 local_merge_kmers_timer.stop();
32 merge_kmers_timer += local_merge_kmers_timer;
33}
34
35} // namespace seqan::hibf::build
A timer with a thread-safe operator+=().
Definition timer.hpp:155
A timer.
Definition timer.hpp:31
void start()
Starts the timer.
Definition timer.hpp:61
void update_parent_kmers(robin_hood::unordered_flat_set< uint64_t > &parent_kmers, robin_hood::unordered_flat_set< uint64_t > const &kmers, concurrent_timer &merge_kmers_timer)
Updates stored values of the parent IBF.
Definition update_parent_kmers.hpp:24
Provides platform and dependency checks.
Provides seqan::hibf::timer.