RLPack
 
Loading...
Searching...
No Matches
SumTreeNode.h
Go to the documentation of this file.
1
2#ifndef RLPACK_BINARIES_MEMORY_SUMTREE_NODE_SUMTREENODE_H_
3#define RLPACK_BINARIES_MEMORY_SUMTREE_NODE_SUMTREENODE_H_
4
5#include <cmath>
6#include <stdexcept>
7
23public:
25 float_t value,
26 int64_t treeIndex = -1,
27 int64_t index = -1,
28 int64_t treeLevel = 0,
29 SumTreeNode *leftNode = nullptr,
30 SumTreeNode *rightNode = nullptr);
32
33public:
34 void set_value(float_t newValue);
35 [[maybe_unused]] void remove_left_node();
36 [[maybe_unused]] void remove_right_node();
37 void set_left_node(SumTreeNode *node);
38 void set_right_node(SumTreeNode *node);
39 void set_parent_node(SumTreeNode *parent);
40 void set_leaf_status(bool isLeaf);
41 [[nodiscard]] float_t get_value() const;
42 [[nodiscard]] int64_t get_tree_index() const;
43 [[nodiscard]] int64_t get_index() const;
44 [[nodiscard]] int64_t get_tree_level() const;
48 [[nodiscard]] bool is_leaf() const;
49 bool is_head();
50
51private:
53 SumTreeNode *parent_ = nullptr;
59 int64_t treeIndex_ = -1;
61 int64_t treeLevel_ = 0;
63 int64_t index_ = -1;
65 float_t value_ = 0;
67 bool isLeaf_ = true;
68};
75#endif//RLPACK_BINARIES_MEMORY_SUMTREE_NODE_SUMTREENODE_H_
The class SumTreeNode is a private class which represents a node in Sum-Tree. This is only used when ...
Definition: SumTreeNode.h:22
void set_left_node(SumTreeNode *node)
Definition: SumTreeNode.cpp:65
int64_t get_tree_index() const
Definition: SumTreeNode.cpp:120
bool isLeaf_
The boolean flag indicating if the current node is a leaf node or not.
Definition: SumTreeNode.h:67
SumTreeNode * parent_
The pointer to parent node.
Definition: SumTreeNode.h:53
int64_t treeIndex_
The tree index of current node. This represents the index in of the node in container buffer.
Definition: SumTreeNode.h:59
bool is_head()
Definition: SumTreeNode.cpp:183
int64_t get_index() const
Definition: SumTreeNode.cpp:129
void set_leaf_status(bool isLeaf)
Definition: SumTreeNode.cpp:102
void remove_left_node()
Definition: SumTreeNode.cpp:51
SumTreeNode * rightNode_
The pointer to right child node.
Definition: SumTreeNode.h:57
void remove_right_node()
Definition: SumTreeNode.cpp:58
SumTreeNode * get_left_node()
Definition: SumTreeNode.cpp:156
int64_t treeLevel_
The tree level of current node. This represents the height of the node in the current tree.
Definition: SumTreeNode.h:61
int64_t get_tree_level() const
Definition: SumTreeNode.cpp:138
float_t get_value() const
Definition: SumTreeNode.cpp:111
void set_right_node(SumTreeNode *node)
Definition: SumTreeNode.cpp:77
bool is_leaf() const
Definition: SumTreeNode.cpp:174
SumTreeNode * leftNode_
The pointer to left child node.
Definition: SumTreeNode.h:55
SumTreeNode * get_right_node()
Definition: SumTreeNode.cpp:165
SumTreeNode * get_parent()
Definition: SumTreeNode.cpp:147
float_t value_
The value of current node. Value of each node is the sum of its children's value.
Definition: SumTreeNode.h:65
int64_t index_
The index value of current node. This is only valid for leaf node and represents the index of the nod...
Definition: SumTreeNode.h:63
void set_value(float_t newValue)
Definition: SumTreeNode.cpp:42
void set_parent_node(SumTreeNode *parent)
Definition: SumTreeNode.cpp:93