returnbuilder.addBasicElementProbability(parseName(name),firstValDistribution,dormancyFactor,false);// TODO set transient BEs
}
STORM_LOG_THROW(false,storm::exceptions::NotSupportedException,"Constant distribution is not supported for basic element '"<<name<<"' in line "<<lineNo<<".");
break;
caseExponential:
returnbuilder.addBasicElement(parseName(name),firstValDistribution,dormancyFactor,false);// TODO set transient BEs
returnbuilder.addBasicElementExponential(parseName(name),firstValDistribution,dormancyFactor,false);// TODO set transient BEs
break;
caseErlang:
if(erlangPhases==1){
// Erlang distribution reduces to exponential distribution
returnbuilder.addBasicElement(parseName(name),firstValDistribution,dormancyFactor,false);// TODO set transient BEs
returnbuilder.addBasicElementExponential(parseName(name),firstValDistribution,dormancyFactor,false);// TODO set transient BEs
}else{
// Model Erlang distribution by using SEQ over BEs instead.
// For each phase a BE is added, then the SEQ ensures the ordered failure.
STORM_LOG_WARN("Erlang distribution for basic element '"<<name<<"' in line "<<lineNo<<" is modelled by SEQ gate and BEs.");
std::stringorigName=parseName(name);
std::vector<std::string>childNames;
boolsuccess=builder.addBasicElement(origName,firstValDistribution,dormancyFactor,false);// TODO set transient BEs
boolsuccess=builder.addBasicElementExponential(origName,firstValDistribution,dormancyFactor,false);// TODO set transient BEs
for(size_ti=0;i<erlangPhases-1;++i){
std::stringbeName=origName+"_"+std::to_string(i);
childNames.push_back(beName);
success=success&&builder.addBasicElement(beName,firstValDistribution,dormancyFactor,false);// TODO set transient BEs
success=success&&builder.addBasicElementExponential(beName,firstValDistribution,dormancyFactor,false);// TODO set transient BEs
// Weibull distribution reduces to exponential distribution
returnbuilder.addBasicElement(parseName(name),firstValDistribution,dormancyFactor,false);// TODO set transient BEs
returnbuilder.addBasicElementExponential(parseName(name),firstValDistribution,dormancyFactor,false);// TODO set transient BEs
}else{
STORM_LOG_THROW(false,storm::exceptions::NotSupportedException,"Weibull distribution is not supported for basic element '"<<name<<"' in line "<<lineNo<<".");