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

Description

A main class to run fitting.

Definition at line 37 of file Minimizer.h.

Collaboration diagram for mumufit::Minimizer:
[legend]

Public Member Functions

 Minimizer ()
 
 ~Minimizer ()
 
MinimizerResult minimize (const PyCallback &callback, const Parameters &parameters) const
 Finds minimum of user objective function (to be called from Python). More...
 
MinimizerResult minimize (fcn_residual_t fcn, const Parameters &parameters) const
 
MinimizerResult minimize (fcn_scalar_t fcn, const Parameters &parameters) const
 
void setMinimizer (const std::string &minimizerName, const std::string &algorithmName="", const std::string &options="")
 
void setMinimizer (IMinimizer *minimizer)
 

Private Attributes

std::unique_ptr< Kernelm_kernel
 

Constructor & Destructor Documentation

◆ Minimizer()

Minimizer::Minimizer ( )

Definition at line 21 of file Minimizer.cpp.

22  : m_kernel(new Kernel)
23 {
24 }
A main class to run fitting.
Definition: Kernel.h:34
std::unique_ptr< Kernel > m_kernel
Definition: Minimizer.h:57

◆ ~Minimizer()

Minimizer::~Minimizer ( )
default

Member Function Documentation

◆ minimize() [1/3]

MinimizerResult Minimizer::minimize ( const PyCallback callback,
const Parameters parameters 
) const

Finds minimum of user objective function (to be called from Python).

Definition at line 49 of file Minimizer.cpp.

50 {
51  if (callback.callback_type() == PyCallback::SCALAR) {
52  fcn_scalar_t fcn = [&](const Parameters& pars) { return callback.call_scalar(pars); };
53  return minimize(fcn, parameters);
54  } else if (callback.callback_type() == PyCallback::RESIDUAL) {
55  fcn_residual_t fcn = [&](const Parameters& pars) { return callback.call_residuals(pars); };
56  return minimize(fcn, parameters);
57  }
58 
59  throw std::runtime_error("Minimizer::minimize() -> Error. Unexpected user function");
60 }
std::function< double(const mumufit::Parameters &)> fcn_scalar_t
Definition: Types.h:40
std::function< std::vector< double >(const mumufit::Parameters &)> fcn_residual_t
Definition: Types.h:41
virtual std::vector< double > call_residuals(mumufit::Parameters pars) const
Call Python callable and returns its result. Intended to be overloaded in Python.
Definition: PyCallback.cpp:34
virtual double call_scalar(mumufit::Parameters pars) const
Call Python callable and returns its result. Intended to be overloaded in Python.
Definition: PyCallback.cpp:29
CallbackType callback_type() const
Definition: PyCallback.cpp:22
MinimizerResult minimize(fcn_scalar_t fcn, const Parameters &parameters) const
Definition: Minimizer.cpp:39
A collection of fit parameters.
Definition: Parameters.h:26

References PyCallback::call_residuals(), PyCallback::call_scalar(), PyCallback::callback_type(), minimize(), PyCallback::RESIDUAL, and PyCallback::SCALAR.

Here is the call graph for this function:

◆ minimize() [2/3]

MinimizerResult Minimizer::minimize ( fcn_residual_t  fcn,
const Parameters parameters 
) const

Definition at line 44 of file Minimizer.cpp.

45 {
46  return m_kernel->minimize(fcn, parameters);
47 }

References m_kernel.

◆ minimize() [3/3]

MinimizerResult Minimizer::minimize ( fcn_scalar_t  fcn,
const Parameters parameters 
) const

Definition at line 39 of file Minimizer.cpp.

40 {
41  return m_kernel->minimize(fcn, parameters);
42 }

References m_kernel.

Referenced by minimize().

◆ setMinimizer() [1/2]

void Minimizer::setMinimizer ( const std::string &  minimizerName,
const std::string &  algorithmName = "",
const std::string &  options = "" 
)

Definition at line 26 of file Minimizer.cpp.

28 {
29  m_kernel->setMinimizer(minimizerName, algorithmName, options);
30 }

References m_kernel.

◆ setMinimizer() [2/2]

void Minimizer::setMinimizer ( IMinimizer minimizer)

Definition at line 32 of file Minimizer.cpp.

33 {
34  m_kernel->setMinimizer(minimizer);
35 }

References m_kernel.

Member Data Documentation

◆ m_kernel

std::unique_ptr<Kernel> mumufit::Minimizer::m_kernel
private

Definition at line 57 of file Minimizer.h.

Referenced by minimize(), and setMinimizer().


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