message: Re-add rayon parallelism in oracle code
diff: use algebra::FftField;
  use ff_fft::{Evaluations, Radix2EvaluationDomain as D, DensePolynomial};
  +use rayon::prelude::*;
  pub trait PolyUtils<F: FftField> {
  fn scale(&self, elm: F) -> Self;
  @@ -10,6 +11,7 @@ pub trait PolyUtils<F: FftField> {
  pub trait EvalUtils<F: FftField> {
  fn scale(&self, elm: F) -> Self;
  + fn square(&self) -> Self;
  fn pow(&self, pow: usize) -> Self;
  fn shift(&self, len: usize) -> Self;
  }
  @@ -20,17 +22,23 @@ impl<F: FftField> EvalUtils<F> for Evaluations<F, D<F>> {
  fn scale(&self, elm: F) -> Self
  {
  let mut result = self.clone();
  - for coeff in &mut result.evals
  - {
  - *coeff *= &elm
  + result.evals.par_iter_mut().for_each(|coeff| *coeff *= &elm);
  + result
  }
  +
  + fn square(&self) -> Self
  + {
  + let mut result = self.clone();
  + result.evals.par_iter_mut().for_each(|e| {
  + let _ = e.square_in_place();
  + });
  result
  }
  fn pow(&self, pow: usize) -> Self
  {
  let mut result = self.clone();
  - result.evals.iter_mut().for_each(|e| *e = e.pow([pow as u64]));
  + result.evals.par_iter_mut().for_each(|e| *e = e.pow([pow as u64]));
  result
  }
  @@ -61,9 +69,7 @@ impl<F: FftField> PolyUtils<F> for DensePolynomial<F> {
  // It is implemented to have the desired functionality for DensePolynomial
  fn scale(&self, elm: F) -> Self {
  let mut result = self.clone();
  - for coeff in &mut result.coeffs {
  - *coeff *= &elm
  - }
  + result.coeffs.par_iter_mut().for_each(|coeff| *coeff *= &elm);
  result
  }
  