50 if (m_nbunigrams!=fc.m_nbunigrams)
return m_nbunigrams<fc.m_nbunigrams;
51 if (m_nbbigrams!=fc.m_nbbigrams)
return m_nbbigrams<fc.m_nbbigrams;
52 if (m_bigramproba!=fc.m_bigramproba)
return m_bigramproba>fc.m_bigramproba;
53 if (fc.m_nbtrigrams==0)
return false;
54 if (m_nbtrigrams==0)
return true;
55 return ((m_trigramproba/m_nbtrigrams)>(fc.m_trigramproba/fc.m_nbtrigrams));
float freq(LinguisticCode cat1, LinguisticCode cat2) const
FrequencyCost operator()(LinguisticCode cat1, LinguisticCode cat2, LinguisticCode cat3) const
FrequencyCostFunction(const TrigramMatrix *trigrams, const BigramMatrix *bigrams)
bool operator==(const FrequencyCost &fc) const
bool operator<(const FrequencyCost &fc) const
FrequencyCost & operator+=(const FrequencyCost &fc)
FrequencyCost operator+(const FrequencyCost &fc) const
float freq(LinguisticCode cat1, LinguisticCode cat2, LinguisticCode cat3) const
std::ostream & operator<<(std::ostream &out, const FrequencyCost &cost)