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

gbdd::Domains Class Reference

Tuple of domains used to type Relation. More...

#include <domain.h>

List of all members.

Public Types

typedef vector< Domain
>::const_iterator 
const_iterator
 Iterator.


Public Member Functions

 Domains (unsigned int n=0)
 Create a sequence of empty domains.

 Domains (Domain d1)
 Create domains with one element.

bool is_some_infinite () const
 Check if some domain is infinite.

Domainoperator[] (unsigned int idx)
 Get one of the domains.

const Domainoperator[] (unsigned int idx) const
 Get one of the domains.

Domain union_all () const
 Get union of all domains.

bool is_disjoint (const Domains &ds2) const
 Check if other domains are disjoint.

Domains intersect_with (Domain d) const
 Intersect domains with another domain.

Domains cut_to_same_sizes (Domains ds) const
 Cut domains to the same size as another sequence of domains.

const_iterator begin () const
 Get iterator pointing to beginning.

const_iterator end () const
 Get iterator pointing to end.

unsigned int size () const
 Get size of domains.

template<class _UnaryFunction> Domains transform (_UnaryFunction op) const
 transform elements of domains


Static Public Member Functions

Domains sup (const Domains &ds1, const Domains &ds2)
 Get largest domain for each component.


Friends

Domains operator * (Domains ds1, Domains ds2)
 Cross product of domains.

bool operator== (Domains ds1, Domains ds2)
 Equality.


Detailed Description

Tuple of domains used to type Relation.


Member Typedef Documentation

typedef vector<Domain>::const_iterator gbdd::Domains::const_iterator
 

Iterator.


Constructor & Destructor Documentation

gbdd::Domains::Domains unsigned int  n = 0  ) 
 

Create a sequence of empty domains.

Parameters:
n Number of domains

gbdd::Domains::Domains Domain  d1  ) 
 

Create domains with one element.

Parameters:
d1 The domain


Member Function Documentation

const_iterator gbdd::Domains::begin  )  const [inline]
 

Get iterator pointing to beginning.

Returns:
Iterator pointing to beginning

Domains gbdd::Domains::cut_to_same_sizes Domains  ds  )  const
 

Cut domains to the same size as another sequence of domains.

Parameters:
ds Sequence of domains to compare with
Returns:
Every domain is cut to the same size as the corresponding domain in ds

const_iterator gbdd::Domains::end  )  const [inline]
 

Get iterator pointing to end.

Returns:
Iterator pointing to end

Domains gbdd::Domains::intersect_with Domain  d  )  const
 

Intersect domains with another domain.

All domains are intersected with d

Parameters:
d Domain to insersect with

bool gbdd::Domains::is_disjoint const Domains ds2  )  const
 

Check if other domains are disjoint.

Parameters:
ds2 Other domains
Returns:
Whether all variables in this set of domains are not in any domain from ds2

bool gbdd::Domains::is_some_infinite  )  const
 

Check if some domain is infinite.

Returns:
Whether some domain is infinite

const Domain & gbdd::Domains::operator[] unsigned int  idx  )  const
 

Get one of the domains.

Parameters:
idx Index of domain to get
Returns:
The domain on position idx

Domain & gbdd::Domains::operator[] unsigned int  idx  ) 
 

Get one of the domains.

Parameters:
idx Index of domain to get
Returns:
The domain on position idx

unsigned int gbdd::Domains::size  )  const [inline]
 

Get size of domains.

Returns:
The number of elements in this vector of domains

Domains gbdd::Domains::sup const Domains ds1,
const Domains ds2
[static]
 

Get largest domain for each component.

Parameters:
ds1 First vector of domains
ds2 Second vector of domains
Returns:
Domains with sup(d1, d2) for each domain d1 in ds1 and corresponding d2 in ds2

template<class _UnaryFunction>
Domains gbdd::Domains::transform _UnaryFunction  op  )  const
 

transform elements of domains

Parameters:
op Unary operation
Returns:
The domains such that each variable v is substituted by op(v)

Domain gbdd::Domains::union_all  )  const
 

Get union of all domains.

Returns:
The union of all domains


Friends And Related Function Documentation

Domains operator * Domains  ds1,
Domains  ds2
[friend]
 

Cross product of domains.

Parameters:
ds1 First sequence of domains
ds2 Second sequence of domains
Returns:
A sequence of domains ds1 concatenated by ds2

bool operator== Domains  ds1,
Domains  ds2
[friend]
 

Equality.

Parameters:
ds1 First vector of domains
ds2 First vector of domains
Returns:
Whether ds1 and ds2 are equal.


The documentation for this class was generated from the following files:
Generated on Mon Aug 1 04:04:44 2005 for gbdd by doxygen 1.3.6