if( name == ExactInf::Name )
return new ExactInf (fg, opts);
#ifdef DAI_WITH_BP
- if( name == BP::Name )
+ if( name == BP::Name )
return new BP (fg, opts);
#endif
#ifdef DAI_WITH_MF
- if( name == MF::Name )
+ if( name == MF::Name )
return new MF (fg, opts);
#endif
#ifdef DAI_WITH_HAK
- if( name == HAK::Name )
+ if( name == HAK::Name )
return new HAK (fg, opts);
#endif
#ifdef DAI_WITH_LC
if( name == CBP::Name )
return new CBP (fg, opts);
#endif
- DAI_THROW(UNKNOWN_DAI_ALGORITHM);
+ DAI_THROWE(UNKNOWN_DAI_ALGORITHM,"Unknown libDAI algorithm: " + name);
}
/// \todo Make alias file non-testdai-specific, and use it in newInfAlgFromString
-InfAlg *newInfAlgFromString( const std::string &s, const FactorGraph &fg ) {
- string::size_type pos = s.find_first_of('[');
+InfAlg *newInfAlgFromString( const std::string &nameOpts, const FactorGraph &fg ) {
+ string::size_type pos = nameOpts.find_first_of('[');
string name;
PropertySet opts;
if( pos == string::npos ) {
- name = s;
+ name = nameOpts;
} else {
- name = s.substr(0,pos);
+ name = nameOpts.substr(0,pos);
stringstream ss;
- ss << s.substr(pos,s.length());
+ ss << nameOpts.substr(pos,nameOpts.length());
ss >> opts;
}
return newInfAlg(name,fg,opts);