BornAgain  1.18.0
Simulate and fit neutron and x-ray scattering at grazing incidence
MinimizerCatalog Class Reference
Collaboration diagram for MinimizerCatalog:

Public Member Functions

 MinimizerCatalog ()
 
std::string toString () const
 
std::vector< std::string > minimizerNames () const
 
std::vector< std::string > algorithmNames (const std::string &minimizerName) const
 
std::vector< std::string > algorithmDescriptions (const std::string &minimizerName) const
 
const MinimizerInfominimizerInfo (const std::string &minimizerName) const
 

Private Member Functions

void addMinimizerInfo (const MinimizerInfo &info)
 

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

◆ 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  % MinimizerUtils::toString(info.algorithmNames(), " ");
44  }
45  return result.str();
46 }
std::vector< MinimizerInfo > m_minimizers
std::string toString(const std::vector< std::string > &v, const std::string &delim="")

References m_minimizers, and MinimizerUtils::toString().

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

Here is the call graph for this function:

◆ 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.

◆ 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 }
const MinimizerInfo & minimizerInfo(const std::string &minimizerName) const
Returns info for minimizer with given name.
std::vector< std::string > algorithmNames() const
Return list of defined algorithm names.

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

Here is the call graph for this function:

◆ 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 }
std::vector< std::string > algorithmDescriptions() const
Returns list of string with description of all available algorithms.

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

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().

◆ 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 }

References m_minimizers.

Referenced by MinimizerCatalog().

Member Data Documentation

◆ m_minimizers

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

Definition at line 53 of file MinimizerCatalog.h.

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


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