60 const auto propId = propagations_.getNext();
62 = std::make_unique<Propagation>(leaf, comp, fromMin);
63 return propagations_[propId].get();
68 visits_.up[v].prop = prop;
70 visits_.down[v].prop = prop;
76 visits_.up[v].prop = prop;
77 visits_.up[v].done =
true;
79 visits_.down[v].prop = prop;
80 visits_.down[v].done =
true;
86 return visits_.up[v].prop == prop;
88 return visits_.down[v].prop == prop;
97 return visits_.up[v].prop == prop && visits_.up[v].done;
99 return visits_.down[v].prop == prop && visits_.down[v].done;
110#ifdef TTK_ENABLE_OPENMP4
111#pragma omp atomic read seq_cst
113 res = visits_.down[v].done;
115#ifdef TTK_ENABLE_OPENMP4
116#pragma omp atomic read seq_cst
118 res = visits_.up[v].done;
125 return visits_.up[v];
127 return visits_.down[v];
134 return visits_.down[v];
136 return visits_.up[v];
void fillVector(std::vector< type > &vect, const type &elmt)
idVertex nbElmt_
Allocation may depends on the number of vertices.
TTK fTRGraph propagation management with Fibonacci heaps.
manage propagations for FTR Graph
void toVisit(const idVertex v, Propagation *const prop)
Visit visitOpposite(const idVertex v, const Propagation *const prop) const
bool hasVisitedOpposite(const idVertex v, Propagation *const prop) const
bool willVisit(const idVertex v, const Propagation *const prop) const
Visit visit(const idVertex v, const Propagation *const prop) const
Propagation * newPropagation(const idVertex leaf, const VertCompFN &comp, const bool fromMin)
~Propagations() override=default
void visit(const idVertex v, Propagation *const prop)
bool hasVisited(const idVertex v, Propagation *const prop) const
std::function< bool(const idVertex, const idVertex)> VertCompFN
SimplexId idVertex
Vertex index in scalars_.
TTK base package defining the standard types.
std::vector< Visit > down