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

Public Member Functions

 TestMinimizer ()
 
 ~TestMinimizer () override
 
std::string minimizerName () const final
 
std::string algorithmName () const final
 
Fit::MinimizerResult minimize_scalar (fcn_scalar_t fcn, Fit::Parameters parameters) override
 
virtual Fit::MinimizerResult minimize_residual (fcn_residual_t, Fit::Parameters)
 
virtual void clear ()
 
virtual double minValue () const
 
virtual void setOptions (const std::string &options)
 
virtual bool requiresResiduals ()
 

Private Attributes

std::vector< double > m_parameter_values
 
scalar_function_t m_fcn
 

Detailed Description

A trivial minimizer that calls the objective function once. Used to test the whole chain.

Definition at line 22 of file TestMinimizer.h.

Constructor & Destructor Documentation

◆ TestMinimizer()

TestMinimizer::TestMinimizer ( )
default

◆ ~TestMinimizer()

TestMinimizer::~TestMinimizer ( )
overridedefault

Member Function Documentation

◆ minimizerName()

std::string TestMinimizer::minimizerName ( ) const
finalvirtual

return name of the minimizer

Implements IMinimizer.

Definition at line 24 of file TestMinimizer.cpp.

25 {
26  return "Test";
27 }

◆ algorithmName()

std::string TestMinimizer::algorithmName ( ) const
inlinefinalvirtual

return name of the minimization algorithm

Implements IMinimizer.

Definition at line 29 of file TestMinimizer.h.

29 { return ""; }

◆ minimize_scalar()

MinimizerResult TestMinimizer::minimize_scalar ( fcn_scalar_t  ,
Fit::Parameters   
)
overridevirtual

run minimization

Reimplemented from IMinimizer.

Definition at line 29 of file TestMinimizer.cpp.

30 {
31  // calling user function once
32  auto min_value = fcn(parameters);
33 
34  MinimizerResult result;
35  result.setParameters(parameters);
36  result.setMinValue(min_value);
37 
38  std::ostringstream report;
39  report << "TestMinimizer::printOutcome() -> Done. Objective function value = " << min_value
40  << std::endl;
41 
42  result.setReport(report.str());
43  result.setNumberOfCalls(1);
44 
45  return result;
46 }
Result of minimization round.
void setReport(const std::string &value)
void setMinValue(double value)
void setNumberOfCalls(int value)
void setParameters(const Parameters &parameters)
double min_value(const Iterator &begin, const Iterator &end, const Evaluator &evaluate)
Returns the minimum value of function evaluate as applied to the elements of an iterator range.
Definition: Algorithms.h:54

References algo::min_value(), Fit::MinimizerResult::setMinValue(), Fit::MinimizerResult::setNumberOfCalls(), Fit::MinimizerResult::setParameters(), and Fit::MinimizerResult::setReport().

Here is the call graph for this function:

◆ minimize_residual()

Fit::MinimizerResult IMinimizer::minimize_residual ( fcn_residual_t  ,
Fit::Parameters   
)
virtualinherited

Reimplemented in RootMinimizerAdapter.

Definition at line 26 of file IMinimizer.cpp.

27 {
28  throw std::runtime_error("IMinimizer::minimize_residual() -> Not implemented.");
29 }

◆ clear()

virtual void IMinimizer::clear ( )
inlinevirtualinherited

clear resources (parameters) for consecutives minimizations

Definition at line 50 of file IMinimizer.h.

50 {}

◆ minValue()

double IMinimizer::minValue ( ) const
virtualinherited

Returns minimum function value.

Reimplemented in RootMinimizerAdapter.

Definition at line 31 of file IMinimizer.cpp.

32 {
33  throw std::runtime_error("IMinimizer::minValue() -> Not implemented.");
34 }

◆ setOptions()

void IMinimizer::setOptions ( const std::string &  options)
virtualinherited

Sets option string to the minimizer.

Reimplemented in RootMinimizerAdapter.

Definition at line 36 of file IMinimizer.cpp.

37 {
38  throw std::runtime_error("IMinimizer::setOptions() -> Not implemented.");
39 }

Referenced by MinimizerFactory::createMinimizer().

◆ requiresResiduals()

virtual bool IMinimizer::requiresResiduals ( )
inlinevirtualinherited

Returns true if minimizer computations are residual-based, false otherwise.

Reimplemented in Minuit2Minimizer, and GSLLevenbergMarquardtMinimizer.

Definition at line 60 of file IMinimizer.h.

60 { return false; }

Member Data Documentation

◆ m_parameter_values

std::vector<double> TestMinimizer::m_parameter_values
private

Definition at line 34 of file TestMinimizer.h.

◆ m_fcn

scalar_function_t TestMinimizer::m_fcn
private

Definition at line 35 of file TestMinimizer.h.


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