Exemple #1
0
  virtual double log_probability(Iter const & iter) const {
    int x = (int) (iter.emission(_slotID) + _offset);

    assert(x >= 0);

    if (x < _tblSize)
      return _logp_tbl[x];
    return logprob(x);
  }
Exemple #2
0
  double log_probability(Iter const & iter) const {
    double log_prob = _func->log_probability(iter);

    if (std::isnan(log_prob))
      throw QHMMException("NaN detected", "log_probability", false, _stateID, _slotID, iter.index(), iter.emission(_slotID)); // TODO: support higher dimensions!

    return log_prob;
  }