![]() |
Bitcoin Core 30.99.0
P2P Digital Currency
|
#include <algorithm>#include <cstdint>#include <numeric>#include <optional>#include <utility>#include <vector>#include <attributes.h>#include <memusage.h>#include <random.h>#include <span.h>#include <util/feefrac.h>#include <util/vecdeque.h>Go to the source code of this file.
Classes | |
| class | cluster_linearize::DepGraph< SetType > |
| Data structure that holds a transaction graph's preprocessed data (fee, size, ancestors, descendants). More... | |
| struct | cluster_linearize::DepGraph< SetType >::Entry |
| Information about a single transaction. More... | |
| struct | cluster_linearize::SetInfo< SetType > |
| A set of transactions together with their aggregate feerate. More... | |
| class | cluster_linearize::SpanningForestState< SetType > |
| Class to represent the internal state of the spanning-forest linearization (SFL) algorithm. More... | |
| struct | cluster_linearize::SpanningForestState< SetType >::TxData |
| Structure with information about a single transaction. More... | |
| struct | cluster_linearize::SpanningForestState< SetType >::DepData |
| Structure with information about a single dependency. More... | |
Namespaces | |
| namespace | cluster_linearize |
Concepts | |
| concept | cluster_linearize::StrongComparator |
| Concept for function objects that return std::strong_ordering when invoked with two Args. | |
Typedefs | |
| using | cluster_linearize::DepGraphIndex = uint32_t |
| Data type to represent transaction indices in DepGraphs and the clusters they represent. More... | |
| using | cluster_linearize::IndexTxOrder = std::compare_three_way |
| Simple default transaction ordering function for SpanningForestState::GetLinearization() and Linearize(), which just sorts by DepGraphIndex. More... | |
Functions | |
| template<typename SetType > | |
| std::vector< SetInfo< SetType > > | cluster_linearize::ChunkLinearizationInfo (const DepGraph< SetType > &depgraph, std::span< const DepGraphIndex > linearization) noexcept |
| Compute the chunks of linearization as SetInfos. More... | |
| template<typename SetType > | |
| std::vector< FeeFrac > | cluster_linearize::ChunkLinearization (const DepGraph< SetType > &depgraph, std::span< const DepGraphIndex > linearization) noexcept |
| Compute the feerates of the chunks of linearization. More... | |
| template<typename SetType > | |
| std::tuple< std::vector< DepGraphIndex >, bool, uint64_t > | cluster_linearize::Linearize (const DepGraph< SetType > &depgraph, uint64_t max_iterations, uint64_t rng_seed, const StrongComparator< DepGraphIndex > auto &fallback_order, std::span< const DepGraphIndex > old_linearization={}, bool is_topological=true) noexcept |
| Find or improve a linearization for a cluster. More... | |
| template<typename SetType > | |
| void | cluster_linearize::PostLinearize (const DepGraph< SetType > &depgraph, std::span< DepGraphIndex > linearization) |
| Improve a given linearization. More... | |