80 | | mat Er = (Smp * Smp.T()) / N - outer_product(Emu, Emu); |
81 | | CHECK_CLOSE(R.to_mat(), Er, 0.3); |
82 | | |
83 | | epdf *Mg = E.marginal(y); |
84 | | CHECK_CLOSE(vec("-1"), Mg->mean(), epsilon); |
85 | | |
86 | | // putting them back together |
87 | | mpdf *Cn = E.condition(x); |
88 | | mepdf mMg(Mg); |
89 | | Array<mpdf *> A(2); |
90 | | A(0) = Cn; |
91 | | A(1) = &mMg; |
92 | | mprod mEp(A); |
93 | | Smp = mEp.samplecond(vec(0), 1000); |
94 | | Emu = sum(Smp, 2) / N; |
95 | | CHECK_CLOSE(mu, Emu, 0.3); |
96 | | |
97 | | Er = (Smp * Smp.T()) / N - outer_product(Emu, Emu); |
98 | | CHECK_CLOSE(R.to_mat(), Er, 0.3); |
99 | | |
100 | | // test of pdflog at zero |
101 | | vec zero(0); |
102 | | vec zero2("0 0"); |
103 | | CHECK_CLOSE(E.evallog(zero2), mEp.evallogcond(zero2, zero), epsilon); |
| 79 | mat er = (smp * smp.T()) / n - outer_product(emu, emu); |
| 80 | CHECK_CLOSE(R.to_mat(), er, 0.3); |