spot  1.0
Public Member Functions | Static Public Member Functions | Protected Attributes | Static Protected Attributes | Private Types | Private Member Functions | Private Attributes | List of all members
spot::bdd_allocator Class Reference

Manage ranges of variables. More...

#include <misc/bddalloc.hh>

Inheritance diagram for spot::bdd_allocator:
Inheritance graph
Collaboration diagram for spot::bdd_allocator:
Collaboration graph

Public Member Functions

 bdd_allocator ()
 Default constructor.
int allocate_variables (int n)
 Allocate n BDD variables.
void release_variables (int base, int n)
 Release n BDD variables starting at base.

Static Public Member Functions

static void initialize ()
 Initialize the BDD library.

Protected Attributes

int lvarnum
 number of variables in use in this allocator.

Static Protected Attributes

static bool initialized
 Whether the BDD library has been initialized.

Private Types

typedef std::pair< int, int > pos_lenght_pair
 Such pairs describe second free integer starting at first.
typedef std::list
< pos_lenght_pair
free_list_type

Private Member Functions

void extvarnum (int more)
 Require more variables.
virtual int extend (int n)
int register_n (int n)
 Find n consecutive integers.
void release_n (int base, int n)
 Release n consecutive integers starting at base.
std::ostream & dump_free_list (std::ostream &os) const
 Dump the list to os for debugging.
void insert (int base, int n)
 Extend the list by inserting a new pos-lenght pair.
void remove (int base, int n=0)
 Remove n consecutive entries from the list, starting at base.
void remove (free_list_type::iterator i, int base, int n)
 Remove n consecutive entries from the list, starting at base.
int free_count () const
 Return the number of free integers on the list.

Private Attributes

free_list_type fl
 Tracks unused BDD variables.

Detailed Description

Manage ranges of variables.

Member Typedef Documentation

typedef std::list<pos_lenght_pair> spot::free_list::free_list_type
protectedinherited
typedef std::pair<int, int> spot::free_list::pos_lenght_pair
protectedinherited

Such pairs describe second free integer starting at first.

Constructor & Destructor Documentation

spot::bdd_allocator::bdd_allocator ( )

Default constructor.

Member Function Documentation

int spot::bdd_allocator::allocate_variables ( int  n)

Allocate n BDD variables.

std::ostream& spot::free_list::dump_free_list ( std::ostream &  os) const
inherited

Dump the list to os for debugging.

virtual int spot::bdd_allocator::extend ( int  n)
privatevirtual
void spot::bdd_allocator::extvarnum ( int  more)
private

Require more variables.

int spot::free_list::free_count ( ) const
inherited

Return the number of free integers on the list.

static void spot::bdd_allocator::initialize ( )
static

Initialize the BDD library.

void spot::free_list::insert ( int  base,
int  n 
)
inherited

Extend the list by inserting a new pos-lenght pair.

int spot::free_list::register_n ( int  n)
inherited

Find n consecutive integers.

Browse the list of free integers until n consecutive integers are found. Extend the list (using extend()) otherwise.

Returns
the first integer of the range
void spot::free_list::release_n ( int  base,
int  n 
)
inherited

Release n consecutive integers starting at base.

void spot::bdd_allocator::release_variables ( int  base,
int  n 
)

Release n BDD variables starting at base.

void spot::free_list::remove ( int  base,
int  n = 0 
)
inherited

Remove n consecutive entries from the list, starting at base.

void spot::free_list::remove ( free_list_type::iterator  i,
int  base,
int  n 
)
protectedinherited

Remove n consecutive entries from the list, starting at base.

Member Data Documentation

free_list_type spot::free_list::fl
protectedinherited

Tracks unused BDD variables.

bool spot::bdd_allocator::initialized
staticprotected

Whether the BDD library has been initialized.

int spot::bdd_allocator::lvarnum
protected

number of variables in use in this allocator.


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

Please comment this page and report errors about it on the RefDocComments page.
Generated on Sat Oct 27 2012 09:34:33 for spot by doxygen 1.8.1.2