void LpSolveInterface::GraphParsingState::SetObjectiveFunction(lprec* model) { set_minim(CHECK_NOTNULL(model)); int num_x_vars = edge_to_crossing_variable_indices_.size(); unique_ptr<int[]> indices(new int[num_x_vars]); unique_ptr<REAL[]> coeffs(new REAL[num_x_vars]); int added = 0; for (const pair<int, int>& e : edge_to_crossing_variable_indices_) { indices[added] = e.second; Edge* edge = graph_->internal_edges().at(e.first); coeffs[added++] = (REAL)(edge->Weight()); } set_obj_fnex(model, num_x_vars, coeffs.get(), indices.get()); }
int Edge::compareTo(Edge that){ if(this->Weight() < that.Weight()) return 1; else if(this->Weight() > that.Weight()) return -1; else return 0; }