const void *nr, const void *edge,
struct agar_edge_info *eir)
{
+ const struct parallel_graphr *pgr
+ = container_of(gr, struct parallel_graphr, gr);
assert(ptr2int(nr) == 1);
eir->to = int2ptr(2);
+ if (ptr2int(edge) == pgr->cheaplink)
+ eir->icost = 1;
+ else
+ eir->icost = 2;
return 0;
}
-void parallel_graphr_init(struct parallel_graphr *pgr, int nlinks)
+void parallel_graphr_init(struct parallel_graphr *pgr, int nlinks,
+ int cheaplink)
{
pgr->nlinks = nlinks;
+ pgr->cheaplink = cheaplink;
agar_init_graph(&pgr->gr, parallel_first_edge_r, parallel_next_edge_r,
parallel_edge_info_r);