本文整理汇总了C++中Spectrum::get_values方法的典型用法代码示例。如果您正苦于以下问题:C++ Spectrum::get_values方法的具体用法?C++ Spectrum::get_values怎么用?C++ Spectrum::get_values使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Spectrum
的用法示例。
在下文中一共展示了Spectrum::get_values方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: unfold_nouncertainty
Spectrum RegUnfolder::unfold_nouncertainty(const Spectrum & r) const{
if(tau < 0.0 || L.get_n_rows() != p.gen().dim()) throw invalid_argument("unfold called, but regularization not set up!");
const size_t ngen = p.gen().dim();
// calculate delta1 := R * t - r for the first term:
auto delta1 = p.R() * t - poly_matrix(r.get_values());
// calculate delta2 := L * (t - gen) for the second term
//auto delta2 = L * (t - poly_matrix(p.gen().get_values()));
// chi2 = delta1^T C^{-1} delta1 + tau * delta2^T * delta2,
// where C is the covariance matrix of r:
Matrix r_cov_inverse = r.cov();
r_cov_inverse.invert_cholesky();
auto chi2 = delta1.transpose() * r_cov_inverse * delta1 + tau * delta2.transpose() * delta2;
auto solution = chi2(0,0).argmin();
Spectrum result(ngen);
for(size_t i=0; i<ngen; ++i){
result[i] = solution[t(i,0)];
}
return result;
}