Camargue
Public Types | Public Member Functions | Private Attributes | List of all members
CMR::Sep::ToothBank Class Reference

Storage of a repository of Teeth, for use in building a HyperGraph. More...

#include <cliq.hpp>

Public Types

using ToothHash = std::unordered_map< Tooth, Tooth::Ptr >
 Alias declaration for Tooth hash table.
 
using Itr = ToothHash::iterator
 Iterator alias.
 
using ConstItr = ToothHash::const_iterator
 Const iterator alias.
 

Public Member Functions

 ToothBank (const std::vector< int > &tour, const std::vector< int > &perm)
 Construct a ToothBank to be dereferenced by tour and perm.
 
 ToothBank (const CliqueBank &cbank)
 Construct a ToothBank with reference vectors matching a CliqueBank.
 
Tooth::Ptr add_tooth (const SimpleTooth &T, const std::vector< int > &tour)
 Add a Tooth to the bank and get a reference to it. More...
 
void del_tooth (Tooth::Ptr &T_ptr)
 Decrement the reference count of a Tooth, possibly deleting it.
 
int size () const
 Number of teeth in the bank.
 
Itr begin ()
 Begin iterator.
 
ConstItr begin () const
 Const begin iterator.
 
Itr end ()
 Past the end iterator.
 
ConstItr end () const
 Const past the end iterator.
 
const std::vector< int > & ref_tour () const
 Const ref to saved tour for dereferencing.
 
const std::vector< int > & ref_perm () const
 Const ref to saved perm for dereferencing.
 

Private Attributes

const std::vector< int > saved_tour
 Saved tour for dereferencing.
 
const std::vector< int > saved_perm
 Permutation vec for saved_tour.
 
ToothHash bank
 Hash table of Tooth to Tooth::Ptr.
 

Detailed Description

Storage of a repository of Teeth, for use in building a HyperGraph.

This class is like CliqueBank, but instead it dispenses and deletes references to Tooth objects instead.

Member Function Documentation

Tooth::Ptr CMR::Sep::ToothBank::add_tooth ( const SimpleTooth T,
const std::vector< int > &  tour 
)

Add a Tooth to the bank and get a reference to it.

Parameters
[in]Tthe SimpleTooth to add to the bank.
[in]tourthe tour that was active when T was found.

The documentation for this class was generated from the following files: