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