extern pbqp_edge **edge_bucket;
extern pbqp_node **node_buckets[4];
extern pbqp_node **reduced_bucket;
+extern pbqp_node *merged_node;
void apply_edge(pbqp *pbqp);
void apply_RI(pbqp *pbqp);
void apply_RII(pbqp *pbqp);
-
-void back_propagate(pbqp *pbqp);
+void apply_RM(pbqp *pbqp, pbqp_node *node);
void back_propagate(pbqp *pbqp);
num determine_solution(pbqp *pbqp);
void initial_simplify_edges(pbqp *pbqp);
void select_alternative(pbqp_node *node, unsigned selected_index);
void simplify_edge(pbqp *pbqp, pbqp_edge *edge);
+void reorder_node(pbqp_node *node);
int node_is_reduced(pbqp_node *node);