1 #ifndef __DIADES__SDMDL__BDDMODEL__HH 2 #define __DIADES__SDMDL__BDDMODEL__HH 37 static string typeName() {
return "Diades::Sdmdl::BddModel"; }
75 const set<Event> & observable,
76 const set<Event> & faults);
106 require(Exception,index < _bddComponents.size(),
107 Diades::Utils::Msg(
"BddComponent::getComponent, out-of-range index '%1% >= %2%'") % index % _bddComponents.size());
108 return _bddComponents[index];
121 require(Exception,index < _bddComponents.size(),
122 Diades::Utils::Msg(
"BddComponent::getComponent, out-of-range index '%1% >= %2%'") % index % _bddComponents.size());
123 return _bddComponents[index];
147 return _setOfEvents[0].get();
170 const SlStates &
trigger(
const SlStates & sources,
const SlEvents &
events)
const;
183 const SlStates &
synchronousTrigger(
const SlStates & sources,
const SlEvents & events);
234 void setFaults(
const set<Event> & faults);
257 const SlStates &
trigger(
const SlStates & sources,
258 size_t eventIndex)
const;
vector< const Component * > ComponentVector
const VariableVector & stateVariables() const
FormulaFactory & formulaFactory()
Diades::Automata::SynchronisationRules::ComponentVector ComponentVector
const SlTransitions & transitions() const
BddComponent::SlStates SlStates
BddModel(const SynchronisationRules &model, const set< Event > &observable, const set< Event > &faults)
vector< BddComponent > BddComponentVector
void setObservables(const set< Event > &observable)
BddComponent::SlEvents SlEvents
const SlEvents & events() const
const SlStates & trigger(const SlStates &sources, const SlEvents &events) const
FormulaVector _transitions
vector< vector< bool > > _booleanSupports
const SynchronisationRules & _model
Formula::FormulaVector FormulaVector
Diades::Utils::Exception< BddModel > Exception
const VariableVector & nextStateVariables() const
FormulaVector _setOfEvents
vector< vector< size_t > > _supports
DdAutFsm::EventPropertyId Event
VariableFactory * _varFactory
void encodeStateVariables()
const BddComponent & getComponent(BddComponentVector::size_type index) const
std::vector< Reference > VariableVector
void setFaults(const set< Event > &faults)
#define require(Exception, expr, message)
Namespace of the Diades project.
const SlStates & synchronousTrigger(const SlStates &sources, const SlEvents &events)
VariableVector _nextStateVariables
FormulaVector _observables
const SlStates & initialStates() const
BddComponentVector _bddComponents
BddComponent a class that encodes a component into a set of BDDs.
VariableVector _stateVariables
BddComponent & getComponent(BddComponentVector::size_type index)
FormulaFactory * _formulas
BddComponent::SlTransitions SlTransitions
Variable::VariableVector VariableVector