double MarkovModel::pdf(const MarkovData &dat, bool logscale) const{ double ans; if(!!dat.prev()){ MD * prev = dat.prev(); ans = Q(prev->value(), dat.value()); } else ans = pi0(dat.value()); return logscale? safelog(ans) : ans; }
double MarkovModel::pdf(const Ptr<DataPointType> &dp, bool logscale) const { double ans = 0; if (!!dp->prev()) { ans = Q(dp->prev()->value(), dp->value()); } else ans = pi0(dp->value()); return logscale ? safelog(ans) : ans; }