PolyBoRi
CDDOperations.h
Go to the documentation of this file.
1 // -*- c++ -*-
2 //*****************************************************************************
13 //*****************************************************************************
14 
15 #ifndef polybori_diagram_CDDOperations_h_
16 #define polybori_diagram_CDDOperations_h_
17 
18 // include basic definitions
19 #include <polybori/pbori_defs.h>
20 
21 // Get Cudd definitions
22 #include <polybori/cudd/cudd.h>
23 
26 #include <polybori/BoolePolyRing.h>
27 
29 
32 template <class DDType, class MonomType>
33 class CDDOperations {
34 public:
35 
36  // This is only a work-around, since a monomial should not be generated from
37  // a dd.
38  MonomType getMonomial(const DDType& dd) const {
39  return MonomType(dd);
40  }
41 
42  MonomType usedVariables(const DDType& dd){
43 
44  // get type definitions from DDType
45  typedef typename DDType::idx_type idx_type;
46  typedef typename DDType::navigator navigator;
47  typedef MonomType monom_type;
48 
50  return cached_used_vars(cache_mgr, dd.navigation(),
51  MonomType(cache_mgr.one()));
52 }
53 
54 };
55 
56 
57 
59 
60 #endif
#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 template class forms the base for CCommutativeCacheManagement and CacheManager. It is an interface defining find and insert on decision diagram cache.
Definition: CCacheManagement.h:455
This class reinterprets decicion diagram managers as Boolean polynomial rings, adds an ordering and v...
Definition: BoolePolyRing.h:40
MonomType usedVariables(const DDType &dd)
Definition: CDDOperations.h:42
MonomType getMonomial(const DDType &dd) const
Definition: CDDOperations.h:38
polybori::CTypes::idx_type idx_type
Definition: groebner_defs.h:44
MonomType cached_used_vars(const CacheType &cache, NaviType navi, MonomType init)
Definition: pbori_routines_misc.h:751