25template <
typename DataType,
typename ModelType,
typename WeightType,
typename Comparator>
27 DataType data, ModelType model, WeightType weight, Comparator comparator)
40template <
typename DataType,
typename ModelType,
typename WeightType,
typename Comparator>
43template <
typename DataType,
typename ModelType,
typename WeightType,
typename Comparator>
48template <
typename DataType,
typename ModelType,
typename WeightType,
typename Comparator>
50 auto data_iter = DataTraits::begin(m_data);
51 auto model_iter = ModelTraits::begin(m_model);
52 auto weight_iter = WeightTraits::begin(m_weight);
55 for (; data_iter!=DataTraits::end(m_data); ++data_iter, ++model_iter, ++weight_iter, ++output_iter) {
56 *output_iter = m_comparator(*data_iter, *model_iter, *weight_iter);
111template <
typename DataType,
typename ModelType,
typename WeightType,
typename Comparator>
117 WeightType&& weight, Comparator&& comparator) {
ResidualBlockProvider for weighted comparison between data and a model.
virtual ~DataVsModelResiduals()
Destructor.
void populateResidualBlock(IterType output_iter) override
Updates the values where the iterator points with the residuals.
DataVsModelResiduals(DataType data, ModelType model, WeightType weight, Comparator comparator)
Constructs a new instance of DataVsModelResiduals.
std::size_t numberOfResiduals() const override
std::unique_ptr< DataVsModelResiduals< typename std::remove_reference< DataType >::type, typename std::remove_reference< ModelType >::type, typename std::remove_reference< WeightType >::type, typename std::remove_reference< Comparator >::type > > createDataVsModelResiduals(DataType &&data, ModelType &&model, WeightType &&weight, Comparator &&comparator)