HIBF 1.0.0-rc.1
Loading...
Searching...
No Matches
update_parent_kmers.hpp
Go to the documentation of this file.
1// SPDX-FileCopyrightText: 2006-2026, Knut Reinert & Freie Universität Berlin
2// SPDX-FileCopyrightText: 2016-2026, 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
13#include <hibf/contrib/robin_hood.hpp> // for unordered_flat_set
14#include <hibf/misc/timer.hpp> // for serial_timer, concurrent_timer
15#include <hibf/platform.hpp>
16
17namespace seqan::hibf::build
18{
19
23inline void update_parent_kmers(robin_hood::unordered_flat_set<uint64_t> & parent_kmers,
24 robin_hood::unordered_flat_set<uint64_t> const & kmers,
25 concurrent_timer & merge_kmers_timer)
26{
27 serial_timer local_merge_kmers_timer{};
28 local_merge_kmers_timer.start();
29 parent_kmers.insert(kmers.begin(), kmers.end());
30 local_merge_kmers_timer.stop();
31 merge_kmers_timer += local_merge_kmers_timer;
32}
33
34} // namespace seqan::hibf::build
A timer with a thread-safe operator+=().
Definition timer.hpp:156
A timer.
Definition timer.hpp:32
void start()
Starts the timer.
Definition timer.hpp:62
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:23
Provides platform and dependency checks.
Provides seqan::hibf::timer.