29 template<DdType LibraryType, typename ValueType>
54 template<typename ValueType>
55 InternalAdd<DdType::CUDD, ValueType> getAddOne() const;
69 InternalBdd<DdType::CUDD> getBddEncodingLessOrEqualThan(uint64_t bound, InternalBdd<DdType::CUDD> const& cube, uint64_t numberOfDdVariables) const;
76 template<typename ValueType>
77 InternalAdd<DdType::CUDD, ValueType> getAddZero() const;
84 template<typename ValueType>
85 InternalAdd<DdType::CUDD, ValueType> getAddUndefined() const;
92 template<typename ValueType>
93 InternalAdd<DdType::CUDD, ValueType> getConstant(ValueType const& value) const;
102 std::vector<InternalBdd<DdType::CUDD>> createDdVariables(uint64_t numberOfLayers, boost::optional<uint_fast64_t> const& position = boost::none);
110 bool supportsOrderedInsertion() const;
117 void allowDynamicReordering(bool value);
124 bool isDynamicReorderingAllowed() const;
129 void triggerReordering();
134 void debugCheck() const;
143 void execute(std::function<void()> const& f) const;
150 uint_fast64_t getNumberOfDdVariables() const;
152#ifdef STORM_HAVE_CUDD
158 cudd::Cudd& getCuddManager();
165 cudd::Cudd const& getCuddManager() const;
169#ifdef STORM_HAVE_CUDD
171 DdNodePtr getBddEncodingLessOrEqualThanRec(uint64_t minimalValue, uint64_t maximalValue, uint64_t bound, DdNodePtr cube,
172 uint64_t remainingDdVariables) const;
175 cudd::Cudd cuddManager;
178 Cudd_ReorderingType reorderingTechnique;
181 uint_fast64_t numberOfDdVariables;