Browse Source

Dftelements: equalType

Former-commit-id: 77b9b38246
main
sjunges 9 years ago
parent
commit
8d0046a9a7
  1. 42
      src/storage/dft/DFTElements.h

42
src/storage/dft/DFTElements.h

@ -122,7 +122,7 @@ namespace storm {
bool hasParents() const {
return !mParents.empty();
}
size_t nrParents() const {
return mParents.size();
}
@ -194,7 +194,9 @@ namespace storm {
*/
virtual void extendSubDft(std::set<size_t> elemsInSubtree, std::vector<size_t> const& parentsOfSubRoot) const;
virtual bool isTypeEqualTo(DFTElement<ValueType> const& other) const {
return type() == other.type();
}
protected:
@ -368,7 +370,7 @@ namespace storm {
}
return false;
}
};
@ -413,6 +415,13 @@ namespace storm {
bool isColdBasicElement() const override{
return storm::utility::isZero(mPassiveFailureRate);
}
bool isTypeEqualTo(DFTElement<ValueType> const& other) const override {
if(!DFTElement<ValueType>::isTypeEqualTo(other)) return false;
DFTBE<ValueType> const& otherBE = static_cast<DFTBE<ValueType> const&>(other);
return (mActiveFailureRate == otherBE.mActiveFailureRate) && (mPassiveFailureRate == otherBE.mPassiveFailureRate);
}
virtual bool checkDontCareAnymore(storm::storage::DFTState<ValueType>& state, DFTStateSpaceGenerationQueues<ValueType>& queues) const override;
};
@ -454,6 +463,12 @@ namespace storm {
return 0;
}
bool isTypeEqualTo(DFTElement<ValueType> const& other) const override {
if(!DFTElement<ValueType>::isTypeEqualTo(other)) return false;
DFTConst<ValueType> const& otherCNST = static_cast<DFTConst<ValueType> const&>(other);
return (mFailed == otherCNST.mFailed);
}
};
@ -518,6 +533,13 @@ namespace storm {
virtual bool isDependency() const override {
return true;
}
virtual bool isTypeEqualTo(DFTElement<ValueType> const& other) const override {
if(!DFTElement<ValueType>::isTypeEqualTo(other)) return false;
DFTDependency<ValueType> const& otherDEP= static_cast<DFTDependency<ValueType> const&>(other);
return (mProbability == otherDEP.mProbability);
}
virtual std::vector<size_t> independentUnit() const override {
std::set<size_t> unit = {this->mId};
@ -819,7 +841,12 @@ namespace storm {
std::string typestring() const override{
return "VOT (" + std::to_string(mThreshold) + ")";
}
virtual bool isTypeEqualTo(DFTElement<ValueType> const& other) const override {
if(!DFTElement<ValueType>::isTypeEqualTo(other)) return false;
DFTVot<ValueType> const& otherVOT = static_cast<DFTVot<ValueType> const&>(other);
return (mThreshold == otherVOT.mThreshold);
}
};
template<typename ValueType>
@ -887,7 +914,12 @@ namespace storm {
}
}
};
template<typename ValueType>
bool equalType(DFTElement<ValueType> const& e1, DFTElement<ValueType> const& e2) {
return e1.isTypeEqualTo(e2);
}
}
}

Loading…
Cancel
Save