void ChartTranslationOptions::Evaluate(const InputType &input, const InputPath &inputPath) { SetInputPath(&inputPath); if (StaticData::Instance().GetPlaceholderFactor() != NOT_FOUND) { CreateSourceRuleFromInputPath(); } CollType::iterator iter; for (iter = m_collection.begin(); iter != m_collection.end(); ++iter) { ChartTranslationOption &transOpt = **iter; transOpt.SetInputPath(&inputPath); transOpt.Evaluate(input, inputPath, m_stackVec); } // get rid of -inf trans opts size_t numDiscard = 0; for (size_t i = 0; i < m_collection.size(); ++i) { ChartTranslationOption *transOpt = m_collection[i].get(); if (transOpt->GetScores().GetWeightedScore() == - std::numeric_limits<float>::infinity()) { ++numDiscard; } else if (numDiscard) { m_collection[i - numDiscard] = boost::shared_ptr<ChartTranslationOption>(transOpt); } } m_collection.resize(m_collection.size() - numDiscard); }
void ChartTranslationOptions::Evaluate(const InputType &input, const InputPath &inputPath) { SetInputPath(&inputPath); if (StaticData::Instance().GetPlaceholderFactor() != NOT_FOUND) { CreateSourceRuleFromInputPath(); } CollType::iterator iter; for (iter = m_collection.begin(); iter != m_collection.end(); ++iter) { ChartTranslationOption &transOpt = **iter; transOpt.SetInputPath(&inputPath); transOpt.Evaluate(input, inputPath); } }