bliss::AbstractGraph Class Reference

An abstract base class for different types of graphs. More...

#include <graph.hh>

Inheritance diagram for bliss::AbstractGraph:

bliss::Digraph bliss::Graph List of all members.

Public Member Functions

void set_verbose_level (const unsigned int level)
void set_verbose_file (FILE *const fp)
virtual unsigned int get_nof_vertices () const=0
void find_automorphisms (Stats &stats, void(*hook)(void *user_param, unsigned int n, const unsigned int *aut), void *hook_user_param)
const unsigned int * canonical_form (Stats &stats, void(*hook)(void *user_param, unsigned int n, const unsigned int *aut), void *user_param)
virtual void write_dimacs (FILE *const fp)=0
virtual void write_dot (FILE *const fp)=0
virtual void write_dot (const char *const file_name)=0
virtual unsigned int get_hash ()=0
void set_long_prune_activity (const bool active)

Detailed Description

An abstract base class for different types of graphs.


Member Function Documentation

void bliss::AbstractGraph::set_verbose_level ( const unsigned int  level  ) 

Set the verbose output level for the algorithms.

Parameters:
level the level of verbose output, 0 means no verbose output

void bliss::AbstractGraph::set_verbose_file ( FILE *const   fp  ) 

Set the file stream for the verbose output.

Parameters:
fp the file stream; if null, no verbose output is written

virtual unsigned int bliss::AbstractGraph::get_nof_vertices (  )  const [pure virtual]

Return the number of vertices in the graph.

Implemented in bliss::Graph, and bliss::Digraph.

void bliss::AbstractGraph::find_automorphisms ( Stats stats,
void(*)(void *user_param, unsigned int n, const unsigned int *aut)  hook,
void *  hook_user_param 
)

Find a set of generators for the automorphism group of the graph. The function hook (if non-null) is called each time a new generator for the automorphism group is found. The first argument user_param for the hook is the hook_user_param given below, the second argument n is the length of the automorphism (equal to get_nof_vertices()) and the third argument aut is the automorphism (a bijection on {0,...,get_nof_vertices()-1}). The memory for the automorphism aut will be invalidated immediately after the return from the hook function; if you want to use the automorphism later, you have to take a copy of it. Do not call any member functions in the hook. The search statistics are copied in stats.

const unsigned int * bliss::AbstractGraph::canonical_form ( Stats stats,
void(*)(void *user_param, unsigned int n, const unsigned int *aut)  hook,
void *  user_param 
)

Otherwise the same as find_automorphisms() except that a canonical labeling of the graph (a bijection on {0,...,get_nof_vertices()-1}) is returned. The memory allocated for the returned canonical labeling will remain valid only until the next call to a member function with the exception that constant member functions (for example, bliss::Graph::permute()) can be called without invalidating the labeling. To compute the canonical version of an undirected graph, call this function and then bliss::Graph::permute() with the returned canonical labeling. Note that the computed canonical version may depend on the applied version of bliss as well as on some other options (for instance, the splitting heuristic selected with bliss::Graph::set_splitting_heuristic()).

virtual void bliss::AbstractGraph::write_dimacs ( FILE *const   fp  )  [pure virtual]

Write the graph to a file in a variant of the DIMACS format. See the bliss website for the definition of the file format. Note that in the DIMACS file the vertices are numbered from 1 to N while in this C++ API they are from 0 to N-1. Thus the vertex n in the file corresponds to the vertex n-1 in the API.

Parameters:
fp the file stream where the graph is written

Implemented in bliss::Graph, and bliss::Digraph.

virtual void bliss::AbstractGraph::write_dot ( FILE *const   fp  )  [pure virtual]

Write the graph to a file in the graphviz dotty format.

Parameters:
fp the file stream where the graph is written

Implemented in bliss::Graph, and bliss::Digraph.

virtual void bliss::AbstractGraph::write_dot ( const char *const  file_name  )  [pure virtual]

Write the graph in a file in the graphviz dotty format.

Parameters:
file_name the name of the file to which the graph is written

Implemented in bliss::Graph, and bliss::Digraph.

virtual unsigned int bliss::AbstractGraph::get_hash (  )  [pure virtual]

Get a hash value for the graph.

Returns:
the hash value

Implemented in bliss::Graph, and bliss::Digraph.

void bliss::AbstractGraph::set_long_prune_activity ( const bool  active  )  [inline]

Disable/enable the long prune method. May not be called during the search, i.e. from an automorphism reporting hook function.


The documentation for this class was generated from the following files:
Generated on Wed Nov 19 18:52:01 2008 by  doxygen 1.5.1