pub fn join_constraints(mut self, other: CausalModel) -> CausalModel
  {
    assert_eq!(self.space.vstore.size(), other.space.vstore.size(),
      "join_constraints: The variables store must be identical.");
    self.latest_ops.extend(other.latest_ops.into_iter());
    // NOTE: the conjunctive parallel statement <> is a weak preemption so during an instant, it behaves like ||.
    self.instantaneous = self.instantaneous && other.instantaneous;
    let cstore = other.space.cstore;
    for i in 0..cstore.size() {
      self.space.cstore.alloc(cstore[i].bclone());
    }
    self.params = self.params.join(other.params);
    self
  }
/// We join the constraint stores of `self` and `other` with the following assumptions:
///   1. The variable stores are identical.
///   2. The constraint stores are completely different.
///   3. The model parameters can be joined (see `ModelParameters::join`).
/// The second assumption implies that we do not check for identical constraints.
We join the constraint stores of `self` and `other` with the following assumptions:
1. The variable stores are identical.
2. The constraint stores are completely different.
3. The model parameters can be joined .
The second assumption implies that we do not check for identical constraints.
We join the constraint stores of ` self ` and ` other ` with the following assumptions : 1 . The variable stores are identical . 2 . The constraint stores are completely different . 3 . The model parameters can be joined . The second assumption implies that we do not check for identical constraints .
pub fn join_constraints(mut self, other: CausalModel) -> CausalModel
  {
    assert_eq!(self.space.vstore.size(), other.space.vstore.size(),
      "join_constraints: The variables store must be identical.");
    self.latest_ops.extend(other.latest_ops.into_iter());
    // NOTE: the conjunctive parallel statement <> is a weak preemption so during an instant, it behaves like ||.
    self.instantaneous = self.instantaneous && other.instantaneous;
    let cstore = other.space.cstore;
    for i in 0..cstore.size() {
      self.space.cstore.alloc(cstore[i].bclone());
    }
    self.params = self.params.join(other.params);
    self
  }
pub fn join_constraints ( mut self , other : CausalModel ) -> CausalModel { assert_eq ! ( self space vstore size ( ) other space vstore size ( ) " " ) ; self . latest_ops . extend ( other . latest_ops . into_iter ( ) ) ; // NOTE: the conjunctive parallel statement <> is a weak preemption so during an instant, it behaves like ||. self . instantaneous = self . instantaneous && other . instantaneous ; let cstore = other . space . cstore ; for i in 0 .. cstore . size ( ) { self . space . cstore . alloc ( cstore [ i ] . bclone ( ) ) ; } self . params = self . params . join ( other . params ) ; self }
We join the constraint stores of `self` and `other` with the following assumptions:
1.
We join the constraint stores of ` self ` and ` other ` with the following assumptions : 1 .
mut self
other
CausalModel
mut self
other
CausalModel