BornAgain  1.18.0
Simulate and fit neutron and x-ray scattering at grazing incidence
Parameter.cpp
Go to the documentation of this file.
1 // ************************************************************************** //
2 //
3 // BornAgain: simulate and fit scattering at grazing incidence
4 //
5 //! @file Fit/Kernel/Parameter.cpp
6 //! @brief Implements class Parameter.
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 #include "Fit/Kernel/Parameter.h"
16 #include <cmath>
17 
18 namespace
19 {
20 const double default_step = 0.01;
21 const double step_factor = 0.01;
22 
23 double step_for_value(double value)
24 {
25  return value == 0.0 ? default_step : std::abs(value) * step_factor;
26 }
27 } // namespace
28 
29 using namespace Fit;
30 
31 Parameter::Parameter() : m_start_value(0.0), m_value(0.0), m_step(0.0), m_error(0.0) {}
32 
33 Parameter::Parameter(const std::string& name, double value, const AttLimits& limits, double step)
34  : m_name(name), m_start_value(value), m_value(value), m_step(step), m_error(0.0),
35  m_limits(limits)
36 {
37  if (step <= 0.0)
39 }
40 
41 std::string Parameter::name() const
42 {
43  return m_name;
44 }
45 
46 double Parameter::startValue() const
47 {
48  return m_start_value;
49 }
50 
52 {
53  return m_limits;
54 }
55 
56 double Parameter::value() const
57 {
58  return m_value;
59 }
60 
61 void Parameter::setValue(double value)
62 {
63  m_value = value;
64 }
65 
66 double Parameter::step() const
67 {
68  return m_step;
69 }
70 
71 double Parameter::error() const
72 {
73  return m_error;
74 }
75 
76 void Parameter::setError(double value)
77 {
78  m_error = value;
79 }
Defines class Parameter.
Attributes and limits of a fit parameter, and coupling between these properties.
Definition: AttLimits.h:26
void setValue(double value)
Definition: Parameter.cpp:61
double startValue() const
Definition: Parameter.cpp:46
double m_start_value
starting value of fit parameters
Definition: Parameter.h:57
std::string m_name
unique fit parameter name
Definition: Parameter.h:56
double m_value
current value of fit parameters
Definition: Parameter.h:58
double step() const
Definition: Parameter.cpp:66
std::string name() const
Definition: Parameter.cpp:41
AttLimits limits() const
Definition: Parameter.cpp:51
double value() const
Definition: Parameter.cpp:56
double error() const
Definition: Parameter.cpp:71
void setError(double value)
Definition: Parameter.cpp:76
double m_error
error of fit parameter calculated by the minimizer
Definition: Parameter.h:60
AttLimits m_limits
Definition: Parameter.h:61
double m_step
approximate initial step for the minimizer
Definition: Parameter.h:59
Objective function types.
double step_for_value(double value)
Definition: Parameter.cpp:23