Skip to content
Snippets Groups Projects
Commit 63ea41d8 authored by Yurov, Dmitry's avatar Yurov, Dmitry
Browse files

Return SimulationResult getters back into FitObjective class

parent 59de3a47
No related branches found
No related tags found
No related merge requests found
......@@ -103,6 +103,38 @@ size_t FitObjective::numberOfFitElements() const
[](size_t acc, auto& obj) { return acc + obj.numberOfFitElements(); });
}
//! Returns simulation result in the form of SimulationResult.
SimulationResult FitObjective::simulationResult(size_t i_item) const
{
return dataPair(i_item).simulationResult();
}
//! Returns experimental data in the form of SimulationResult.
SimulationResult FitObjective::experimentalData(size_t i_item) const
{
return dataPair(i_item).experimentalData();
}
//! Returns experimental data uncertainties in the form of SimulationResult.
SimulationResult FitObjective::uncertaintyData(size_t i_item) const
{
return dataPair(i_item).uncertainties();
}
//! Returns relative difference between simulation and experimental data
//! in the form of SimulationResult.
SimulationResult FitObjective::relativeDifference(size_t i_item) const
{
return dataPair(i_item).relativeDifference();
}
//! Returns absolute value of difference between simulation and experimental data
//! in the form of SimulationResult.
SimulationResult FitObjective::absoluteDifference(size_t i_item) const
{
return dataPair(i_item).absoluteDifference();
}
std::vector<double> FitObjective::experimental_array() const
{
return composeArray(&SimDataPair::experimental_array);
......
......@@ -80,6 +80,12 @@ public:
size_t numberOfFitElements() const;
SimulationResult simulationResult(size_t i_item = 0) const;
SimulationResult experimentalData(size_t i_item = 0) const;
SimulationResult uncertaintyData(size_t i_item = 0) const;
SimulationResult relativeDifference(size_t i_item = 0) const;
SimulationResult absoluteDifference(size_t i_item = 0) const;
//! Returns one dimensional array representing merged experimental data.
//! The area outside of the region of interest is not included, masked data is nullified.
std::vector<double> experimental_array() const;
......@@ -96,8 +102,10 @@ public:
//! The area outside of the region of interest is not included, masked data is nullified.
std::vector<double> weights_array() const;
#ifndef SWIG
//! Returns a reference to i-th SimDataPair.
const SimDataPair& dataPair(size_t i_item = 0) const;
#endif // SWIG
//! Initializes printing to standard output during the fitting.
//! @param every_nth: Print every n'th iteration.
......
......@@ -247,35 +247,11 @@ class ObserverCallbackWrapper(PyObserverCallback):
self.wrp_plot_observer = ObserverCallbackWrapper(callback)
return self.initPlot_cpp(every_nth, self.wrp_plot_observer)
def simulationResult(self, i=0):
"""
Returns simulated values for i-th simulation-data pair
"""
return self.dataPair(i).simulationResult();
def experimentalData(self, i=0):
"""
Returns experimental values for i-th simulation-data pair
"""
return self.dataPair(i).experimentalData();
def uncertaintyData(self, i=0):
"""
Returns uncertainties for i-th simulation-data pair
"""
return self.dataPair(i).uncertainties();
def relativeDifference(self, i=0):
"""
Returns relative difference for i-th simulation-data pair
"""
return self.dataPair(i).relativeDifference();
def absoluteDifference(self, i=0):
"""
Returns absolute difference for i-th simulation-data pair
"""
return self.dataPair(i).absoluteDifference();
return self.uncertaintyData_cpp(i);
%}
};
......@@ -41,10 +41,6 @@
// ignored to avoid error (todo: check whether this is really necessary)
%ignore Crystal::getTransformedLattice(const IRotation*) const;
// ignored to prevent SimDataPair non-const methods being exposed to python API
%ignore SimDataPair::SimDataPair;
%ignore SimDataPair::runSimulation;
// extra ignores for types and methods that shouldn't be visible in Python
%ignore FormFactorDWBAPol;
%ignore ISampleVisitor::visit(const FormFactorDWBAPol*);
......
......@@ -218,7 +218,6 @@
#include "Rotations.h"
#include "SampleBuilderFactory.h"
#include "ScanResolution.h"
#include "SimDataPair.h"
#include "Simulation.h"
#include "Simulation2D.h"
#include "SimulationFactory.h"
......@@ -474,7 +473,6 @@
%include "Rotations.h"
%include "ISelectionRule.h"
%include "DepthProbeSimulation.h"
%include "SimDataPair.h"
%include "SpecularSimulation.h"
%include "ThreadInfo.h"
%template(SampleBuilderFactoryTemp) IFactory<std::string, IMultiLayerBuilder>;
......
......@@ -7,6 +7,7 @@
%rename(evaluate_cpp) FitObjective::evaluate;
%rename(finalize_cpp) FitObjective::finalize;
%rename(initPlot_cpp) FitObjective::initPlot;
%rename(uncertaintyData_cpp) FitObjective::uncertaintyData;
// force swig to use move ctor instead of copy ctor
%typemap(out) SlicedParticle %{
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment