6 #include "pbqp_node_t.h"
9 pbqp_node *alloc_node(pbqp *pbqp, unsigned node_index, vector *costs)
11 pbqp_node *node = obstack_alloc(&pbqp->obstack, sizeof(*node));
14 node->edges = NEW_ARR_F(pbqp_edge *, 0);
15 node->costs = vector_copy(pbqp, costs);
16 node->bucket_index = UINT_MAX;
17 node->solution = UINT_MAX;
18 node->index = node_index;
23 void disconnect_edge(pbqp_node *node, pbqp_edge *edge)
30 edge_len = ARR_LEN(edges);
32 for (edge_index = 0; edge_index < edge_len; ++edge_index) {
33 pbqp_edge *edge_candidate = edges[edge_index];
34 if (edge_candidate == edge) {
35 edges[edge_index] = edges[edge_len - 1];
36 ARR_SHRINKLEN(edges, (int)edge_len - 1);