6#include <unordered_map>
25#ifdef STORM_HAVE_SYLVAN
26 using Bdd = sylvan::Bdd;
36 std::shared_ptr<storm::dft::storage::DFT<ValueType>>
getDFT()
const;
46 std::shared_ptr<storm::dft::transformations::SftToBddTransformator<ValueType>>
getTransformator()
const;
56#ifdef STORM_HAVE_SYLVAN
60 "This version of Storm was compiled without support for Sylvan. Yet, a method was called that requires this support. Please choose a "
61 "version of Storm with Sylvan support.");
85#ifdef STORM_HAVE_SYLVAN
89 "This version of Storm was compiled without support for Sylvan. Yet, a method was called that requires this support. Please choose a "
90 "version of Storm with Sylvan support.");
94#ifdef STORM_HAVE_SYLVAN
118#ifdef STORM_HAVE_SYLVAN
122 "This version of Storm was compiled without support for Sylvan. Yet, a method was called that requires this support. Please choose a "
123 "version of Storm with Sylvan support.");
127#ifdef STORM_HAVE_SYLVAN
220 std::vector<ValueType>
getCIFsAtTimepoints(std::string
const &beName, std::vector<ValueType>
const &timepoints,
size_t chunksize = 0);
232 std::vector<std::vector<ValueType>>
getAllCIFsAtTimepoints(std::vector<ValueType>
const &timepoints,
size_t chunksize = 0);
264 std::vector<ValueType>
getDIFsAtTimepoints(std::string
const &beName, std::vector<ValueType>
const &timepoints,
size_t chunksize = 0);
276 std::vector<std::vector<ValueType>>
getAllDIFsAtTimepoints(std::vector<ValueType>
const &timepoints,
size_t chunksize = 0);
308 std::vector<ValueType>
getRAWsAtTimepoints(std::string
const &beName, std::vector<ValueType>
const &timepoints,
size_t chunksize = 0);
320 std::vector<std::vector<ValueType>>
getAllRAWsAtTimepoints(std::vector<ValueType>
const &timepoints,
size_t chunksize = 0);
352 std::vector<ValueType>
getRRWsAtTimepoints(std::string
const &beName, std::vector<ValueType>
const &timepoints,
size_t chunksize = 0);
364 std::vector<std::vector<ValueType>>
getAllRRWsAtTimepoints(std::vector<ValueType>
const &timepoints,
size_t chunksize = 0);
367#ifdef STORM_HAVE_SYLVAN
382 void recursiveMCS(Bdd
const bdd, std::vector<uint32_t> &buffer, std::vector<std::vector<uint32_t>> &minimalCutSets)
const;
384 template<
typename FuncType>
385 void chunkCalculationTemplate(std::vector<ValueType>
const &timepoints,
size_t chunksize, FuncType func)
const;
387 template<
typename FuncType>
388 ValueType getImportanceMeasureAtTimebound(std::string
const &beName,
ValueType timebound, FuncType func);
390 template<
typename FuncType>
391 std::vector<ValueType> getAllImportanceMeasuresAtTimebound(
ValueType timebound, FuncType func);
393 template<
typename FuncType>
394 std::vector<ValueType> getImportanceMeasuresAtTimepoints(std::string
const &beName, std::vector<ValueType>
const &timepoints,
size_t chunksize,
397 template<
typename FuncType>
398 std::vector<std::vector<ValueType>> getAllImportanceMeasuresAtTimepoints(std::vector<ValueType>
const &timepoints,
size_t chunksize, FuncType func);
404 Bdd getTopLevelElementBdd();
406 std::shared_ptr<storm::dft::transformations::SftToBddTransformator<ValueType>> transformator;
std::vector< ValueType > getAllRRWsAtTimebound(ValueType timebound)
ValueType getRAWAtTimebound(std::string const &beName, ValueType timebound)
std::vector< std::vector< ValueType > > getAllRAWsAtTimepoints(std::vector< ValueType > const &timepoints, size_t chunksize=0)
ValueType getCIFAtTimebound(std::string const &beName, ValueType timebound)
std::vector< std::vector< ValueType > > getAllBirnbaumFactorsAtTimepoints(std::vector< ValueType > const &timepoints, size_t chunksize=0)
std::vector< ValueType > getAllDIFsAtTimebound(ValueType timebound)
std::vector< ValueType > getAllRAWsAtTimebound(ValueType timebound)
std::vector< ValueType > getRRWsAtTimepoints(std::string const &beName, std::vector< ValueType > const &timepoints, size_t chunksize=0)
std::shared_ptr< storm::dft::storage::DFT< ValueType > > getDFT() const
std::vector< std::vector< ValueType > > getAllDIFsAtTimepoints(std::vector< ValueType > const &timepoints, size_t chunksize=0)
ValueType getRRWAtTimebound(std::string const &beName, ValueType timebound)
std::vector< std::vector< ValueType > > getAllRRWsAtTimepoints(std::vector< ValueType > const &timepoints, size_t chunksize=0)
std::vector< ValueType > getAllBirnbaumFactorsAtTimebound(ValueType timebound)
std::vector< ValueType > getRAWsAtTimepoints(std::string const &beName, std::vector< ValueType > const &timepoints, size_t chunksize=0)
ValueType getBirnbaumFactorAtTimebound(std::string const &beName, ValueType timebound)
std::vector< ValueType > getProbabilitiesAtTimepoints(std::vector< ValueType > const &timepoints, size_t const chunksize=0)
std::vector< std::vector< ValueType > > getAllCIFsAtTimepoints(std::vector< ValueType > const &timepoints, size_t chunksize=0)
std::vector< ValueType > getBirnbaumFactorsAtTimepoints(std::string const &beName, std::vector< ValueType > const &timepoints, size_t chunksize=0)
std::shared_ptr< storm::dft::storage::SylvanBddManager > getSylvanBddManager() const
std::shared_ptr< storm::dft::transformations::SftToBddTransformator< ValueType > > getTransformator() const
std::vector< std::vector< uint32_t > > getMinimalCutSetsAsIndices()
std::vector< ValueType > getCIFsAtTimepoints(std::string const &beName, std::vector< ValueType > const &timepoints, size_t chunksize=0)
void exportBddToDot(std::string const &filename)
Exports the Bdd that represents the top level event to a file in the dot format.
std::vector< std::vector< std::string > > getMinimalCutSets()
std::vector< ValueType > getAllCIFsAtTimebound(ValueType timebound)
ValueType getDIFAtTimebound(std::string const &beName, ValueType timebound)
SFTBDDChecker(std::shared_ptr< storm::dft::storage::DFT< ValueType > > dft, std::shared_ptr< storm::dft::storage::SylvanBddManager > sylvanBddManager)
std::vector< ValueType > getDIFsAtTimepoints(std::string const &beName, std::vector< ValueType > const &timepoints, size_t chunksize=0)
ValueType getProbabilityAtTimebound(ValueType timebound)
Represents a Dynamic Fault Tree.
#define STORM_LOG_THROW(cond, exception, message)
SFTBDDChecker::ValueType ValueType