{
lpp_name_t find, *found;
find.name = name;
- found
- = (lpp_name_t*)set_find(where, &find, sizeof(find), HASH_NAME_T(&find));
+ found = set_find(lpp_name_t, where, &find, sizeof(find), HASH_NAME_T(&find));
return (found ? found->nr : -1);
}
n.name = get_next_name(lpp);
n.nr = -1;
- inner = (lpp_name_t*)set_insert(lpp->cst2nr, &n, sizeof(n), HASH_NAME_T(&n));
+ inner = set_insert(lpp_name_t, lpp->cst2nr, &n, sizeof(n), HASH_NAME_T(&n));
assert(inner);
if (inner->nr == -1) {
n.name = cst_name;
n.nr = -1;
- assert(!set_find(lpp->cst2nr, &n, sizeof(n), HASH_NAME_T(&n)) &&
+ assert(!set_find(lpp_name_t, lpp->cst2nr, &n, sizeof(n), HASH_NAME_T(&n)) &&
"constraint already exists");
}
return lpp_add_cst(lpp, cst_name, cst_type, rhs);
n.name = get_next_name(lpp);
n.nr = -1;
- inner = (lpp_name_t*)set_insert(lpp->var2nr, &n, sizeof(n), HASH_NAME_T(&n));
+ inner = set_insert(lpp_name_t, lpp->var2nr, &n, sizeof(n), HASH_NAME_T(&n));
assert(inner);
if (inner->nr == -1) {
{
int i;
+ fprintf(f, lpp->opt_type == lpp_minimize ? "Minimize\n" : "Maximize\n");
for(i = 0; i < lpp->cst_next; ++i) {
- const matrix_elem_t *elm;
lpp_name_t *cst = lpp->csts[i];
+
fprintf(f, "%16s: ", cst->name);
matrix_foreach_in_row(lpp->m, cst->nr, elm) {
lpp_name_t *var = lpp->vars[elm->col];
/* TODO Perhaps better a define LPP_COL_RHS */
if(elm->col > 0)
- fprintf(f, "%+4.1f*%-16s ", elm->val, var->name);
+ fprintf(f, "%+4.1f %-16s ", elm->val, var->name);
+ }
+
+ if (i == 0) {
+ fprintf(f, "\nSubject To\n");
+ continue;
}
fprintf(f, "%3s %+4.1f\n",
lpp_cst_op_to_str(cst->type.cst_type), matrix_get(lpp->m, cst->nr, 0));
}
+
+ fprintf(f, "Binary\n");
+ for(i = 0; i < lpp->var_next; ++i) {
+ lpp_name_t *var = lpp->vars[i];
+ if (var->type.var_type == lpp_binary)
+ fprintf(f, "%16s\n", var->name);
+ }
+ fprintf(f, "End\n");
}
/**
lpp_writes(comm, name->name);
}
- {
- const matrix_elem_t *elm;
- n = 0;
-
- matrix_foreach(lpp->m, elm)
- n++;
+ n = 0;
+ matrix_foreach(lpp->m, elm)
+ n++;
- assert(n == matrix_get_entries(lpp->m));
- lpp_writel(comm, n);
- matrix_foreach(lpp->m, elm) {
- lpp_writel(comm, elm->row);
- lpp_writel(comm, elm->col);
- lpp_writed(comm, elm->val);
- }
+ assert(n == matrix_get_entries(lpp->m));
+ lpp_writel(comm, n);
+ matrix_foreach(lpp->m, elm) {
+ lpp_writel(comm, elm->row);
+ lpp_writel(comm, elm->col);
+ lpp_writed(comm, elm->val);
}
}
name.name = buf;
}
- res = (lpp_name_t*)set_insert(lpp->cst2nr, &name, sizeof(name), HASH_NAME_T(&name));
+ res = set_insert(lpp_name_t, lpp->cst2nr, &name, sizeof(name), HASH_NAME_T(&name));
lpp->csts[name.nr] = res;
}
name.name = buf;
}
- res = (lpp_name_t*)set_insert(lpp->var2nr, &name, sizeof(name), HASH_NAME_T(&name));
+ res = set_insert(lpp_name_t, lpp->var2nr, &name, sizeof(name), HASH_NAME_T(&name));
lpp->vars[name.nr] = res;
}