17 std::vector<cytnx_int64> labels;
18 std::vector<cytnx_uint64> shape;
21 PsudoUniTensor *right;
28 PsudoUniTensor():is_assigned(false), left(nullptr), right(nullptr), root(nullptr), cost(0),ID(0){
30 PsudoUniTensor(
const PsudoUniTensor &rhs){
31 this->left = rhs.left;
32 this->right = rhs.right;
33 this->root = rhs.root;
34 this->labels = rhs.labels;
35 this->shape = rhs.shape;
36 this->is_assigned = rhs.is_assigned;
37 this->cost = rhs.cost;
38 this->accu_str = rhs.accu_str;
41 PsudoUniTensor&
operator==(
const PsudoUniTensor &rhs){
42 this->left = rhs.left;
43 this->right = rhs.right;
44 this->root = rhs.root;
45 this->labels = rhs.labels;
46 this->shape = rhs.shape;
47 this->is_assigned = rhs.is_assigned;
48 this->cost = rhs.cost;
49 this->accu_str = rhs.accu_str;
53 void from_utensor(
const UniTensor &in_uten){
54 this->labels = in_uten.labels();
55 this->shape = in_uten.shape();
56 this->is_assigned =
true;
59 this->is_assigned =
false;
66 void set_ID(
const cytnx_int64 &ID){
74 std::vector< std::vector<PsudoUniTensor> > nodes_container;
76 std::vector<PsudoUniTensor> base_nodes;
79 SearchTree(
const SearchTree &rhs){
80 this->nodes_container = rhs.nodes_container;
81 this->base_nodes = rhs.base_nodes;
84 this->nodes_container = rhs.nodes_container;
85 this->base_nodes = rhs.base_nodes;
91 nodes_container.clear();
97 void reset_search_order(){
98 nodes_container.clear();
Definition Accessor.hpp:12
float cytnx_float
Definition Type.hpp:21
Tensor operator==(const Tensor &Lt, const Tensor &Rt)
uint64_t cytnx_uint64
Definition Type.hpp:22