27 changed files with 365 additions and 142 deletions
-
2resources/3rdparty/CMakeLists.txt
-
2resources/3rdparty/sylvan/src/sylvan_obj_bdd_storm.hpp
-
1resources/3rdparty/sylvan/src/sylvan_obj_mtbdd_storm.hpp
-
16resources/3rdparty/sylvan/src/sylvan_obj_storm.cpp
-
10src/storm-cli-utilities/model-handling.h
-
10src/storm/api/export.h
-
13src/storm/models/symbolic/Model.cpp
-
2src/storm/models/symbolic/Model.h
-
11src/storm/settings/modules/IOSettings.cpp
-
17src/storm/settings/modules/IOSettings.h
-
5src/storm/storage/dd/Add.cpp
-
2src/storm/storage/dd/Add.h
-
5src/storm/storage/dd/Bdd.cpp
-
2src/storm/storage/dd/Bdd.h
-
7src/storm/storage/dd/Dd.h
-
5src/storm/storage/dd/Odd.cpp
-
7src/storm/storage/dd/Odd.h
-
13src/storm/storage/dd/cudd/InternalCuddAdd.cpp
-
6src/storm/storage/dd/cudd/InternalCuddAdd.h
-
5src/storm/storage/dd/cudd/InternalCuddBdd.cpp
-
7src/storm/storage/dd/cudd/InternalCuddBdd.h
-
10src/storm/storage/dd/sylvan/InternalSylvanAdd.cpp
-
9src/storm/storage/dd/sylvan/InternalSylvanAdd.h
-
8src/storm/storage/dd/sylvan/InternalSylvanBdd.cpp
-
7src/storm/storage/dd/sylvan/InternalSylvanBdd.h
-
35src/storm/utility/DDEncodingExporter.cpp
-
20src/storm/utility/DDEncodingExporter.h
@ -0,0 +1,35 @@ |
|||
#include "storm/utility/DDEncodingExporter.h"
|
|||
#include "storm/utility/file.h"
|
|||
|
|||
|
|||
namespace storm { |
|||
namespace exporter { |
|||
|
|||
|
|||
template<storm::dd::DdType Type, typename ValueType> |
|||
void explicitExportSymbolicModel(std::string const& filename, std::shared_ptr <storm::models::symbolic::Model<Type, ValueType>> symbolicModel) { |
|||
std::ofstream filestream; |
|||
storm::utility::openFile(filename,filestream); |
|||
filestream << "// storm exported dd" << std::endl; |
|||
filestream << "%transitions" << std::endl; |
|||
storm::utility::closeFile(filestream); |
|||
symbolicModel->getTransitionMatrix().exportToText(filename); |
|||
storm::utility::openFile(filename,filestream,true,true); |
|||
filestream << "%initial" << std::endl; |
|||
storm::utility::closeFile(filestream); |
|||
symbolicModel->getInitialStates().exportToText(filename); |
|||
for(auto const& label : symbolicModel->getLabels()) { |
|||
storm::utility::openFile(filename,filestream,true,true); |
|||
filestream << std::endl << "%label " << label << std::endl; |
|||
storm::utility::closeFile(filestream); |
|||
symbolicModel->getStates(label).exportToText(filename); |
|||
} |
|||
} |
|||
|
|||
template void explicitExportSymbolicModel<storm::dd::DdType::CUDD,double>(std::string const&, std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::CUDD, double>> sparseModel); |
|||
template void explicitExportSymbolicModel<storm::dd::DdType::Sylvan,double>(std::string const&, std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::Sylvan, double>> sparseModel); |
|||
|
|||
template void explicitExportSymbolicModel<storm::dd::DdType::Sylvan, storm::RationalNumber>(std::string const&, std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::Sylvan, storm::RationalNumber>> sparseModel); |
|||
template void explicitExportSymbolicModel<storm::dd::DdType::Sylvan, storm::RationalFunction>(std::string const&, std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::Sylvan, storm::RationalFunction>> sparseModel); |
|||
} |
|||
} |
@ -0,0 +1,20 @@ |
|||
#pragma once |
|||
|
|||
#include "storm/models/symbolic/Model.h" |
|||
|
|||
namespace storm { |
|||
namespace exporter { |
|||
|
|||
/*! |
|||
* Exports a sparse model into the explicit drdd format. |
|||
* |
|||
* @param filename File path |
|||
* @param symbolicModel Model to export |
|||
*/ |
|||
template<storm::dd::DdType Type,typename ValueType> |
|||
void explicitExportSymbolicModel(std::string const& filename, std::shared_ptr<storm::models::symbolic::Model<Type,ValueType>> symbolicModel); |
|||
|
|||
|
|||
|
|||
} |
|||
} |
Write
Preview
Loading…
Cancel
Save
Reference in new issue