pub fn equals_zero<F>(&mut self, items: Exp<F>) -> InferenceResult
    where
        F: Factoid
            + Zero
            + Add<F, Output = F>
            + Neg<Output = F>
            + Clone
            + ::std::fmt::Debug
            + Output
            + 'rules,
    {
        let rule = EqualsZeroRule(items);
        self.rules.push(Box::new(rule));
        Ok(())
    }
/// Ensures that the sum of several expressions equals zero.
///
/// For instance, one could write:
/// ```text
/// solver.equals_zero(vec![
///     outputs[0].rank.into(),
///     outputs[1].rank.into(),
///     (-1, inputs[1].shape[0]).into(),
/// ]);
/// ```
Ensures that the sum of several expressions equals zero.
Ensures that the sum of several expressions equals zero .
pub fn equals_zero<F>(&mut self, items: Exp<F>) -> InferenceResult
    where
        F: Factoid
            + Zero
            + Add<F, Output = F>
            + Neg<Output = F>
            + Clone
            + ::std::fmt::Debug
            + Output
            + 'rules,
    {
        let rule = EqualsZeroRule(items);
        self.rules.push(Box::new(rule));
        Ok(())
    }
pub fn equals_zero < F > ( & mut self , items : Exp < F > ) -> InferenceResult where F : Factoid + Zero + Add < F , Output = F > + Neg < Output = F > + Clone + :: std :: fmt :: Debug + Output + ' rules , { let rule = EqualsZeroRule ( items ) ; self . rules . push ( Box :: new ( rule ) ) ; Ok ( ( ) ) }
Ensures that the sum of several expressions equals zero.
Ensures that the sum of several expressions equals zero .
&mut self
items
Exp<F>
&mut self
items
Exp<F>