| 191 | void datalink::set_connection (const RV &rv, const RV &rv_up) { |
| 192 | downsize = rv._dsize(); |
| 193 | upsize = rv_up._dsize(); |
| 194 | v2v_up = rv.dataind (rv_up); |
| 195 | |
| 196 | it_assert_debug (v2v_up.length() == downsize, "rv is not fully in rv_up"); |
| 197 | } |
| 198 | |
| 199 | void datalink::set_connection (int ds, int us, const ivec &upind) { |
| 200 | downsize = ds; |
| 201 | upsize = us; |
| 202 | v2v_up = upind; |
| 203 | |
| 204 | it_assert_debug (v2v_up.length() == downsize, "rv is not fully in rv_up"); |
| 205 | } |
| 206 | |
| 207 | void datalink_m2e::set_connection (const RV &rv, const RV &rvc, const RV &rv_up) { |
| 208 | datalink::set_connection (rv, rv_up); |
| 209 | condsize = rvc._dsize(); |
| 210 | //establish v2c connection |
| 211 | rvc.dataind (rv_up, v2c_lo, v2c_up); |
| 212 | } |
| 213 | |
| 214 | vec datalink_m2e::get_cond (const vec &val_up) { |
| 215 | vec tmp (condsize); |
| 216 | set_subvector (tmp, v2c_lo, val_up (v2c_up)); |
| 217 | return tmp; |
| 218 | } |
| 219 | |
| 220 | void datalink_m2e::pushup_cond (vec &val_up, const vec &val, const vec &cond) { |
| 221 | it_assert_debug (downsize == val.length(), "Wrong val"); |
| 222 | it_assert_debug (upsize == val_up.length(), "Wrong val_up"); |
| 223 | set_subvector (val_up, v2v_up, val); |
| 224 | set_subvector (val_up, v2c_up, cond); |
| 225 | } |
| 226 | |