evat< ALLOC_ > Class Template Reference

Edge VAT class to store an occurrence of an edge within a graph. More...

#include <graph_evat.h>

List of all members.

Public Types

typedef pair< int, int > VID_PAIR
typedef vector< VID_PAIR,
ALLOC_< VID_PAIR > > 
EVAT
typedef EVAT::const_iterator CONST_IT
typedef EVAT::iterator IT

Public Member Functions

IT begin ()
CONST_IT begin () const
IT end ()
CONST_IT end () const
unsigned long int byte_size () const
void write_file (ostream &output) const
void print ()
void read_file (istream &input, unsigned long int size)
VID_PAIRoperator[] (const int &i)
const VID_PAIRoperator[] (const int &i) const
void push_back (const pair< int, int > &ids)
bool empty () const
int size () const

Static Public Member Functions

template<template< typename, typename > class VAT_ST, typename VAT, template< typename > class ALLOC>
static void fwd_intersect (const VAT &vat_v1, const evat &evat_v1, const evat &evat_v2, VAT &cand_vat, bool is_fwd_chain, const int &rmp_index, const int &new_edge_state, const int &tid, bool l2_eq)
template<template< typename, typename > class VAT_ST, typename VAT, template< typename > class ALLOC>
static void back_intersect (const VAT &vat_v1, const evat &evat_v1, const evat &evat_v2, VAT &cand_vat, const int &back_idx, const int &new_edge_state, const int &tid)

Friends

ostream & operator<< (ostream &, const evat< ALLOC_ > &)


Detailed Description

template<template< typename > class ALLOC_ = std::allocator>
class evat< ALLOC_ >

Edge VAT class to store an occurrence of an edge within a graph.


Member Typedef Documentation

template<template< typename > class ALLOC_ = std::allocator>
typedef vector<VID_PAIR, ALLOC_<VID_PAIR> > evat< ALLOC_ >::EVAT

Each edge could occur multiple times in a graph

template<template< typename > class ALLOC_ = std::allocator>
typedef pair<int, int> evat< ALLOC_ >::VID_PAIR

Vertex ids for the two endsod edge


Member Function Documentation

template<template< typename > class ALLOC_ = std::allocator>
template<template< typename, typename > class VAT_ST, typename VAT, template< typename > class ALLOC>
static void evat< ALLOC_ >::back_intersect ( const VAT &  vat_v1,
const evat< ALLOC_ > &  evat_v1,
const evat< ALLOC_ > &  evat_v2,
VAT &  cand_vat,
const int &  back_idx,
const int &  new_edge_state,
const int &  tid 
) [inline, static]

Performs back-intersection of v1_evat and v2_evat; populates cand_vat with result

Similar to fwd_intersect, first determine swap_vids

template<template< typename > class ALLOC_ = std::allocator>
template<template< typename, typename > class VAT_ST, typename VAT, template< typename > class ALLOC>
static void evat< ALLOC_ >::fwd_intersect ( const VAT &  vat_v1,
const evat< ALLOC_ > &  evat_v1,
const evat< ALLOC_ > &  evat_v2,
VAT &  cand_vat,
bool  is_fwd_chain,
const int &  rmp_index,
const int &  new_edge_state,
const int &  tid,
bool  l2_eq 
) [inline, static]

Performs forward-intersection of v1_evat and v2_evat; populates cand_vat with result; v1 is of first pattern

The next few lines determine if the vids of evat_v2 should be swapped. If the two v-lbls are distinct, then you can determine this based on new_edge_state. However, if the labels are same, then you need to check both for a match and accordingly set this flag

this is a valid fwd extension ///


The documentation for this class was generated from the following file:
Generated on Wed Jul 26 14:01:09 2006 for DMTL by  doxygen 1.4.7