@@ -1274,6 +1274,8 @@ void Analyse::findTreeSplitting() {
12741274 std::vector<Int> head, next;
12751275 childrenLinkedList (sn_parent_, head, next);
12761276
1277+ is_in_tree_splitting_.assign (sn_count_, false );
1278+
12771279 // Divide the tree into single nodes and subtrees, such that each subtree has
12781280 // at most small_thresh operations overall. Group subtrees together, so that
12791281 // groups have 1-2% operations.
@@ -1282,6 +1284,7 @@ void Analyse::findTreeSplitting() {
12821284 if (subtree_ops[sn] > small_thresh) {
12831285 // sn is a single node
12841286 auto res_insert = tree_splitting_.insert ({sn, {}});
1287+ is_in_tree_splitting_[sn] = true ;
12851288 res_insert.first ->second .type = NodeType::single;
12861289
12871290 // The children of this sn are either single nodes or head of subtrees.
@@ -1298,6 +1301,7 @@ void Analyse::findTreeSplitting() {
12981301 if (is_small) {
12991302 if (!current_nodedata) {
13001303 auto res_insert = tree_splitting_.insert ({child, {}});
1304+ is_in_tree_splitting_[child] = true ;
13011305 current_nodedata = &res_insert.first ->second ;
13021306 current_nodedata->type = NodeType::subtree;
13031307 current_ops = 0.0 ;
@@ -1316,6 +1320,7 @@ void Analyse::findTreeSplitting() {
13161320 } else if (sn_parent_[sn] == -1 ) {
13171321 // sn is small root: single task with whole subtree
13181322 auto res_insert = tree_splitting_.insert ({sn, {}});
1323+ is_in_tree_splitting_[sn] = true ;
13191324 res_insert.first ->second .type = NodeType::subtree;
13201325 res_insert.first ->second .group .push_back (sn);
13211326 res_insert.first ->second .firstdesc .push_back (first_desc[sn]);
@@ -1457,6 +1462,7 @@ Int Analyse::run(Symbolic& S) {
14571462 S.consecutive_sums_ = std::move (consecutive_sums_);
14581463 S.clique_block_start_ = std::move (clique_block_start_);
14591464 S.tree_splitting_ = std::move (tree_splitting_);
1465+ S.is_in_tree_splitting_ = std::move (is_in_tree_splitting_);
14601466
14611467#if HIPO_TIMING_LEVEL >= 1
14621468 data_.sumTime (kTimeAnalyse , clock_total.stop ());
0 commit comments