本文整理汇总了C++中Factor::normalized方法的典型用法代码示例。如果您正苦于以下问题:C++ Factor::normalized方法的具体用法?C++ Factor::normalized怎么用?C++ Factor::normalized使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Factor
的用法示例。
在下文中一共展示了Factor::normalized方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: NewPancake
Factor LC::NewPancake (size_t i, size_t _I, bool & hasNaNs) {
size_t I = nbV(i)[_I];
Factor piet = _pancakes[i];
// recalculate _pancake[i]
VarSet Ivars = factor(I).vars();
Factor A_I;
for( VarSet::const_iterator k = Ivars.begin(); k != Ivars.end(); k++ )
if( var(i) != *k )
A_I *= (_pancakes[findVar(*k)] * factor(I).inverse()).marginal( Ivars / var(i), false );
if( Ivars.size() > 1 )
A_I ^= (1.0 / (Ivars.size() - 1));
Factor A_Ii = (_pancakes[i] * factor(I).inverse() * _phis[i][_I].inverse()).marginal( Ivars / var(i), false );
Factor quot = A_I / A_Ii;
if( props.damping != 0.0 )
quot = (quot^(1.0 - props.damping)) * (_phis[i][_I]^props.damping);
piet *= quot / _phis[i][_I].normalized();
_phis[i][_I] = quot.normalized();
piet.normalize();
if( piet.hasNaNs() ) {
cerr << name() << "::NewPancake(" << i << ", " << _I << "): has NaNs!" << endl;
hasNaNs = true;
}
return piet;
}