BornAgain  1.19.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 reflection and scattering
4 //
5 //! @file Fit/Param/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_PARAM_PARAMETERS_H
16 #define BORNAGAIN_FIT_PARAM_PARAMETERS_H
17 
18 #include "Fit/Param/Parameter.h"
19 #include <vector>
20 
21 namespace mumufit {
22 
23 //! A collection of fit parameters.
24 //! @ingroup fitting
25 
26 class Parameters {
27 public:
28  using parameters_t = std::vector<Parameter>;
29  using const_iterator = parameters_t::const_iterator;
30  using iterator = parameters_t::iterator;
31  using corr_matrix_t = std::vector<std::vector<double>>;
32 
33  Parameters() = default;
34 
35  void add(const Parameter& par);
36 
37  const_iterator begin() const;
38  const_iterator end() const;
39 
40  iterator begin();
41  iterator end();
42 
43  size_t size() const;
44 
45  std::vector<double> values() const;
46  void setValues(const std::vector<double>& values);
47 
48  std::vector<double> errors() const;
49  void setErrors(const std::vector<double>& errors);
50 
51  const Parameter& operator[](const std::string& name) const;
52  const Parameter& operator[](size_t index) const;
53 
55  void setCorrelationMatrix(const corr_matrix_t& matrix);
56 
57  size_t freeParameterCount() const;
58 
59 private:
60  bool exists(const std::string& parameter_name) const;
61  void check_array_size(const std::vector<double>& values) const;
62  size_t check_index(size_t index) const;
63 
65  corr_matrix_t m_corr_matrix; //!< correlation matrix
66 };
67 
68 } // namespace mumufit
69 
70 #endif // BORNAGAIN_FIT_PARAM_PARAMETERS_H
Defines class Parameter.
A fittable parameter with value, error, step, and limits.
Definition: Parameter.h:26
A collection of fit parameters.
Definition: Parameters.h:26
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
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
parameters_t m_parameters
Definition: Parameters.h:64
size_t freeParameterCount() const
Returns number of free parameters.
Definition: Parameters.cpp:132
void setCorrelationMatrix(const corr_matrix_t &matrix)
Definition: Parameters.cpp:122
const_iterator begin() const
Definition: Parameters.cpp:31
corr_matrix_t m_corr_matrix
correlation matrix
Definition: Parameters.h:65
void setErrors(const std::vector< double > &errors)
Definition: Parameters.cpp:90
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
parameters_t::iterator iterator
Definition: Parameters.h:30
void check_array_size(const std::vector< double > &values) const
Definition: Parameters.cpp:149
std::vector< Parameter > parameters_t
Definition: Parameters.h:28
std::vector< std::vector< double > > corr_matrix_t
Definition: Parameters.h:31
parameters_t::const_iterator const_iterator
Definition: Parameters.h:29
QString const & name(EShape k)
Definition: particles.cpp:21
The multi-library, multi-algorithm fit wrapper library.