BornAgain  1.19.0
Simulate and fit neutron and x-ray scattering at grazing incidence
MinimizerCatalog Class Reference

Hard-coded information about all minimizers available. More...

Public Member Functions

 MinimizerCatalog ()
 
std::vector< std::string > algorithmDescriptions (const std::string &minimizerName) const
 Returns list of algorithm's descriptions for the minimizer with a given name . More...
 
std::vector< std::string > algorithmNames (const std::string &minimizerName) const
 Returns list of algorithms defined for the minimizer with a given name. More...
 
const MinimizerInfominimizerInfo (const std::string &minimizerName) const
 Returns info for minimizer with given name. More...
 
std::vector< std::string > minimizerNames () const
 
std::string toString () const
 Returns multiline string representing catalog content. More...
 

Private Member Functions

void addMinimizerInfo (const MinimizerInfo &info)
 Adds minimizer info to the catalog. More...
 

Private Attributes

std::vector< MinimizerInfom_minimizers
 

Detailed Description

Hard-coded information about all minimizers available.

Definition at line 36 of file MinimizerCatalog.h.

Constructor & Destructor Documentation

◆ MinimizerCatalog()

MinimizerCatalog::MinimizerCatalog ( )

Definition at line 20 of file MinimizerCatalog.cpp.

21 {
28 }
void addMinimizerInfo(const MinimizerInfo &info)
Adds minimizer info to the catalog.
static MinimizerInfo buildGeneticInfo()
Creates information for TMVA genetic minimizer.
static MinimizerInfo buildGSLSimAnInfo()
Creates information for GSL's simmulated annealing algorithm.
static MinimizerInfo buildGSLLMAInfo()
Creates information for GSL's Levenberg-Marquardt.
static MinimizerInfo buildGSLMultiMinInfo(const std::string &defaultAlgo="")
Creates information for GSLMultiMinMinimizer.
static MinimizerInfo buildTestMinimizerInfo()
Creates information for simple test minimizer.
static MinimizerInfo buildMinuit2Info(const std::string &defaultAlgo="")
Creates information for Minuit2Minimizer.

References addMinimizerInfo(), MinimizerInfo::buildGeneticInfo(), MinimizerInfo::buildGSLLMAInfo(), MinimizerInfo::buildGSLMultiMinInfo(), MinimizerInfo::buildGSLSimAnInfo(), MinimizerInfo::buildMinuit2Info(), and MinimizerInfo::buildTestMinimizerInfo().

Here is the call graph for this function:

Member Function Documentation

◆ addMinimizerInfo()

void MinimizerCatalog::addMinimizerInfo ( const MinimizerInfo info)
private

Adds minimizer info to the catalog.

Definition at line 87 of file MinimizerCatalog.cpp.

88 {
89  m_minimizers.push_back(info);
90 }
std::vector< MinimizerInfo > m_minimizers

References m_minimizers.

Referenced by MinimizerCatalog().

◆ algorithmDescriptions()

std::vector< std::string > MinimizerCatalog::algorithmDescriptions ( const std::string &  minimizerName) const

Returns list of algorithm's descriptions for the minimizer with a given name .

Definition at line 67 of file MinimizerCatalog.cpp.

68 {
69  return minimizerInfo(minimizerName).algorithmDescriptions();
70 }
const MinimizerInfo & minimizerInfo(const std::string &minimizerName) const
Returns info for minimizer with given name.
std::vector< std::string > algorithmDescriptions() const
Returns list of string with description of all available algorithms.

References MinimizerInfo::algorithmDescriptions(), and minimizerInfo().

Referenced by MinimizerItemCatalog::algorithmDescriptions().

Here is the call graph for this function:

◆ algorithmNames()

std::vector< std::string > MinimizerCatalog::algorithmNames ( const std::string &  minimizerName) const

Returns list of algorithms defined for the minimizer with a given name.

Definition at line 59 of file MinimizerCatalog.cpp.

60 {
61  return minimizerInfo(minimizerName).algorithmNames();
62 }
std::vector< std::string > algorithmNames() const
Return list of defined algorithm names.

References MinimizerInfo::algorithmNames(), and minimizerInfo().

Referenced by MinimizerItemCatalog::algorithmNames().

Here is the call graph for this function:

◆ minimizerInfo()

const MinimizerInfo & MinimizerCatalog::minimizerInfo ( const std::string &  minimizerName) const

Returns info for minimizer with given name.

Definition at line 74 of file MinimizerCatalog.cpp.

75 {
76  for (const auto& info : m_minimizers)
77  if (info.name() == minimizerName)
78  return info;
79 
80  throw std::runtime_error("MinimizerCatalog::minimizerInfo -> Error. "
81  "No minimizer with the name '"
82  + minimizerName + "'");
83 }

References m_minimizers.

Referenced by algorithmDescriptions(), algorithmNames(), and MinimizerFactory::catalogDetailsToString().

◆ minimizerNames()

std::vector< std::string > MinimizerCatalog::minimizerNames ( ) const

Definition at line 48 of file MinimizerCatalog.cpp.

49 {
50  std::vector<std::string> result;
51  for (const auto& info : m_minimizers)
52  result.push_back(info.name());
53 
54  return result;
55 }

References m_minimizers.

◆ toString()

std::string MinimizerCatalog::toString ( ) const

Returns multiline string representing catalog content.

Definition at line 32 of file MinimizerCatalog.cpp.

33 {
34  const int text_width = 80;
35  std::ostringstream result;
36 
37  result << std::string(text_width, '-') << "\n";
38  result << boost::format("%-15s|%-65s\n") % "Minimizer" % " Algorithms";
39  result << std::string(text_width, '-') << "\n";
40 
41  for (const auto& info : m_minimizers) {
42  result << boost::format("%-15s| %-64s\n") % info.name()
43  % mumufit::utils::toString(info.algorithmNames(), " ");
44  }
45  return result.str();
46 }
std::string toString(const std::vector< std::string > &v, const std::string &delim="")

References m_minimizers, and mumufit::utils::toString().

Referenced by MinimizerFactory::catalogToString(), and MinimizerFactory::createMinimizer().

Here is the call graph for this function:

Member Data Documentation

◆ m_minimizers

std::vector<MinimizerInfo> MinimizerCatalog::m_minimizers
private

Definition at line 52 of file MinimizerCatalog.h.

Referenced by addMinimizerInfo(), minimizerInfo(), minimizerNames(), and toString().


The documentation for this class was generated from the following files: