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

Public Member Functions

 Minimizer ()
 
 ~Minimizer ()
 
void setMinimizer (const std::string &minimizerName, const std::string &algorithmName="", const std::string &options="")
 
void setMinimizer (IMinimizer *minimizer)
 
MinimizerResult minimize (fcn_scalar_t fcn, const Parameters &parameters)
 
MinimizerResult minimize (fcn_residual_t fcn, const Parameters &parameters)
 
MinimizerResult minimize (PyCallback &callback, const Parameters &parameters)
 

Private Attributes

std::unique_ptr< Kernelm_kernel
 

Detailed Description

A main class to run fitting.

Definition at line 36 of file Minimizer.h.

Constructor & Destructor Documentation

◆ Minimizer()

Minimizer::Minimizer ( )

Definition at line 21 of file Minimizer.cpp.

21 : m_kernel(new Kernel) {}
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

◆ setMinimizer() [1/2]

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

Definition at line 23 of file Minimizer.cpp.

25 {
26  m_kernel->setMinimizer(minimizerName, algorithmName, options);
27 }

References m_kernel.

◆ setMinimizer() [2/2]

void Minimizer::setMinimizer ( IMinimizer minimizer)

Definition at line 29 of file Minimizer.cpp.

30 {
31  m_kernel->setMinimizer(minimizer);
32 }

References m_kernel.

◆ minimize() [1/3]

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

Definition at line 36 of file Minimizer.cpp.

37 {
38  return m_kernel->minimize(fcn, parameters);
39 }

References m_kernel.

Referenced by minimize().

◆ minimize() [2/3]

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

Definition at line 41 of file Minimizer.cpp.

42 {
43  return m_kernel->minimize(fcn, parameters);
44 }

References m_kernel.

◆ minimize() [3/3]

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

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

Definition at line 46 of file Minimizer.cpp.

47 {
48  if (callback.callback_type() == PyCallback::SCALAR) {
49  fcn_scalar_t fcn = [&](const Parameters& pars) { return callback.call_scalar(pars); };
50  return minimize(fcn, parameters);
51 
52  } else if (callback.callback_type() == PyCallback::RESIDUAL) {
53  fcn_residual_t fcn = [&](const Parameters& pars) { return callback.call_residuals(pars); };
54  return minimize(fcn, parameters);
55  }
56 
57  throw std::runtime_error("Minimizer::minimize() -> Error. Unexpected user function");
58 }
std::function< std::vector< double >(const Fit::Parameters &)> fcn_residual_t
Definition: KernelTypes.h:38
std::function< double(const Fit::Parameters &)> fcn_scalar_t
Definition: KernelTypes.h:37
MinimizerResult minimize(fcn_scalar_t fcn, const Parameters &parameters)
Definition: Minimizer.cpp:36
A collection of fit parameters.
Definition: Parameters.h:28
virtual std::vector< double > call_residuals(Fit::Parameters pars)
Call Python callable and returns its result.
Definition: PyCallback.cpp:31
virtual double call_scalar(Fit::Parameters pars)
Call Python callable and returns its result.
Definition: PyCallback.cpp:26
CallbackType callback_type() const
Definition: PyCallback.cpp:19

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

Referenced by minimize().

Here is the call graph for this function:

Member Data Documentation

◆ m_kernel

std::unique_ptr<Kernel> Fit::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: