24 #include <boost/algorithm/string.hpp>
33 return engine_factories;
39 throw Elements::Exception() <<
"A LeastSquareEngine named " << name <<
" has already been registered";
56 if (
std::find(known_engines.begin(), known_engines.end(),
"levmar") != known_engines.end()) {
59 else if (!known_engines.empty()) {
60 return known_engines.
front();
70 known_str <<
". Known engines: ";
72 known_str <<
e.first <<
" ";
75 throw Elements::Exception() <<
"No LeastSquareEngine named " << name <<
" has been registered" << known_str.
str();
77 return factory->second(max_iterations);
static std::string getDefault()
static std::shared_ptr< LeastSquareEngine > create(const std::string &name, unsigned max_iterations=1000)
static void registerEngine(const std::string &name, FactoryMethod factory_method)
static std::vector< std::string > getImplementations()
T emplace_back(T... args)
static std::map< std::string, LeastSquareEngineManager::FactoryMethod > & getEngineFactories()