BornAgain  1.19.79
Open-source research software to simulate and fit neutron and x-ray reflectometry and grazing-incidence small-angle scattering
MinimizerCatalog Class Reference

Description

Hard-coded information about all minimizers available.

Definition at line 35 of file MinimizerCatalog.h.

Collaboration diagram for MinimizerCatalog:
[legend]

Public Member Functions

 MinimizerCatalog ()
 
 MinimizerCatalog (const MinimizerCatalog &)=delete
 
 MinimizerCatalog (MinimizerCatalog &&)=default
 
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 (MinimizerInfo &&info)
 Adds minimizer info to the catalog. More...
 

Private Attributes

std::vector< MinimizerInfom_minimizers
 

Constructor & Destructor Documentation

◆ MinimizerCatalog() [1/3]

MinimizerCatalog::MinimizerCatalog ( )

Definition at line 20 of file MinimizerCatalog.cpp.

21 {
27 }
void addMinimizerInfo(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 buildMinuit2Info(const std::string &defaultAlgo="")
Creates information for Minuit2Minimizer.

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

Here is the call graph for this function:

◆ MinimizerCatalog() [2/3]

MinimizerCatalog::MinimizerCatalog ( const MinimizerCatalog )
delete

◆ MinimizerCatalog() [3/3]

MinimizerCatalog::MinimizerCatalog ( MinimizerCatalog &&  )
default

Member Function Documentation

◆ addMinimizerInfo()

void MinimizerCatalog::addMinimizerInfo ( MinimizerInfo &&  info)
private

Adds minimizer info to the catalog.

Definition at line 86 of file MinimizerCatalog.cpp.

87 {
88  m_minimizers.emplace_back(std::move(info));
89 }
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 66 of file MinimizerCatalog.cpp.

67 {
68  return minimizerInfo(minimizerName).algorithmDescriptions();
69 }
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().

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 58 of file MinimizerCatalog.cpp.

59 {
60  return minimizerInfo(minimizerName).algorithmNames();
61 }
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:

◆ minimizerInfo()

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

Returns info for minimizer with given name.

Definition at line 73 of file MinimizerCatalog.cpp.

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

References m_minimizers.

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

◆ minimizerNames()

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

Definition at line 47 of file MinimizerCatalog.cpp.

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

References m_minimizers.

◆ toString()

std::string MinimizerCatalog::toString ( ) const

Returns multiline string representing catalog content.

Definition at line 31 of file MinimizerCatalog.cpp.

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

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


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