8 FitExponent(2), RMS(0.0), ParallelId(
"single")
17 FitExponent(Old.FitExponent), RMS(Old.RMS), Misfit(Old.Misfit),
18 SynthData(Old.SynthData), ParallelId(Old.ParallelId)
27 FitExponent = source.FitExponent;
29 Misfit = source.Misfit;
30 SynthData = source.SynthData;
31 ParallelId = source.ParallelId;
54 const double predicted,
const double measerror,
55 const double errorlevel,
const int index)
57 const double absolutemin = 1e-6;
58 double currvalue = std::abs(measured - predicted);
59 double absoluteerror = std::max(measerror, std::abs(measured * errorlevel));
60 currvalue /= std::max(absolutemin, absoluteerror);
ublas::vector< double > ttranscribed
virtual void SafeParallel(const ttranscribed &member)
The core performance calculation, has to be safe to be done in parallel.
double CalcPerformance(const ttranscribed &member)
For serial execution CalcPerformance calls the three Parallel functions for more convenient use...
GeneralObjective & operator=(const GeneralObjective &source)
virtual double PostParallel(const ttranscribed &member)=0
Some operations cannot be done in parallel, these are done after, returns the misfit value...
virtual ~GeneralObjective()
virtual void PreParallel(const ttranscribed &member)
Some operations cannot be done in parallel, these are done before.
int GetFitExponent()
Get the Fit exponent.
double CalcMisfit(const double measured, const double predicted, const double measerror, const double errorlevel, const int index)
The basic object for any objective function, mainly an interface class and some storage.
tdata & SetSynthData()
Only derived classes can write access the Synthetic data.
tmisfit & SetMisfit()
Only derived classes can write access the Misfit.