55 int const id =
static_cast<int>(
node_.size());
56 node_[id].setAncestor(
id);
60 inline void addNodes(
const unsigned int &number) {
62 for(
unsigned int i =
node_.size() - number; i <
node_.size(); i++) {
63 node_[i].setAncestor(i);
84 inline int query(
int i,
int j)
const {
95 int RMQuery(
const int &i,
const int &j)
const;
Minimalist debugging class.
void addSuccessor(const int &id)
int getSuccessorId(const int &id) const
int getNumberOfSuccessors() const
std::vector< int > successor_
void setAncestor(const int &id)
int getAncestorId() const
Class to answer the lowest common ancestor requests of pairs of nodes in a tree in constant time afte...
int query(int i, int j) const
std::vector< int > nodeDepth_
std::vector< int > nodeOrder_
std::vector< Node > node_
int RMQuery(const int &i, const int &j) const
std::vector< int > blocMinimumValue_
std::vector< std::pair< int, int > > blocPartition_
std::vector< int > blocMinimumPosition_
Node & getNode(const unsigned int &id)
std::vector< std::vector< std::vector< int > > > normalizedBlocTable_
unsigned int min_pos_3(const std::array< int, 3 > &triplet) const
RangeMinimumQuery< int > blocMinimumValueRMQ_
unsigned int getNumberOfNodes() const
Get the number of nodes in the tree.
std::vector< int > nodeFirstAppearance_
void addNodes(const unsigned int &number)
std::vector< int > blocToNormalizedBloc_
Class to answer range minimum queries in an array in constant time after a linearithmic time preproce...
std::tuple< ttk::SimplexId, ttk::SimplexId, ttk::SimplexId > triplet
Persistence pair type (with persistence in double)