BornAgain  1.18.0
Simulate and fit neutron and x-ray scattering at grazing incidence
Parameters.h
Go to the documentation of this file.
1 // ************************************************************************** //
2 //
3 // BornAgain: simulate and fit scattering at grazing incidence
4 //
5 //! @file Fit/Kernel/Parameters.h
6 //! @brief Defines class Parameters.
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_KERNEL_PARAMETERS_H
16 #define BORNAGAIN_FIT_KERNEL_PARAMETERS_H
17 
18 #include "Fit/Kernel/Parameter.h"
19 #include <vector>
20 
21 namespace Fit
22 {
23 
24 //! A collection of fit parameters.
25 //! @ingroup fitting
26 
28 {
29 public:
30  using parameters_t = std::vector<Parameter>;
31  using const_iterator = parameters_t::const_iterator;
32  using iterator = parameters_t::iterator;
33  using corr_matrix_t = std::vector<std::vector<double>>;
34 
35  Parameters() = default;
36 
37  void add(const Parameter& par);
38 
39  const_iterator begin() const;
40  const_iterator end() const;
41 
42  iterator begin();
43  iterator end();
44 
45  size_t size() const;
46 
47  std::vector<double> values() const;
48  void setValues(const std::vector<double>& values);
49 
50  std::vector<double> errors() const;
51  void setErrors(const std::vector<double>& errors);
52 
53  const Parameter& operator[](const std::string& name) const;
54  const Parameter& operator[](size_t index) const;
55 
57  void setCorrelationMatrix(const corr_matrix_t& matrix);
58 
59  size_t freeParameterCount() const;
60 
61 private:
62  bool exists(const std::string& parameter_name) const;
63  void check_array_size(const std::vector<double>& values) const;
64  size_t check_index(size_t index) const;
65 
67  corr_matrix_t m_corr_matrix; //!< correlation matrix
68 };
69 
70 } // namespace Fit
71 
72 #endif // BORNAGAIN_FIT_KERNEL_PARAMETERS_H
Defines class Parameter.
A fittable parameter with value, error, step, and limits.
Definition: Parameter.h:28
A collection of fit parameters.
Definition: Parameters.h:28
std::vector< double > values() const
Definition: Parameters.cpp:56
const Parameter & operator[](const std::string &name) const
Definition: Parameters.cpp:98
corr_matrix_t correlationMatrix() const
Definition: Parameters.cpp:117
const_iterator end() const
Definition: Parameters.cpp:36
corr_matrix_t m_corr_matrix
correlation matrix
Definition: Parameters.h:67
size_t check_index(size_t index) const
Definition: Parameters.cpp:160
void setValues(const std::vector< double > &values)
Definition: Parameters.cpp:64
bool exists(const std::string &parameter_name) const
Definition: Parameters.cpp:141
size_t freeParameterCount() const
Returns number of free parameters.
Definition: Parameters.cpp:132
std::vector< Parameter > parameters_t
Definition: Parameters.h:30
void setCorrelationMatrix(const corr_matrix_t &matrix)
Definition: Parameters.cpp:122
const_iterator begin() const
Definition: Parameters.cpp:31
parameters_t::const_iterator const_iterator
Definition: Parameters.h:31
Parameters()=default
void setErrors(const std::vector< double > &errors)
Definition: Parameters.cpp:90
parameters_t m_parameters
Definition: Parameters.h:66
size_t size() const
Definition: Parameters.cpp:51
std::vector< double > errors() const
Definition: Parameters.cpp:82
void add(const Parameter &par)
Definition: Parameters.cpp:22
std::vector< std::vector< double > > corr_matrix_t
Definition: Parameters.h:33
void check_array_size(const std::vector< double > &values) const
Definition: Parameters.cpp:149
parameters_t::iterator iterator
Definition: Parameters.h:32
Objective function types.