mirror of
https://github.com/aportelli/LatAnalyze.git
synced 2025-04-10 19:20:44 +01:00
1) restored original definition of sinh in makeSinhModel() and its init in parameterGuess(). 2) fold definition includes sign factor due to cosh/sinh model.
This commit is contained in:
parent
7b3b203ca9
commit
ddee922e72
@ -84,7 +84,7 @@ DoubleModel CorrelatorModels::makeSinhModel(const Index nState, const Index nt)
|
|||||||
|
|
||||||
for (unsigned int i = 0; i < nState; ++i)
|
for (unsigned int i = 0; i < nState; ++i)
|
||||||
{
|
{
|
||||||
res += p[2*i + 1]*(- exp(-p[2*i]*x[0]) + exp(-p[2*i]*(nt - x[0])));
|
res += p[2*i + 1]*(exp(-p[2*i]*x[0]) - exp(-p[2*i]*(nt - x[0])));
|
||||||
}
|
}
|
||||||
|
|
||||||
return res;
|
return res;
|
||||||
@ -200,29 +200,11 @@ DVec CorrelatorModels::parameterGuess(const DMatSample &corr,
|
|||||||
LATAN_ERROR(Argument, "correlator type is undefined");
|
LATAN_ERROR(Argument, "correlator type is undefined");
|
||||||
break;
|
break;
|
||||||
case CorrelatorType::exp:
|
case CorrelatorType::exp:
|
||||||
init.resize(2*par.nState);
|
|
||||||
init(0) = log(corr[central](nt/4)/corr[central](nt/4 + 1));
|
|
||||||
init(1) = corr[central](nt/4)/(exp(-init(0)*nt/4));
|
|
||||||
for (Index p = 2; p < init.size(); p += 2)
|
|
||||||
{
|
|
||||||
init(p) = 2*init(p - 2);
|
|
||||||
init(p + 1) = init(p - 1)/2.;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case CorrelatorType::cosh:
|
case CorrelatorType::cosh:
|
||||||
init.resize(2*par.nState);
|
|
||||||
init(0) = log(corr[central](nt/4)/corr[central](nt/4 + 1));
|
|
||||||
init(1) = corr[central](nt/4)/(exp(-init(0)*nt/4) + exp(-init(0)*3*nt/4));
|
|
||||||
for (Index p = 2; p < init.size(); p += 2)
|
|
||||||
{
|
|
||||||
init(p) = 2*init(p - 2);
|
|
||||||
init(p + 1) = init(p - 1)/2.;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case CorrelatorType::sinh:
|
case CorrelatorType::sinh:
|
||||||
init.resize(2*par.nState);
|
init.resize(2*par.nState);
|
||||||
init(0) = log(corr[central](nt/4)/corr[central](nt/4 + 1));
|
init(0) = log(corr[central](nt/4)/corr[central](nt/4 + 1));
|
||||||
init(1) = corr[central](nt/4)/( -exp(-init(0)*nt/4) +exp(-init(0)*3*nt/4));
|
init(1) = corr[central](nt/4)/(exp(-init(0)*nt/4));
|
||||||
for (Index p = 2; p < init.size(); p += 2)
|
for (Index p = 2; p < init.size(); p += 2)
|
||||||
{
|
{
|
||||||
init(p) = 2*init(p - 2);
|
init(p) = 2*init(p - 2);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user