VeloGraphX
High-performance dynamic graph analytics in C++20
Loading...
Searching...
No Matches
push_pull.hpp
Go to the documentation of this file.
1
#pragma once
2
#include <cstddef>
3
namespace
velographx
{
enum class
TraversalDirection
{
push
,
pull
};
inline
TraversalDirection
choose_direction
(std::size_t frontier,std::size_t vertices,std::size_t frontier_edges,std::size_t total_edges){
if
(vertices==0)
return
TraversalDirection::push
;
const
double
fd=
static_cast<
double
>
(frontier)/vertices;
const
double
ew=total_edges?
static_cast<
double
>
(frontier_edges)/total_edges:0.0;
return
(fd>0.08||ew>0.12)?
TraversalDirection::pull
:
TraversalDirection::push
;} }
velographx
Definition
algorithms.hpp:6
velographx::TraversalDirection
TraversalDirection
Definition
push_pull.hpp:3
velographx::TraversalDirection::push
@ push
velographx::TraversalDirection::pull
@ pull
velographx::choose_direction
TraversalDirection choose_direction(std::size_t frontier, std::size_t vertices, std::size_t frontier_edges, std::size_t total_edges)
Definition
push_pull.hpp:3
include
velographx
runtime
push_pull.hpp
Generated by
1.9.8