#include <graph_evat.h>
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_PAIR & | operator[] (const int &i) |
| const VID_PAIR & | operator[] (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_ > &) |
| typedef vector<VID_PAIR, ALLOC_<VID_PAIR> > evat< ALLOC_ >::EVAT |
Each edge could occur multiple times in a graph
| typedef pair<int, int> evat< ALLOC_ >::VID_PAIR |
Vertex ids for the two endsod edge
| 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
| 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 ///
1.4.7