STORM_LOG_THROW(distribution==Distribution::None,storm::exceptions::WrongFormatException,"A different distribution was already defined for this basic element.");
STORM_LOG_THROW(false,storm::exceptions::NotSupportedException,"Constant distribution is not supported.");
}elseif(boost::starts_with(token,"lambda=")){
STORM_LOG_THROW(distribution==Distribution::None,storm::exceptions::WrongFormatException,"A different distribution was already defined for this basic element.");
STORM_LOG_THROW(distribution==Distribution::None||distribution==Distribution::Weibull,storm::exceptions::WrongFormatException,"A different distribution was already defined for this basic element.");
STORM_LOG_THROW(distribution==Distribution::None||distribution==Distribution::Weibull,storm::exceptions::WrongFormatException,"A different distribution was already defined for this basic element.");
STORM_LOG_THROW(distribution==Distribution::None||distribution==Distribution::LogNormal,storm::exceptions::WrongFormatException,"A different distribution was already defined for this basic element.");
STORM_LOG_THROW(distribution==Distribution::None||distribution==Distribution::LogNormal,storm::exceptions::WrongFormatException,"A different distribution was already defined for this basic element.");
STORM_LOG_THROW(distribution==Distribution::None,storm::exceptions::WrongFormatException,"A different distribution was already defined for this basic element.");
firstValDistribution=result.second;
distribution=Distribution::Constant;
STORM_LOG_THROW(false,storm::exceptions::NotSupportedException,"Constant distribution is not supported.");
}
// Exponential distribution
result=parseValue("lambda",line,valueParser);
if(result.first){
STORM_LOG_THROW(distribution==Distribution::None,storm::exceptions::WrongFormatException,"A different distribution was already defined for this basic element.");
firstValDistribution=result.second;
distribution=Distribution::Exponential;
}
// Weibull distribution
result=parseValue("rate",line,valueParser);
if(result.first){
STORM_LOG_THROW(distribution==Distribution::None||distribution==Distribution::Weibull,storm::exceptions::WrongFormatException,"A different distribution was already defined for this basic element.");
firstValDistribution=result.second;
distribution=Distribution::Weibull;
}
result=parseValue("shape",line,valueParser);
if(result.first){
STORM_LOG_THROW(distribution==Distribution::None||distribution==Distribution::Weibull,storm::exceptions::WrongFormatException,"A different distribution was already defined for this basic element.");
secondValDistribution=result.second;
distribution=Distribution::Weibull;
}
// Lognormal distribution
result=parseValue("mean",line,valueParser);
if(result.first){
STORM_LOG_THROW(distribution==Distribution::None||distribution==Distribution::LogNormal,storm::exceptions::WrongFormatException,"A different distribution was already defined for this basic element.");
firstValDistribution=result.second;
distribution=Distribution::LogNormal;
}
result=parseValue("stddev",line,valueParser);
if(result.first){
STORM_LOG_THROW(distribution==Distribution::None||distribution==Distribution::LogNormal,storm::exceptions::WrongFormatException,"A different distribution was already defined for this basic element.");
secondValDistribution=result.second;
distribution=Distribution::LogNormal;
}
// Additional arguments
result=parseValue("cov",line,valueParser);
if(result.first){
STORM_LOG_WARN("Coverage is not supported and will be ignored.");
}
result=parseValue("res",line,valueParser);
if(result.first){
STORM_LOG_WARN("Restoration is not supported and will be ignored.");