double MVTR::pdf(dPtr dp, bool logscale)const{ Ptr<DataType> d = DAT(dp); const Vec &y(d->y()); const Vec &X(d->x()); double ans = dmvt(y, X*Beta(), Siginv(), nu(), ldsi(), true); return logscale ? ans : exp(ans); }
double MVT::pdf(const Vector &x, bool logscale) const { return dmvt(x, mu(), siginv(), nu(), ldsi(), logscale); }
//====================================================================== double dmvt(const Vector &x, const Vector &mu, const SpdMatrix &Siginv, double nu, bool logscale){ double ldsi = Siginv.logdet(); return dmvt(x, mu, Siginv, nu, ldsi, logscale); }