assert(pbqp);
- node = node_bucket_pop(&rn_bucket);
+ node = merged_node;
+ merged_node = NULL;
assert(node);
if (node_is_reduced(node))
#if KAPS_TIMING
ir_timer_stop(t_r2);
#endif
- } else if (node_bucket_get_length(rn_bucket) > 0) {
+ } else if (merged_node != NULL) {
#if KAPS_TIMING
ir_timer_start(t_rn);
#endif
pbqp_edge **edge_bucket;
pbqp_edge **rm_bucket;
-pbqp_node **rn_bucket;
pbqp_node **node_buckets[4];
pbqp_node **reduced_bucket = NULL;
-static int buckets_filled = 0;
+pbqp_node *merged_node = NULL;
+static int buckets_filled = 0;
static void insert_into_edge_bucket(pbqp_edge *edge)
{
edge_bucket_init(&edge_bucket);
edge_bucket_init(&rm_bucket);
node_bucket_init(&reduced_bucket);
- node_bucket_init(&rn_bucket);
for (i = 0; i < 4; ++i) {
node_bucket_init(&node_buckets[i]);
edge_bucket_free(&edge_bucket);
edge_bucket_free(&rm_bucket);
node_bucket_free(&reduced_bucket);
- node_bucket_free(&rn_bucket);
buckets_filled = 0;
}
insert_into_rm_bucket(new_edge);
}
- /* Reduce the remaining source node via RI. */
- apply_RI(pbqp);
-
#if KAPS_STATISTIC
pbqp->num_r1--;
#endif
insert_into_rm_bucket(new_edge);
}
- /* Reduce the remaining source node via RI. */
- apply_RI(pbqp);
-
#if KAPS_STATISTIC
pbqp->num_r1--;
#endif
merge_source_into_target(pbqp, edge);
}
- node_bucket_insert(&rn_bucket, node);
+ merged_node = node;
}
void reorder_node(pbqp_node *node)
extern pbqp_edge **edge_bucket;
extern pbqp_node **node_buckets[4];
extern pbqp_node **reduced_bucket;
-extern pbqp_node **rn_bucket;
+extern pbqp_node *merged_node;
void apply_edge(pbqp *pbqp);