3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-08-02 09:20:22 +00:00

Update interface of network flows

This commit is contained in:
Anh-Dung Phan 2013-11-07 15:56:53 -08:00
parent 759d80dfe3
commit ab4efe2da0
5 changed files with 360 additions and 407 deletions

View file

@ -47,24 +47,14 @@ namespace smt {
typedef int node;
public:
virtual void initialize(svector<bool> const & upwards, int num_nodes) {};
/**
\brief Get all descendants of a node including itself
*/
virtual void initialize(svector<bool> const & upwards) {};
virtual void get_descendants(node start, svector<node> & descendants) {};
/**
\brief Get all ancestors of a node including itself
*/
virtual void get_ancestors(node start, svector<node> & ancestors) {};
virtual node get_common_ancestor(node u, node v) {UNREACHABLE(); return -1;};
virtual void update(node p, node q, node u, node v) {};
virtual void update(edge_id enter_id, edge_id leave_id, bool & is_swap_enter, bool & is_swap_leave) {};
virtual bool check_well_formed() {UNREACHABLE(); return false;};
// TODO: remove these two unnatural functions
virtual bool get_arc_direction(node start) const {UNREACHABLE(); return false;};
virtual node get_parent(node start) {UNREACHABLE(); return -1;};
virtual void get_path(node start, node end, svector<edge_id> & path, svector<bool> & against) {};
virtual bool is_forward_edge(edge_id e_id) const {UNREACHABLE(); return false;};
virtual bool is_ancestor_of(node ancestor, node child) {UNREACHABLE(); return false;};
};
}