28 template<DdType LibraryType, typename ValueType>
53 template<typename ValueType>
54 InternalAdd<DdType::CUDD, ValueType> getAddOne() const;
68 InternalBdd<DdType::CUDD> getBddEncodingLessOrEqualThan(uint64_t bound, InternalBdd<DdType::CUDD> const& cube, uint64_t numberOfDdVariables) const;
75 template<typename ValueType>
76 InternalAdd<DdType::CUDD, ValueType> getAddZero() const;
83 template<typename ValueType>
84 InternalAdd<DdType::CUDD, ValueType> getAddUndefined() const;
91 template<typename ValueType>
92 InternalAdd<DdType::CUDD, ValueType> getConstant(ValueType const& value) const;
101 std::vector<InternalBdd<DdType::CUDD>> createDdVariables(uint64_t numberOfLayers, boost::optional<uint_fast64_t> const& position = boost::none);
109 bool supportsOrderedInsertion() const;
116 void allowDynamicReordering(bool value);
123 bool isDynamicReorderingAllowed() const;
128 void triggerReordering();
133 void debugCheck() const;
142 void execute(std::function<void()> const& f) const;
149 uint_fast64_t getNumberOfDdVariables() const;
156 cudd::Cudd& getCuddManager();
163 cudd::Cudd const& getCuddManager() const;
167 DdNodePtr getBddEncodingLessOrEqualThanRec(uint64_t minimalValue, uint64_t maximalValue, uint64_t bound, DdNodePtr cube,
168 uint64_t remainingDdVariables) const;
171 cudd::Cudd cuddManager;
174 Cudd_ReorderingType reorderingTechnique;
177 uint_fast64_t numberOfDdVariables;