当前位置: 首页>>代码示例>>C++>>正文


C++ Factor::nrArguments方法代码示例

本文整理汇总了C++中Factor::nrArguments方法的典型用法代码示例。如果您正苦于以下问题:C++ Factor::nrArguments方法的具体用法?C++ Factor::nrArguments怎么用?C++ Factor::nrArguments使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Factor的用法示例。


在下文中一共展示了Factor::nrArguments方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: printActiveFactors

void
VarElim::absorveEvidence (void)
{
  if (Globals::verbosity > 2) {
    Util::printDashedLine();
    cout << "(initial factor list)" << endl;
    printActiveFactors();
  }
  const VarNodes& varNodes = fg.varNodes();
  for (size_t i = 0; i < varNodes.size(); i++) {
    if (varNodes[i]->hasEvidence()) {
      if (Globals::verbosity > 1) {
        cout << "-> aborving evidence on ";
        cout << varNodes[i]->label() << " = " ;
        cout << varNodes[i]->getEvidence() << endl;
      }
      const vector<size_t>& idxs =
          varFactors_.find (varNodes[i]->varId())->second;
      for (size_t j = 0; j < idxs.size(); j++) {
        Factor* factor = factorList_[idxs[j]];
        if (factor->nrArguments() == 1) {
          factorList_[idxs[j]] = 0;
        } else {
          factorList_[idxs[j]]->absorveEvidence (
              varNodes[i]->varId(), varNodes[i]->getEvidence());
        }
      }
    }
  }
}
开发者ID:davidvaz,项目名称:yap-cmake,代码行数:30,代码来源:VarElim.cpp

示例2: Factor

void
VarElim::eliminate (VarId elimVar)
{
  Factor* result = 0;
  vector<size_t>& idxs = varFactors_.find (elimVar)->second;
  for (size_t i = 0; i < idxs.size(); i++) {
    size_t idx = idxs[i];
    if (factorList_[idx]) {
      if (result == 0) {
        result = new Factor (*factorList_[idx]);
      } else {
        result->multiply (*factorList_[idx]);
      }
      delete factorList_[idx];
      factorList_[idx] = 0;
    }
  }
  totalFactorSize_ += result->size();
  if (result->size() > largestFactorSize_) {
    largestFactorSize_ = result->size();
  }
  if (result != 0 && result->nrArguments() != 1) {
    result->sumOut (elimVar);
    factorList_.push_back (result);
    const VarIds& resultVarIds = result->arguments();
    for (size_t i = 0; i < resultVarIds.size(); i++) {
      vector<size_t>& idxs =
          varFactors_.find (resultVarIds[i])->second;
      idxs.push_back (factorList_.size() - 1);
    }
  }
}
开发者ID:davidvaz,项目名称:yap-cmake,代码行数:32,代码来源:VarElim.cpp


注:本文中的Factor::nrArguments方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。