本文整理汇总了C++中api::IFunction_sptr::asString方法的典型用法代码示例。如果您正苦于以下问题:C++ IFunction_sptr::asString方法的具体用法?C++ IFunction_sptr::asString怎么用?C++ IFunction_sptr::asString使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类api::IFunction_sptr
的用法示例。
在下文中一共展示了IFunction_sptr::asString方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: importPeaksFromTable
//.........这里部分代码省略.........
for (size_t ipeak = 0; ipeak < numpeaks; ++ipeak)
{
// Spectrum
int wsindex = m_funcParamWS->cell<int>(ipeak, 0);
// Ignore peak with large chi^2/Rwp
double chi2 = m_funcParamWS->cell<double>(ipeak, icolchi2);
if (chi2 > m_maxChi2)
{
g_log.notice() << "Skip Peak " << ipeak << " (chi^2 " << chi2 << " > " << m_maxChi2
<< ".) " << "\n";
continue;
}
else if (chi2 < 0.)
{
g_log.notice() << "Skip Peak " << ipeak << " (chi^2 " << chi2 << " < 0 )" << "\n";
continue;
}
else
{
g_log.debug() << "[DB] Chi-square = " << chi2 << "\n";
}
// Set up function
if (m_useRawParameter)
{
for (size_t p = 0; p < numpeakparams; ++p)
{
std::string parname = m_funcParameterNames[p];
double parvalue = m_funcParamWS->cell<double>(ipeak, p+1);
m_peakFunction->setParameter(parname, parvalue);
}
if (m_genBackground)
{
for (size_t p = 0; p < numbkgdparams; ++p)
{
std::string parname = m_funcParameterNames[p+numpeakparams];
double parvalue = m_funcParamWS->cell<double>(ipeak, p+1+numpeakparams);
m_bkgdFunction->setParameter(parname, parvalue);
}
}
}
else
{
double tmpheight = m_funcParamWS->cell<double>(ipeak, i_height);
double tmpwidth = m_funcParamWS->cell<double>(ipeak, i_width);
double tmpcentre = m_funcParamWS->cell<double>(ipeak, i_centre);
m_peakFunction->setHeight(tmpheight);
m_peakFunction->setCentre(tmpcentre);
m_peakFunction->setFwhm(tmpwidth);
if (m_genBackground)
{
double tmpa0 = m_funcParamWS->cell<double>(ipeak, i_a0);
double tmpa1 = m_funcParamWS->cell<double>(ipeak, i_a1);
double tmpa2 = m_funcParamWS->cell<double>(ipeak, i_a2);
m_bkgdFunction->setParameter("A0", tmpa0);
m_bkgdFunction->setParameter("A1", tmpa1);
m_bkgdFunction->setParameter("A2", tmpa2);
}
}
double centre = m_peakFunction->centre();
// Generate function to plot
API::CompositeFunction_sptr plotfunc = boost::make_shared<CompositeFunction>();
plotfunc->addFunction(m_peakFunction);
if (m_genBackground)
plotfunc->addFunction(m_bkgdFunction);
// Clone to another function
API::IFunction_sptr clonefunction = plotfunc->clone();
// Existed?
mapiter = functionmap.find(wsindex);
if (mapiter == functionmap.end())
{
std::vector<std::pair<double, API::IFunction_sptr> > tempvector;
std::pair<std::map<specid_t, std::vector<std::pair<double, API::IFunction_sptr> > >::iterator, bool> ret;
ret = functionmap.insert(std::make_pair(wsindex, tempvector));
mapiter = ret.first;
}
// Generate peak function
mapiter->second.push_back(std::make_pair(centre, clonefunction));
g_log.information() << "Peak " << ipeak << ": Spec = " << wsindex
<< " func: " << clonefunction->asString() << "\n";
} //ENDFOR (ipeak)
// Sort by peak position
for (mapiter = functionmap.begin(); mapiter != functionmap.end(); ++mapiter)
{
std::vector<std::pair<double, API::IFunction_sptr> >& vec_centrefunc = mapiter->second;
std::sort(vec_centrefunc.begin(), vec_centrefunc.end());
}
return;
}