28 template<DdType LibraryType, typename ValueType>
53 template<typename ValueType>
68 InternalBdd<DdType::Sylvan> getBddEncodingLessOrEqualThan(uint64_t bound, InternalBdd<DdType::Sylvan> const& cube, uint64_t numberOfDdVariables) const;
75 template<typename ValueType>
83 template<typename ValueType>
84 InternalAdd<DdType::Sylvan, ValueType> getAddUndefined() const;
91 template<typename ValueType>
92 InternalAdd<DdType::Sylvan, ValueType> getConstant(ValueType const& value) const;
101 std::vector<InternalBdd<DdType::Sylvan>> 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;
143 void execute(std::function<void()> const& f) const;
150 uint_fast64_t getNumberOfDdVariables() const;
154 BDD getBddEncodingLessOrEqualThanRec(uint64_t minimalValue, uint64_t maximalValue, uint64_t bound, BDD cube, uint64_t remainingDdVariables) const;
159 static uint_fast64_t numberOfInstances;
163 static bool suspended;
167 static uint_fast64_t nextFreeVariableIndex;