6 vector *vector_alloc(pbqp *pbqp, unsigned length)
12 vec = obstack_alloc(&pbqp->obstack, sizeof(*vec) + sizeof(vec_elem) * (length - 1));
16 for (index = 0; index < length; ++index) {
17 vec->entries[index].data = 0;
19 vec->entries[index].name = NULL;
26 vector *vector_copy(pbqp *pbqp, vector *v)
30 vector *copy = obstack_alloc(&pbqp->obstack, sizeof(*copy));
36 for (i = 0; i < len; ++i) {
37 copy->entries[i] = v->entries[i];
43 void vector_add(vector *sum, vector *summand)
50 assert(sum->len == summand->len);
54 for (i = 0; i < len; ++i) {
55 sum->entries[i].data += summand->entries[i].data;
59 void vector_set(vector *vec, unsigned index, num value)
61 assert(index < vec->len);
62 vec->entries[index].data = value;
66 void vector_set_description(vector *vec, unsigned index, char *name)
68 assert(index < vec->len);
69 vec->entries[index].name = name;