BornAgain  1.18.0
Simulate and fit neutron and x-ray scattering at grazing incidence
IMinimizer.h
Go to the documentation of this file.
1 // ************************************************************************** //
2 //
3 // BornAgain: simulate and fit scattering at grazing incidence
4 //
5 //! @file Fit/Minimizer/IMinimizer.h
6 //! @brief Defines class IMinimizer.
7 //!
8 //! @homepage http://www.bornagainproject.org
9 //! @license GNU General Public License v3 or higher (see COPYING)
10 //! @copyright Forschungszentrum Jülich GmbH 2018
11 //! @authors Scientific Computing Group at MLZ (see CITATION, AUTHORS)
12 //
13 // ************************************************************************** //
14 
15 #ifndef BORNAGAIN_FIT_MINIMIZER_IMINIMIZER_H
16 #define BORNAGAIN_FIT_MINIMIZER_IMINIMIZER_H
17 
18 #include "Fit/Kernel/KernelTypes.h"
20 #include <string>
21 
22 namespace Fit
23 {
24 class Parameters;
25 }
26 
27 //! Pure virtual interface for all kind minimizers.
28 //! @ingroup fitting_internal
29 
31 {
32 public:
34  virtual ~IMinimizer();
35 
36  IMinimizer(const IMinimizer& other) = delete;
37  IMinimizer& operator=(const IMinimizer& other) = delete;
38 
39  //! return name of the minimizer
40  virtual std::string minimizerName() const = 0;
41 
42  //! return name of the minimization algorithm
43  virtual std::string algorithmName() const = 0;
44 
45  //! run minimization
48 
49  //! clear resources (parameters) for consecutives minimizations
50  virtual void clear() {}
51 
52  //! Returns minimum function value
53  virtual double minValue() const;
54 
55  //! Sets option string to the minimizer
56  virtual void setOptions(const std::string& options);
57 
58 #ifndef SWIG
59  //! Returns true if minimizer computations are residual-based, false otherwise
60  virtual bool requiresResiduals() { return false; }
61 #endif // SWIG
62 };
63 
64 #endif // BORNAGAIN_FIT_MINIMIZER_IMINIMIZER_H
Defines common types for fitting library.
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
Defines class MinimizerResult.
Result of minimization round.
A collection of fit parameters.
Definition: Parameters.h:28
Pure virtual interface for all kind minimizers.
Definition: IMinimizer.h:31
virtual bool requiresResiduals()
Returns true if minimizer computations are residual-based, false otherwise.
Definition: IMinimizer.h:60
virtual Fit::MinimizerResult minimize_scalar(fcn_scalar_t, Fit::Parameters)
run minimization
Definition: IMinimizer.cpp:21
virtual ~IMinimizer()
virtual std::string algorithmName() const =0
return name of the minimization algorithm
IMinimizer(const IMinimizer &other)=delete
virtual std::string minimizerName() const =0
return name of the minimizer
virtual Fit::MinimizerResult minimize_residual(fcn_residual_t, Fit::Parameters)
Definition: IMinimizer.cpp:26
IMinimizer & operator=(const IMinimizer &other)=delete
virtual void setOptions(const std::string &options)
Sets option string to the minimizer.
Definition: IMinimizer.cpp:36
virtual double minValue() const
Returns minimum function value.
Definition: IMinimizer.cpp:31
virtual void clear()
clear resources (parameters) for consecutives minimizations
Definition: IMinimizer.h:50
Objective function types.