+ pbqp_node_bucket bucket_deg3;
+ num value;
+ unsigned bucket_0_length;
+ unsigned bucket_red_length;
+
+ char *tmp = obstack_finish(&pbqp->obstack);
+
+ node_bucket_init(&bucket_deg3);
+
+ /* Some node buckets and the edge bucket should be empty. */
+ assert(node_bucket_get_length(node_buckets[1]) == 0);
+ assert(node_bucket_get_length(node_buckets[2]) == 0);
+ assert(edge_bucket_get_length(edge_bucket) == 0);
+
+ /* char *tmp = obstack_finish(&pbqp->obstack); */
+
+ /* Save current PBQP state. */
+ node_bucket_copy(&bucket_deg3, node_buckets[3]);
+ node_bucket_shrink(&node_buckets[3], 0);
+ node_bucket_deep_copy(pbqp, &node_buckets[3], bucket_deg3);
+ node_bucket_update(pbqp, node_buckets[3]);
+ bucket_0_length = node_bucket_get_length(node_buckets[0]);
+ bucket_red_length = node_bucket_get_length(reduced_bucket);
+
+ /* Select alternative and solve PBQP recursively. */
+ select_alternative(node_buckets[3][bucket_index], node_index);
+ apply_brute_force_reductions(pbqp);
+
+ value = determine_solution(pbqp);
+
+ if (value < min) {
+ min = value;
+ min_index = node_index;