message: fix bug in expr
diff: @@ -125,6 +125,7 @@ pub enum Column {
  impl Column {
  fn domain(&self) -> Domain {
  match self {
  + Column::Index(GateType::CompleteAdd) => Domain::D4,
  _ => Domain::D8,
  }
  }
  @@ -791,7 +792,8 @@ impl<'a, F: FftField> EvalResult<'a, F> {
  EvalResult::init(
  res_domain,
  - |i| es1.evals[(scale1 * i + (d1 as usize) * s1) % es1.evals.len()] * es2.evals[(scale2 * i + (d2 as usize) * s2) % es1.evals.len()])
  + |i| es1.evals[(scale1 * i + (d1 as usize) * s1) % es1.evals.len()]
  + * es2.evals[(scale2 * i + (d2 as usize) * s2) % es2.evals.len()])
  }
  }
  }
  @@ -817,6 +819,18 @@ fn get_domain<F: FftField>(d: Domain, env: &Environment<F>) -> D<F> {
  }
  }
  +impl<F: Field> Expr<ConstantExpr<F>> {
  + /// Combines multiple constraints `[c0, ..., cn]` into a single constraint
  + /// `alpha^alpha0 * c0 + alpha^{alpha0 + 1} * c1 + ... + alpha^{alpha0 + n} * cn`.
  + pub fn combine_constraints(alpha0: usize, cs: Vec<Self>) -> Self {
  + let zero = Expr::<ConstantExpr<F>>::zero();
  + cs.into_iter().zip(alpha0..).map(|(c, i)| {
  + Expr::Constant(ConstantExpr::Alpha.pow(i)) * c
  + }).fold(zero, |acc, x| acc + x)
  + }
  +
  +}
  +
  impl<F: FftField> Expr<ConstantExpr<F>> {
  /// Convenience function for constructing expressions from literal
  /// field elements.
  @@ -876,15 +890,6 @@ impl<F: FftField> Expr<ConstantExpr<F>> {
  }
  }
  - /// Combines multiple constraints `[c0, ..., cn]` into a single constraint
  - /// `alpha^alpha0 * c0 + alpha^{alpha0 + 1} * c1 + ... + alpha^{alpha0 + n} * cn`.
  - pub fn combine_constraints(alpha0: usize, cs: Vec<Self>) -> Self {
  - let zero = Expr::<ConstantExpr<F>>::zero();
  - cs.into_iter().zip(alpha0..).map(|(c, i)| {
  - Expr::Constant(ConstantExpr::Alpha.pow(i)) * c
  - }).fold(zero, |acc, x| acc + x)
  - }
  -
  /// The expression `beta`.
  pub fn beta() -> Self {
  Expr::Constant(ConstantExpr::Beta)
  