Node colours


Functions

TNodeabstractMixedGraph::InitNodeColours (TNode def=NoNode) throw ()
TNodeabstractMixedGraph::GetNodeColours () const throw ()
TNodeabstractMixedGraph::RawNodeColours () throw ()
TNodeabstractMixedGraph::RandomNodeOrder () throw ()
virtual TNode abstractMixedGraph::NodeColour (TNode v) const throw (ERRange)
void abstractMixedGraph::SetNodeColour (TNode v, TNode thisColour) throw (ERRange)
void abstractMixedGraph::ReleaseNodeColours () throw ()
void abstractMixedGraph::ExtractCut () throw (ERRejected)
void abstractMixedGraph::ExtractBipartition () throw (ERRejected)
void abstractMixedGraph::ExtractColours () throw (ERRejected)

Function Documentation

void ExtractBipartition  )  throw (ERRejected) [inherited]
 

Extract a bipartition from the distance labels and save it to the node colours.

This separates the nodes with even distance labels (including InfFloat) from the nodes with odd distance label InfFloat.

void ExtractColours  )  throw (ERRejected) [inherited]
 

Convert a partition of the node set from the disjoint set family to the node colours.

This assigns colours to the nodes such that nodes u, v with Find(u)==Find(v) are equally coloured.

void ExtractCut  )  throw (ERRejected) [inherited]
 

Extract an edge cut from the distance labels and save it to the node colours.

This separates the nodes with finite distance labels from the nodes with distance label InfFloat.

TNode * GetNodeColours  )  const throw () [inherited]
 

Get access to the node colours.

Returns:
A pointer to the array of node colours or NULL
Other than InitNodeColours() and RawNodeColours(), this operation does not allocate node colours if those do not exist.

TNode * InitNodeColours TNode  def = NoNode  )  throw () [inherited]
 

Initialize the node colours.

Parameters:
def A default value
Returns:
A pointer to the array of node colours
If not already present, the node colour register is allocated. In any case, all node colours are set to a default value.

TNode NodeColour TNode  v  )  const throw (ERRange) [virtual, inherited]
 

Retrieve the colour of a given node.

Parameters:
v A node index in the range [0,1..,n-1]
Returns:
A colour index ranged [0,1,..,n-1] or NoNode
This operation is little efficient if it is called for several nodes due to the attribute lookup operations which occur.

TNode * RandomNodeOrder  )  throw () [inherited]
 

Assign the node colours with a random permutation.

Returns:
A pointer to the array of node colours
If not already present, the node colour register is allocated. Then, a random permutation of the sequence 0,1,..,n-1 is assigned.

TNode * RawNodeColours  )  throw () [inherited]
 

Ensure existence of the node colours.

Returns:
A pointer to the array of node colours
If not already present, the node colour register is allocated. Other than InitNodeColours(), this does not initialize the array element values.

void ReleaseNodeColours  )  throw () [inherited]
 

Release the node colours from memory.

This implicitly sets all node colours to NoNode.

void SetNodeColour TNode  v,
TNode  thisColour
throw (ERRange) [inherited]
 

Assign a colour to a given node.

Parameters:
v A node index in the range [0,1..,n-1]
thisColour A colour index ranged [0,1,..,n-1] or NoNode
If not already present and if thisColour != NoNode, the node colour register is allocated. In any case, thisColour is assigned as the colour of v.

This operation is little efficient if it is called for several nodes due to the attribute lookup operations which occur.