Struct snarkvm_algorithms::fft::polynomial::PolyMultiplier
source · pub struct PolyMultiplier<'a, F: PrimeField> { /* private fields */ }
Implementations§
source§impl<'a, F: PrimeField> PolyMultiplier<'a, F>
impl<'a, F: PrimeField> PolyMultiplier<'a, F>
pub fn new() -> Self
pub fn add_precomputation( &mut self, fft_pc: &'a FFTPrecomputation<F>, ifft_pc: &'a IFFTPrecomputation<F> )
pub fn add_polynomial(&mut self, poly: DensePolynomial<F>, label: impl ToString)
pub fn add_evaluation(&mut self, evals: Evaluations<F>, label: impl ToString)
pub fn add_polynomial_ref( &mut self, poly: &'a DensePolynomial<F>, label: impl ToString )
pub fn add_evaluation_ref( &mut self, evals: &'a Evaluations<F>, label: impl ToString )
sourcepub fn multiply(self) -> Option<DensePolynomial<F>>
pub fn multiply(self) -> Option<DensePolynomial<F>>
Multiplies all polynomials stored in self
.
Returns None
if any of the stored evaluations are over a domain that’s
insufficiently large to interpolate the product, or if F
does not contain
a sufficiently large subgroup for interpolation.
pub fn element_wise_arithmetic_4_over_domain<T: Borrow<str>>( self, domain: EvaluationDomain<F>, labels: [T; 4], f: impl Fn(F, F, F, F) -> F + Sync ) -> Option<DensePolynomial<F>>
Trait Implementations§
source§impl<'a, F: Default + PrimeField> Default for PolyMultiplier<'a, F>
impl<'a, F: Default + PrimeField> Default for PolyMultiplier<'a, F>
source§fn default() -> PolyMultiplier<'a, F>
fn default() -> PolyMultiplier<'a, F>
Returns the “default value” for a type. Read more