DAFE::DafePcrSubject(Ptr<Subject> Sub, Ptr<SubjectPrior> Pri, Ptr<IMP> Imp, double Tdf) : subject(Sub), pri(Pri), imp(Imp), sigsq(1.644934066848226), // pi^2/6 mean(Sub->Nscales()), Ivar(Sub->Nscales()) { SubjectTF target(subject, pri, imp); uint dim = subject->Nscales(); Spd Ominv(dim); Ominv.set_diag(1.0); prop = new MvtIndepProposal(Vec(dim), Ominv, Tdf); sampler = new MetropolisHastings(target, prop); }
//====================================================================== ISAM::DafePcrItemSampler(Ptr<PCR> Mod, Ptr<DafePcrDataImputer> Imp, Ptr<MvnModel> Prior, double Tdf, RNG &seeding_rng) : PosteriorSampler(seeding_rng), mod(Mod), prior(Prior), imp(Imp), sigsq(1.644934066848226) // pi^2/6 { Matrix X(Mod->X(1.0)); xtx = SpdMatrix(X.ncol()); xtu = Vector(X.ncol()); ItemDafeTF target(mod, prior, imp); uint dim = mod->beta().size(); SpdMatrix Ominv(dim); Ominv.set_diag(1.0); prop = new MvtIndepProposal(Vector(dim), Ominv, Tdf); sampler = new MetropolisHastings(target, prop); }