#include <structure-relation.h>
Inheritance diagram for gbdd::StructureRelation:

Public Member Functions | |
| StructureRelation () | |
| Constructor for uninitialized value. | |
| StructureRelation (const StructureRelation &r) | |
| Copy constructor. | |
| StructureRelation (const Domains &ds, const StructureConstraint &bb) | |
| Create new relation from domains and a structure object. | |
| StructureRelation (const Domains &ds, StructureConstraint *bb) | |
| Create new relation from domains and a structure object. | |
| StructureRelation (const Domains &ds, const StructureRelation &r) | |
| Changes the domain of a relation with automatic renaming. | |
| StructureRelation & | operator= (const StructureRelation &r) |
| Assignment. | |
| virtual | ~StructureRelation () |
| Destructor. | |
| const Domains & | get_domains () const |
| Get domains for relation. | |
| const Domain & | get_domain (unsigned int domain_index) const |
| Get domain with specified index. | |
| unsigned int | arity () const |
| Get arity of relation. | |
| const StructureConstraint & | get_bdd_based () const |
| Get structure object. | |
| StructureRelation | extend_domain (unsigned int domain_index, const Domain &to, bool new_vars_value=false) const |
| Extends domain with new variables with some value. | |
| StructureRelation | reduce_domain (unsigned int domain_index, const Domain &to) const |
| Reduces domain by projecting remaining variables. | |
| StructureRelation | compose (unsigned int domain_index, const StructureRelation &compose_rel) const |
| Composes relation with another relation. | |
| StructureRelation | product (const StructureRelation &r2, bool(*fn)(bool v1, bool v2)) const |
| Product. | |
| bool | operator== (const StructureRelation &rel2) const |
| Equality. | |
| StructureRelation & | operator &= (const StructureRelation &rel2) |
| AND product. | |
| StructureRelation & | operator|= (const StructureRelation &rel2) |
| OR product. | |
| StructureRelation & | operator-= (const StructureRelation &rel2) |
| MINUS product. | |
| StructureRelation | operator! () const |
| Negation. | |
| StructureSet | project_on (unsigned int domain_index) const |
| StructureRelation | project (unsigned int domain_index) const |
| Projects away one component. | |
| StructureRelation | restrict (unsigned int domain_index, const StructureSet &to) const |
| Restricts relation. | |
Static Public Member Functions | |
| StructureRelation | cross_product (const Domains &domains, const vector< StructureSet > &sets) |
| Obtain new relation using cross product of sets. | |
| StructureRelation | iff (const StructureRelation &rel1, const StructureRelation &rel2) |
| IFF product. | |
| StructureRelation | implies (const StructureRelation &rel1, const StructureRelation &rel2) |
| IMPLIES product. | |
Protected Member Functions | |
| void | reset (const Domains &ds, const StructureConstraint &bb) |
Friends | |
| StructureRelation | operator & (const StructureRelation &rel1, const StructureRelation &rel2) |
| AND product. | |
| StructureRelation | operator| (const StructureRelation &rel1, const StructureRelation &rel2) |
| OR product. | |
| StructureRelation | operator- (const StructureRelation &rel1, const StructureRelation &rel2) |
| MINUS product. | |
A structure relation is a typed gbdd::StructureConstraint object. Any gbdd::StructureConstraint object is based on representing a structure which is based on variables. By typing, we associate with the object gbdd::Domains, a vector of gbdd::Domain, i.e. a set of variables. The gbdd::StructureConstraint object is interpreted with the domains as a relation of arity the number of domains.
This is an implementation class, inheriting classes are specializations to this class, adding only specialized operations implemented with existing methods in this class.
|
|
Constructor for uninitialized value.
|
|
|
Copy constructor.
|
|
||||||||||||
|
Create new relation from domains and a structure object.
|
|
||||||||||||
|
Create new relation from domains and a structure object.
|
|
||||||||||||
|
Changes the domain of a relation with automatic renaming.
|
|
|
Destructor.
|
|
|
Get arity of relation.
|
|
||||||||||||
|
Composes relation with another relation.
|
|
||||||||||||
|
Obtain new relation using cross product of sets. The domain of set in contents must have the same number of variables as the corresponding domain in domains.
|
|
||||||||||||||||
|
Extends domain with new variables with some value. The resulting relation will have to as the new domain at index domain_index, and will contain a structure object where all the new variables are constrained to new_vars_value It is required the first variables in to is the same as in the current domain.
Reimplemented in gbdd::SpecializedRelation< StructureT, RelationT, SetT >, and gbdd::SpecializedRelation< Bdd, BddRelation, BddSet >. |
|
|
Get structure object.
Reimplemented in gbdd::SpecializedRelation< StructureT, RelationT, SetT >, and gbdd::SpecializedRelation< Bdd, BddRelation, BddSet >. |
|
|
Get domain with specified index. Domain indices are counted from 0
|
|
|
Get domains for relation.
|
|
||||||||||||
|
IFF product.
|
|
||||||||||||
|
IMPLIES product.
|
|
|
AND product. Assigns this relation to the AND product of this relation and rel2
|
|
|
Negation. The universe in the negation is considered to be {0..2^n-1} for each domain
Reimplemented in gbdd::SpecializedRelation< StructureT, RelationT, SetT >, gbdd::StructureBinaryView< Bdd, BddRelation, BddSet >, gbdd::SpecializedRelation< Bdd, BddRelation, BddSet >, gbdd::StructureSetView< Bdd, BddRelation, BddSet >, and gbdd::StructureSetView< StructureConstraint, StructureRelation, StructureSet >. |
|
|
MINUS product. Assigns this relation to the MINUS product of this relation and rel2
|
|
|
Assignment.
|
|
|
Equality. Checks equality of two relations. This may involve renaming of one of the relations
|
|
|
OR product. Assigns this relation to the OR product of this relation and rel2
|
|
||||||||||||
|
Product. General product function
|
|
|
Projects away one component.
Reimplemented in gbdd::SpecializedRelation< StructureT, RelationT, SetT >, and gbdd::SpecializedRelation< Bdd, BddRelation, BddSet >. |
|
|
Reimplemented in gbdd::SpecializedRelation< StructureT, RelationT, SetT >, and gbdd::SpecializedRelation< Bdd, BddRelation, BddSet >. |
|
||||||||||||
|
Reduces domain by projecting remaining variables.
Reimplemented in gbdd::SpecializedRelation< StructureT, RelationT, SetT >, and gbdd::SpecializedRelation< Bdd, BddRelation, BddSet >. |
|
||||||||||||
|
|
|
||||||||||||
|
Restricts relation.
|
|
||||||||||||
|
AND product.
|
|
||||||||||||
|
MINUS product.
|
|
||||||||||||
|
OR product.
|
1.3.6