6 veldiffweight(0.0), anisovelweight(1.0), strikediffweight(0.0),
7 deltastrikediffweight(0.0)
17 const unsigned int length = member.size() / 6;
18 double roughness = std::abs(member(2 * length));
20 const double anglescale = 90.;
21 for (
unsigned int i = 1; i < length; ++i)
23 roughness += veldiffweight * std::pow((member(i + 1 * length)
24 - member(i - 1 + 1 * length)), fitexp);
25 roughness += anisovelweight * std::pow(std::abs(member(i + 5
27 roughness += strikediffweight * std::pow((member(i + 2 * length))
28 / anglescale, fitexp);
29 roughness += deltastrikediffweight * std::pow(std::abs(member(i + 3
30 * length) / 30), fitexp);
32 SetRMS(std::pow(roughness, 1. / fitexp));
42 Old.anisovelweight), strikediffweight(Old.strikediffweight),
43 deltastrikediffweight(Old.deltastrikediffweight)
53 veldiffweight = source.veldiffweight;
54 anisovelweight = source.anisovelweight;
55 strikediffweight = source.strikediffweight;
56 deltastrikediffweight = source.deltastrikediffweight;
virtual double PostParallel(const ttranscribed &member)
Some operations cannot be done in parallel, these are done after, returns the misfit value...
ublas::vector< double > ttranscribed
GeneralObjective & operator=(const GeneralObjective &source)
virtual void SafeParallel(const ttranscribed &member)
The core performance calculation, has to be safe to be done in parallel.
int GetFitExponent()
Get the Fit exponent.
SWAnisoRoughness & operator=(const SWAnisoRoughness &source)
virtual ~SWAnisoRoughness()
double GetRMS()
Get the current RMS.
The basic object for any objective function, mainly an interface class and some storage.
Calculate the roughness for anisotropic SW models.
void SetRMS(const double x)