SourceXtractorPlusPlus  0.10
Please provide a description of the project.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
WorldValueResidual.cpp
Go to the documentation of this file.
1 
24 
25 namespace ModelFitting {
26 
28  m_parameter->removeObserver(m_observer_id);
29 }
30 
31 static double computeResidual(double current, double expected, double weight) {
32  return weight * (current - expected);
33 }
34 
36  double expected_value, double weight)
37  : m_parameter(parameter), m_residual{computeResidual(parameter->getValue(), expected_value, weight)} {
38  m_observer_id = parameter->addObserver(
39  [this, expected_value, weight](double new_value){
40  m_residual = computeResidual(new_value, expected_value, weight);
41  }
42  );
43 }
44 
46  return 1;
47 }
48 
50  *output_iter = m_residual;
51 }
52 
53 } // end of namespace ModelFitting
std::shared_ptr< BasicParameter > m_parameter
virtual ~WorldValueResidual()
Destructor.
void populateResidualBlock(IterType output_iter) override
WorldValueResidual(std::shared_ptr< BasicParameter > parameter, double expected_value, double weight=1.)
Constructs a new instance of WorldValueResidual.
static double computeResidual(double current, double expected, double weight)
std::size_t numberOfResiduals() const override
Always returns 1, as this class creates a single residual.