137 | | }; |
138 | | |
| 137 | } |
| 138 | |
| 139 | vec mpdf::samplecond(const vec &cond) { |
| 140 | condition(cond); |
| 141 | vec temp = shep->sample(); |
| 142 | return temp; |
| 143 | } |
| 144 | |
| 145 | mat mpdf::samplecond_m(const vec &cond, int N) { |
| 146 | condition(cond); |
| 147 | mat temp(shep->dimension(), N); |
| 148 | vec smp(shep->dimension()); |
| 149 | for (int i = 0; i < N; i++) { |
| 150 | smp = shep->sample(); |
| 151 | temp.set_col(i, smp); |
| 152 | } |
| 153 | |
| 154 | return temp; |
| 155 | } |
| 156 | |
| 157 | double mpdf::evallogcond(const vec &dt, const vec &cond) { |
| 158 | double tmp; |
| 159 | condition(cond); |
| 160 | tmp = shep->evallog(dt); |
| 161 | // it_assert_debug(std::isfinite(tmp), "Infinite value"); |
| 162 | return tmp; |
| 163 | } |
| 164 | |
| 165 | vec mpdf::evallogcond_m(const mat &Dt, const vec &cond) { |
| 166 | condition(cond); |
| 167 | return shep->evallog_m(Dt); |
| 168 | } |
| 169 | |
| 170 | vec mpdf::evallogcond_m(const Array<vec> &Dt, const vec &cond) { |
| 171 | condition(cond); |
| 172 | return shep->evallog_m(Dt); |
| 173 | } |
| 174 | |
| 175 | void mpdf::from_setting(const Setting &set){ |
| 176 | if (set.exists("rv")) { |
| 177 | RV *r = UI::build<RV>(set, "rv"); |
| 178 | set_rv(*r); |
| 179 | delete r; |
| 180 | } |
| 181 | |
| 182 | if (set.exists("rvc")) { |
| 183 | RV *r = UI::build<RV>(set, "rvc"); |
| 184 | set_rvc(*r); |
| 185 | delete r; |
| 186 | } |
| 187 | } |