8 vector *vector_alloc(pbqp *pbqp, unsigned length)
11 vector *vec = obstack_alloc(&pbqp->obstack, sizeof(*vec) + sizeof(*vec->entries) * length);
15 memset(vec->entries, 0, sizeof(*vec->entries) * length);
20 vector *vector_copy(pbqp *pbqp, vector *v)
22 unsigned len = v->len;
23 vector *copy = obstack_copy(&pbqp->obstack, v, sizeof(*copy) + sizeof(*copy->entries) * len);
29 void vector_add(vector *sum, vector *summand)
36 assert(sum->len == summand->len);
40 for (i = 0; i < len; ++i) {
41 sum->entries[i].data += summand->entries[i].data;
45 void vector_set(vector *vec, unsigned index, num value)
47 assert(index < vec->len);
48 vec->entries[index].data = value;
52 void vector_set_description(vector *vec, unsigned index, char *name)
54 assert(index < vec->len);
55 vec->entries[index].name = name;
59 void vector_add_value(vector *vec, num value)
68 for (index = 0; index < len; ++index) {
69 if (vec->entries[index].data == INF_COSTS) continue;
71 vec->entries[index].data += value;