16 #error no need to expose this header to Swig
20 #ifndef BORNAGAIN_CORE_FITTING_OBJECTIVEMETRIC_H
21 #define BORNAGAIN_CORE_FITTING_OBJECTIVEMETRIC_H
50 virtual double computeFromArrays(std::vector<double> sim_data, std::vector<double> exp_data,
51 std::vector<double> uncertainties,
52 std::vector<double> weight_factors)
const = 0;
61 virtual double computeFromArrays(std::vector<double> sim_data, std::vector<double> exp_data,
62 std::vector<double> weight_factors)
const = 0;
70 std::function<double(
double)>
m_norm;
90 double computeFromArrays(std::vector<double> sim_data, std::vector<double> exp_data,
91 std::vector<double> uncertainties,
92 std::vector<double> weight_factors)
const override;
101 double computeFromArrays(std::vector<double> sim_data, std::vector<double> exp_data,
102 std::vector<double> weight_factors)
const override;
126 double computeFromArrays(std::vector<double> sim_data, std::vector<double> exp_data,
127 std::vector<double> weight_factors)
const override;
148 double computeFromArrays(std::vector<double> sim_data, std::vector<double> exp_data,
149 std::vector<double> uncertainties,
150 std::vector<double> weight_factors)
const override;
159 double computeFromArrays(std::vector<double> sim_data, std::vector<double> exp_data,
160 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.
Chi2Metric * clone() const override
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.
LogMetric * clone() const override
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.
std::function< double(double)> m_norm
ObjectiveMetric * clone() const override=0
auto norm() const
Returns a copy of the normalization function used.
ObjectiveMetric(std::function< double(double)> norm)
void setNorm(std::function< double(double)> norm)
Implementation of metric with standard deviation , where is the simulated intensity.
PoissonLikeMetric * clone() const override
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.
RQ4Metric * clone() const override
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.
RelativeDifferenceMetric()
RelativeDifferenceMetric * clone() const override
Holds pair of simulation/experimental data to fit.