Browse Source

fixed bug in sylvan

Former-commit-id: 0fd69e20a1
main
dehnert 9 years ago
parent
commit
4a772fe48d
  1. 2
      resources/3rdparty/sylvan/src/sylvan_mtbdd.c
  2. 1
      src/builder/DdPrismModelBuilder.cpp
  3. 8
      src/models/symbolic/Model.h
  4. 2
      src/solver/Z3SmtSolver.cpp
  5. 4
      src/storage/dd/Add.h
  6. 2
      src/storage/dd/Bdd.h
  7. 1
      src/storage/dd/Odd.h
  8. 2
      src/storage/dd/cudd/InternalCuddAdd.h
  9. 2
      src/storage/dd/cudd/InternalCuddBdd.h
  10. 2
      src/storage/dd/sylvan/InternalSylvanDdManager.cpp

2
resources/3rdparty/sylvan/src/sylvan_mtbdd.c

@ -90,7 +90,7 @@ VOID_TASK_IMPL_1(mtbdd_gc_mark_rec, MDD, mtbdd)
if (mtbdd == mtbdd_true) return; if (mtbdd == mtbdd_true) return;
if (mtbdd == mtbdd_false) return; if (mtbdd == mtbdd_false) return;
if (llmsset_mark(nodes, mtbdd)) {
if (llmsset_mark(nodes, mtbdd&0x000000ffffffffff)) {
mtbddnode_t n = GETNODE(mtbdd); mtbddnode_t n = GETNODE(mtbdd);
if (!mtbddnode_isleaf(n)) { if (!mtbddnode_isleaf(n)) {
SPAWN(mtbdd_gc_mark_rec, mtbddnode_getlow(n)); SPAWN(mtbdd_gc_mark_rec, mtbddnode_getlow(n));

1
src/builder/DdPrismModelBuilder.cpp

@ -347,7 +347,6 @@ namespace storm {
std::set<storm::expressions::Variable> assignedGlobalVariables; std::set<storm::expressions::Variable> assignedGlobalVariables;
std::set_intersection(assignedVariables.begin(), assignedVariables.end(), generationInfo.allGlobalVariables.begin(), generationInfo.allGlobalVariables.end(), std::inserter(assignedGlobalVariables, assignedGlobalVariables.begin())); std::set_intersection(assignedVariables.begin(), assignedVariables.end(), generationInfo.allGlobalVariables.begin(), generationInfo.allGlobalVariables.end(), std::inserter(assignedGlobalVariables, assignedGlobalVariables.begin()));
int index = 0;
// All unassigned boolean variables need to keep their value. // All unassigned boolean variables need to keep their value.
for (storm::prism::BooleanVariable const& booleanVariable : module.getBooleanVariables()) { for (storm::prism::BooleanVariable const& booleanVariable : module.getBooleanVariables()) {
if (assignedVariables.find(booleanVariable.getExpressionVariable()) == assignedVariables.end()) { if (assignedVariables.find(booleanVariable.getExpressionVariable()) == assignedVariables.end()) {

8
src/models/symbolic/Model.h

@ -49,12 +49,12 @@ namespace storm {
static const storm::dd::DdType DdType = Type; static const storm::dd::DdType DdType = Type;
typedef StandardRewardModel<Type, ValueType> RewardModelType; typedef StandardRewardModel<Type, ValueType> RewardModelType;
Model(Model<Type> const& other) = default;
Model& operator=(Model<Type> const& other) = default;
Model(Model<Type, ValueType> const& other) = default;
Model& operator=(Model<Type, ValueType> const& other) = default;
#ifndef WINDOWS #ifndef WINDOWS
Model(Model<Type>&& other) = default;
Model& operator=(Model<Type>&& other) = default;
Model(Model<Type, ValueType>&& other) = default;
Model& operator=(Model<Type, ValueType>&& other) = default;
#endif #endif
/*! /*!

2
src/solver/Z3SmtSolver.cpp

@ -323,7 +323,7 @@ namespace storm {
std::vector<storm::expressions::Expression> Z3SmtSolver::getUnsatAssumptions() { std::vector<storm::expressions::Expression> Z3SmtSolver::getUnsatAssumptions() {
#ifdef STORM_HAVE_Z3 #ifdef STORM_HAVE_Z3
STORM_LOG_THROW(lastResult == SmtSolver::CheckResult::Unsat, storm::exceptions::InvalidStateException, "Unable to generate unsatisfiable core of assumptions, because the last check did not determine the formulas to be unsatisfiable.")
STORM_LOG_THROW(lastResult == SmtSolver::CheckResult::Unsat, storm::exceptions::InvalidStateException, "Unable to generate unsatisfiable core of assumptions, because the last check did not determine the formulas to be unsatisfiable.");
STORM_LOG_THROW(lastCheckAssumptions, storm::exceptions::InvalidStateException, "Unable to generate unsatisfiable core of assumptions, because the last check did not involve assumptions."); STORM_LOG_THROW(lastCheckAssumptions, storm::exceptions::InvalidStateException, "Unable to generate unsatisfiable core of assumptions, because the last check did not involve assumptions.");
z3::expr_vector z3UnsatAssumptions = this->solver->unsat_core(); z3::expr_vector z3UnsatAssumptions = this->solver->unsat_core();

4
src/storage/dd/Add.h

@ -2,6 +2,7 @@
#define STORM_STORAGE_DD_ADD_H_ #define STORM_STORAGE_DD_ADD_H_
#include <map> #include <map>
#include <functional>
#include "src/storage/dd/Dd.h" #include "src/storage/dd/Dd.h"
#include "src/storage/dd/DdType.h" #include "src/storage/dd/DdType.h"
@ -584,7 +585,8 @@ namespace storm {
*/ */
AddIterator<LibraryType, ValueType> end(bool enumerateDontCareMetaVariables = true) const; AddIterator<LibraryType, ValueType> end(bool enumerateDontCareMetaVariables = true) const;
friend std::ostream & operator<<(std::ostream& out, const Add<LibraryType, ValueType>& add);
template<DdType LibraryTypePrime, typename ValueTypePrime>
friend std::ostream & operator<<(std::ostream& out, Add<LibraryTypePrime, ValueTypePrime> const& add);
/*! /*!
* Converts the ADD to a BDD by mapping all values unequal to zero to 1. This effectively does the same as * Converts the ADD to a BDD by mapping all values unequal to zero to 1. This effectively does the same as

2
src/storage/dd/Bdd.h

@ -1,6 +1,8 @@
#ifndef STORM_STORAGE_DD_BDD_H_ #ifndef STORM_STORAGE_DD_BDD_H_
#define STORM_STORAGE_DD_BDD_H_ #define STORM_STORAGE_DD_BDD_H_
#include <functional>
#include "src/storage/dd/Dd.h" #include "src/storage/dd/Dd.h"
#include "src/storage/dd/DdType.h" #include "src/storage/dd/DdType.h"

1
src/storage/dd/Odd.h

@ -3,6 +3,7 @@
#include <vector> #include <vector>
#include <map> #include <map>
#include <memory>
namespace storm { namespace storm {
namespace dd { namespace dd {

2
src/storage/dd/cudd/InternalCuddAdd.h

@ -3,6 +3,8 @@
#include <set> #include <set>
#include <unordered_map> #include <unordered_map>
#include <functional>
#include <memory>
#include "src/storage/dd/DdType.h" #include "src/storage/dd/DdType.h"
#include "src/storage/dd/InternalAdd.h" #include "src/storage/dd/InternalAdd.h"

2
src/storage/dd/cudd/InternalCuddBdd.h

@ -3,6 +3,8 @@
#include <set> #include <set>
#include <unordered_map> #include <unordered_map>
#include <functional>
#include <memory>
#include "src/storage/dd/DdType.h" #include "src/storage/dd/DdType.h"
#include "src/storage/dd/InternalBdd.h" #include "src/storage/dd/InternalBdd.h"

2
src/storage/dd/sylvan/InternalSylvanDdManager.cpp

@ -19,7 +19,7 @@ namespace storm {
lace_init(0, 1000000); lace_init(0, 1000000);
lace_startup(0, 0, 0); lace_startup(0, 0, 0);
sylvan::Sylvan::initPackage(1ull << 16, 1ull << 32, 1ull << 16, 1ull << 32);
sylvan::Sylvan::initPackage(1ull << 16, 1ull << 28, 1ul << 16, 1ull << 25);
sylvan::Sylvan::initBdd(1); sylvan::Sylvan::initBdd(1);
sylvan::Sylvan::initMtbdd(); sylvan::Sylvan::initMtbdd();
} }

Loading…
Cancel
Save