15 #ifndef BORNAGAIN_CORE_FITTING_OBJECTIVEMETRIC_H
16 #define BORNAGAIN_CORE_FITTING_OBJECTIVEMETRIC_H
46 virtual double computeFromArrays(std::vector<double> sim_data, std::vector<double> exp_data,
47 std::vector<double> uncertainties,
48 std::vector<double> weight_factors)
const = 0;
57 virtual double computeFromArrays(std::vector<double> sim_data, std::vector<double> exp_data,
58 std::vector<double> weight_factors)
const = 0;
60 void setNorm(std::function<
double(
double)>
norm);
63 auto norm()
const {
return m_norm; }
66 std::function<double(
double)> m_norm;
87 double computeFromArrays(std::vector<double> sim_data, std::vector<double> exp_data,
88 std::vector<double> uncertainties,
89 std::vector<double> weight_factors)
const override;
98 double computeFromArrays(std::vector<double> sim_data, std::vector<double> exp_data,
99 std::vector<double> weight_factors)
const override;
124 double computeFromArrays(std::vector<double> sim_data, std::vector<double> exp_data,
125 std::vector<double> weight_factors)
const override;
147 double computeFromArrays(std::vector<double> sim_data, std::vector<double> exp_data,
148 std::vector<double> uncertainties,
149 std::vector<double> weight_factors)
const override;
158 double computeFromArrays(std::vector<double> sim_data, std::vector<double> exp_data,
159 std::vector<double> weight_factors)
const override;
182 double computeFromArrays(std::vector<double> sim_data, std::vector<double> exp_data,
183 std::vector<double> weight_factors)
const override;
Defines and implements the standard mix-in ICloneable.
Implementation of the standard metric derived from maximum likelihood with Gaussian uncertainties.
double computeFromArrays(std::vector< double > sim_data, std::vector< double > exp_data, std::vector< double > uncertainties, std::vector< double > weight_factors) const override
Computes metric value from data arrays.
Interface for polymorphic classes that should not be copied, except by explicit cloning.
Implementation of the standard metric with intensity and experimental data being replaced by and ...
double computeFromArrays(std::vector< double > sim_data, std::vector< double > exp_data, std::vector< double > uncertainties, std::vector< double > weight_factors) const override
Computes metric value from data arrays.
Base class for metric implementations.
virtual double compute(const SimDataPair &data_pair, bool use_weights) const
Computes metric value from SimDataPair object.
virtual double computeFromArrays(std::vector< double > sim_data, std::vector< double > exp_data, std::vector< double > weight_factors) const =0
Computes metric value from data arrays.
virtual double computeFromArrays(std::vector< double > sim_data, std::vector< double > exp_data, std::vector< double > uncertainties, std::vector< double > weight_factors) const =0
Computes metric value from data arrays.
auto norm() const
Returns a copy of the normalization function used.
Implementation of metric with standard deviation , where is the simulated intensity.
double computeFromArrays(std::vector< double > sim_data, std::vector< double > exp_data, std::vector< double > uncertainties, std::vector< double > weight_factors) const override
Computes metric value from data arrays.
Implementation of relative difference metric.
double compute(const SimDataPair &data_pair, bool use_weights) const override
Computes metric value from SimDataPair object.
Implementation of relative difference metric.
double computeFromArrays(std::vector< double > sim_data, std::vector< double > exp_data, std::vector< double > uncertainties, std::vector< double > weight_factors) const override
Computes metric value from data arrays.
Holds pair of simulation/experimental data to fit.