PolyBoRi
VariableFactory.h
Go to the documentation of this file.
1 // -*- c++ -*-
2 //*****************************************************************************
15 //*****************************************************************************
16 
17 #ifndef polybori_factories_VariableFactory_h_
18 #define polybori_factories_VariableFactory_h_
19 
20 // include basic definitions
21 #include <polybori/pbori_defs.h>
23 #include <polybori/BooleVariable.h>
24 
26 
34  public CFactoryBase {
36  typedef VariableFactory self;
37 
39  typedef CFactoryBase base;
40 
41 public:
44 
47 
49  VariableFactory(const parent_type& ring): base(ring) {}
50 
52  VariableFactory(const self& rhs): base(rhs) {}
53 
56 
58  value_type operator()() const {
59  return value_type(0, parent());
60  }
61 
63  value_type operator()(const value_type& rhs) const {
64  return rhs;
65  }
66 
68  value_type operator()(const value_type::ring_type& ring) const {
69  return value_type(0, ring);
70  }
71 
74  const value_type::ring_type& ring) const {
75  return value_type(idx, ring);
76  }
78  value_type operator()(value_type::idx_type idx) const {
79  return value_type(idx, parent());
80  }
81 };
82 
84 
85 #endif /* polybori_factories_VariableFactory_h_ */
~VariableFactory()
Destructor.
Definition: VariableFactory.h:55
#define END_NAMESPACE_PBORI
Finish project's namespace.
Definition: pbori_defs.h:77
#define BEGIN_NAMESPACE_PBORI
Start project's namespace.
Definition: pbori_defs.h:74
This base class VariableFactory is used for currying variable constructors with a BoolePolyRing...
Definition: VariableFactory.h:33
This class reinterprets decicion diagram managers as Boolean polynomial rings, adds an ordering and v...
Definition: BoolePolyRing.h:40
BooleVariable value_type
We construct element of this type.
Definition: VariableFactory.h:46
value_type operator()(value_type::idx_type idx) const
Construct i-th variable.
Definition: VariableFactory.h:78
value_type operator()(const value_type::ring_type &ring) const
Get first variable of explicit ring.
Definition: VariableFactory.h:68
This base class CFactoryBase is used for currying other constructors with a BoolePolyRing.
Definition: CFactoryBase.h:35
value_type operator()() const
Get first variable of the ring.
Definition: VariableFactory.h:58
value_type operator()(value_type::idx_type idx, const value_type::ring_type &ring) const
Construct i-th variable for explit ring.
Definition: VariableFactory.h:73
int idx_type
Type for indices.
Definition: pbori_defs.h:228
value_type operator()(const value_type &rhs) const
Indirect copy constructor.
Definition: VariableFactory.h:63
VariableFactory(const self &rhs)
Copy constructor.
Definition: VariableFactory.h:52
VariableFactory(const parent_type &ring)
Construct from given ring.
Definition: VariableFactory.h:49
This class is just a wrapper for using variables from cudd's decicion diagram.
Definition: BooleVariable.h:39
base::parent_type parent_type
Type of parent.
Definition: VariableFactory.h:43