22#include <bliss/abstractgraph.hh> 
   72    void add_edge(
const unsigned int other_vertex);
 
   73    void remove_duplicate_edges(std::vector<bool>& tmp);
 
   77    std::vector<unsigned int> edges;
 
   78    unsigned int nof_edges()
 const {
return edges.size(); }
 
   80  std::vector<Vertex> vertices;
 
   82  void remove_duplicate_edges();
 
   89  static unsigned int vertex_color_invariant(
const Graph* 
const g,
 
   90                         const unsigned int v);
 
   98  static unsigned int degree_invariant(
const Graph* 
const g,
 
   99                       const unsigned int v);
 
  106  static unsigned int selfloop_invariant(
const Graph* 
const g,
 
  107                     const unsigned int v);
 
  110  bool refine_according_to_invariant(
unsigned int (*inv)(
const Graph* 
const g,
 
  111                             const unsigned int v));
 
  116  bool split_neighbourhood_of_unit_cell(Partition::Cell * 
const);
 
  117  bool split_neighbourhood_of_cell(Partition::Cell * 
const);
 
  122  bool is_equitable() 
const;
 
  126  Partition::Cell* find_next_cell_to_be_splitted(Partition::Cell *cell);
 
  127  Partition::Cell* sh_first();
 
  128  Partition::Cell* sh_first_smallest();
 
  129  Partition::Cell* sh_first_largest();
 
  130  Partition::Cell* sh_first_max_neighbours();
 
  131  Partition::Cell* sh_first_smallest_max_neighbours();
 
  132  Partition::Cell* sh_first_largest_max_neighbours();
 
  139  std::vector<Partition::Cell*> _neighbour_cells;
 
  141  void make_initial_equitable_partition();
 
  143  void initialize_certificate();
 
  147  bool nucr_find_first_component(
const unsigned int level);
 
  148  bool nucr_find_first_component(
const unsigned int level,
 
  149                 std::vector<unsigned int>& component,
 
  150                 unsigned int& component_elements,
 
  151                 Partition::Cell*& sh_return);
 
  160  Graph(
const unsigned int N = 0);
 
  198  void write_dot(
const char* 
const file_name);
 
  219  Graph* 
permute(
const std::vector<unsigned int>& perm) 
const;
 
  234  unsigned int add_vertex(
const unsigned int color = 0);
 
  242  void add_edge(
const unsigned int v1, 
const unsigned int v2);
 
  247  unsigned int get_color(
const unsigned int vertex) 
const;
 
  252  void change_color(
const unsigned int vertex, 
const unsigned int color);
 
An abstract base class for different types of graphs.
Definition: abstractgraph.hh:48
 
The class for undirected, vertex colored graphs.
Definition: graph.hh:32
 
void add_edge(const unsigned int v1, const unsigned int v2)
Definition: graph.cc:115
 
Graph * copy() const
Definition: graph.cc:141
 
SplittingHeuristic
Definition: graph.hh:42
 
@ shs_f
Definition: graph.hh:46
 
@ shs_fl
Definition: graph.hh:52
 
@ shs_fsm
Definition: graph.hh:60
 
@ shs_fm
Definition: graph.hh:56
 
@ shs_fs
Definition: graph.hh:49
 
@ shs_flm
Definition: graph.hh:64
 
void set_splitting_heuristic(const SplittingHeuristic shs)
Definition: graph.hh:276
 
unsigned int get_nof_vertices() const
Definition: graph.hh:210
 
int cmp(Graph &other)
Definition: graph.cc:377
 
void write_dimacs(FILE *const fp)
Definition: graph.cc:327
 
unsigned int get_color(const unsigned int vertex) const
Definition: graph.cc:126
 
static Graph * read_dimacs(FILE *const fp, FILE *const errstr=stderr)
Definition: graph.cc:165
 
void change_color(const unsigned int vertex, const unsigned int color)
Definition: graph.cc:132
 
bool is_automorphism(unsigned int *const perm) const
Definition: graph.cc:1387
 
Graph * permute(const unsigned int *const perm) const
Definition: graph.cc:450
 
Graph(const unsigned int N=0)
Definition: graph.cc:91
 
void write_dot(FILE *const fp)
Definition: graph.cc:498
 
virtual unsigned int get_hash()
Definition: graph.cc:539
 
~Graph()
Definition: graph.cc:98
 
unsigned int add_vertex(const unsigned int color=0)
Definition: graph.cc:105
 
Definition: abstractgraph.cc:35