Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members

dbm::partition_t Class Reference

Type for partitions, designed to be used as a simple scalar with cheap copies as long as there is no need to modify a partition_t. More...

#include <partition.h>

List of all members.

Public Member Functions

 partition_t (cindex_t dim)
 Initialise an empty partition for federations of dimension dim.
 partition_t (const partition_t &arg)
 The copy is a reference copy only.
partition_toperator= (const partition_t &arg)
 Copy operator is a reference copy only.
 ~partition_t ()
void intern ()
 Wrappers to the federations of the partition.
void add (uintptr_t id, fed_t &fed)
 Add a federation to the partition subset 'id'.
fed_t get (uint32_t id) const
cindex_t getDimension () const
size_t getNumberOfDBMs () const
const_iterator begin () const
 Standard begin() and end() for const_iterator.
const_iterator end () const

Private Member Functions

void checkMutable ()
 Check that the referenced fedTable is mutable (refCounter == 1) and make a copy if necessary.
bool isPtr () const
cindex_t edim () const

Static Private Member Functions

static fedtable_tdim2ptr (cindex_t dim)

Private Attributes

fedtable_tfedTable

Classes

class  const_iterator
 Iterator to read the federation of the partitions. More...
class  entry_t
 An entry in the table of federations. More...
class  fedtable_t
 The federation table (a simple hash table with chained collisions on the table entries) to access the subsets (fed_t) of the partition. More...


Detailed Description

Type for partitions, designed to be used as a simple scalar with cheap copies as long as there is no need to modify a partition_t.


Constructor & Destructor Documentation

dbm::partition_t::partition_t cindex_t  dim  )  [inline]
 

Initialise an empty partition for federations of dimension dim.

dbm::partition_t::partition_t const partition_t arg  )  [inline]
 

The copy is a reference copy only.

dbm::partition_t::~partition_t  )  [inline]
 


Member Function Documentation

void dbm::partition_t::add uintptr_t  id,
fed_t fed
 

Add a federation to the partition subset 'id'.

The intersecting DBMs of fed with the partition will be given to fed or one subset of the partition and subtracted from fed or the partition depending on the decision function (

See also:
constructor and setChooser).
Parameters:
id,fed ID of the federation fed to add to the partition.
Precondition:
fed.getDimension() == getDimension()
Postcondition:
fed.isEmpty() and convexReduce() is maintained on the internal federations.

const_iterator dbm::partition_t::begin  )  const [inline]
 

Standard begin() and end() for const_iterator.

void dbm::partition_t::checkMutable  )  [inline, private]
 

Check that the referenced fedTable is mutable (refCounter == 1) and make a copy if necessary.

static fedtable_t* dbm::partition_t::dim2ptr cindex_t  dim  )  [inline, static, private]
 

cindex_t dbm::partition_t::edim  )  const [inline, private]
 

const_iterator dbm::partition_t::end  )  const [inline]
 

fed_t dbm::partition_t::get uint32_t  id  )  const [inline]
 

Returns:
the federation corresponding to the subset 'id' of the partition. If there is no such subset, an empty federation is returned.
Parameters:
id ID of the subset to find.

cindex_t dbm::partition_t::getDimension  )  const [inline]
 

Returns:
the dimension of the federations.

size_t dbm::partition_t::getNumberOfDBMs  )  const [inline]
 

Returns:
total number of DBMs of all the federations (compute the number on demand).

void dbm::partition_t::intern  ) 
 

Wrappers to the federations of the partition.

See also:
fed_t

bool dbm::partition_t::isPtr  )  const [inline, private]
 

partition_t& dbm::partition_t::operator= const partition_t arg  )  [inline]
 

Copy operator is a reference copy only.


Member Data Documentation

fedtable_t* dbm::partition_t::fedTable [private]
 


The documentation for this class was generated from the following files:
Generated on Fri Jun 30 00:02:47 2006 for Module dbm by  doxygen 1.4.2